Skip to content

Probe CJK coverage explicitly in the single-font injection test - #16884

Merged
lawrencecchen merged 1 commit into
mainfrom
fix-main-cjk-simulator-tests
Oct 2, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
fix-main-cjk-simulator-tests

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Main's full suite on b9ca453 (https://github.com/manaflow-ai/cmux/actions/runs/37017476521) failed a test that had not run while the app test target could not compile (fixed in #16797).

#9193 made CJK font-fallback injection fail closed when the configured family cannot be resolved. testShouldInjectCJKFontFallbackAllowsSingleFontWithoutExplicitOverrides relied on JetBrains Mono being installed, so it failed on runners without that font. It now passes a coverage probe that reports no CJK coverage. That tests the rule (a single font without overrides still gets injection) without depending on installed fonts. Product behavior is unchanged; #9193 has its own tests for the fail-closed path.

The same full-suite run also failed SimulatorPrivatePrivacyAdapterTests "Runtime-wide TCC readback groups applications and stays bounded" once. It is not changed here: it passed 25 of 25 local stress runs, its query returns all 258 rows on SQLite 3.43.2 (the macOS 15 runner's version), and the code it covers has not changed since 2026-09-10. It looks like a rare flake under CI load.

Testing

macos / macOS compile admission ran cmuxTests/GhosttyMouseFocusTests, and testShouldInjectCJKFontFallbackAllowsSingleFontWithoutExplicitOverrides passed.

Changelog

No user-facing change.

#9193 made CJK font-fallback injection fail closed when the configured
family cannot be resolved. testShouldInjectCJKFontFallbackAllowsSingle
FontWithoutExplicitOverrides relied on JetBrains Mono being installed,
so it failed on CI runners without that font. It now passes a coverage
probe that reports no CJK coverage, which tests the single-font rule
without depending on the machine's fonts.
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 60d8fd58-961e-4eb9-ab85-62872df318e1

📥 Commits

Reviewing files that changed from the base of the PR and between 9a332ec and ab0cb1e.

📒 Files selected for processing (1)
  • cmuxTests/GhosttyConfigTests.swift

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The single-font fallback test now injects a range-coverage probe. It checks for JetBrains Mono and reports no mapped-range coverage, so the test does not rely on the host’s font-resolution result.

Changes

Font fallback test

Layer / File(s) Summary
Inject range-coverage probe
cmuxTests/GhosttyConfigTests.swift
The test checks that the configured family is JetBrains Mono and that mapped ranges have no coverage. Its fallback expectation no longer depends on the test machine’s font installation.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to ab0cb

This makes the fallback test independent of fonts installed on the test machine without changing product behavior. No actionable merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The authoritative PR diff changes only cmuxTests/GhosttyConfigTests.swift, adding a rangeCoverageProbe to a CJK font fallback unit test. It does not change Cloud terminal creation, persisten…
Cmux Swift Actor Isolation ✅ Passed PASS. The authoritative diff changes only cmuxTests/GhosttyConfigTests.swift. The change adds a rangeCoverageProbe to a test and updates its comment; it introduces no production Swift declarations…
Cmux Swift Blocking Runtime ✅ Passed PASS. The pull request changes only cmuxTests/GhosttyConfigTests.swift. It adds a deterministic rangeCoverageProbe closure and comments to a test. The changed lines add no semaphore, blocking wait…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only cmuxTests/GhosttyConfigTests.swift, where it adds a font-coverage probe to a CJK fallback test. It does not change browser socket commands, `TerminalController.sw…
Cmux Expensive Synchronous Load ✅ Passed PASS: The authoritative diff changes only cmuxTests/GhosttyConfigTests.swift. It adds a test-only rangeCoverageProbe closure and does not modify production Swift, agent-history loading, synchronou…
Cmux Cache Substitution Correctness ✅ Passed PASS. The pull request changes only cmuxTests/GhosttyConfigTests.swift, and the diff adds a test-only rangeCoverageProbe. It does not modify production Swift, TypeScript, or JavaScript, and it doe…
Cmux No Hacky Sleeps ✅ Passed PASS: The PR changes only cmuxTests/GhosttyConfigTests.swift, a Swift test file. It adds a deterministic rangeCoverageProbe closure and no sleep, timer, polling, delayed dispatch, or wall-clock wa…
Cmux Algorithmic Complexity ✅ Passed PASS. The pull request changes only cmuxTests/GhosttyConfigTests.swift. The added rangeCoverageProbe closure is test-only scaffolding. It does not add production collection scans, rescans, sorting…
Cmux Swift Concurrency ✅ Passed PASS. The pull request changes only one XCTest method in cmuxTests/GhosttyConfigTests.swift. It adds a synchronous rangeCoverageProbe closure to an existing call and removes the real-font dependen…
Cmux Swift @Concurrent ✅ Passed PASS. The PR changes only a synchronous XCTest method and adds a synchronous rangeCoverageProbe closure. The exact diff adds no async, nonisolated, @concurrent, actor isolation, or async helpe…
Cmux Swift Package Boundaries ✅ Passed PASS. The authoritative diff changes only cmuxTests/GhosttyConfigTests.swift, and the patch only updates a test fixture and its coverage probe. It introduces no production Swift feature logic or app…
Cmux Swiftpm Lockfiles ✅ Passed The pull request changes only cmuxTests/GhosttyConfigTests.swift. The patch adds a test closure and does not modify Package.swift, any Package.resolved, Xcode package references, .gitignore, w…
Cmux Swift Logging ✅ Passed PASS. The PR changes only cmuxTests/GhosttyConfigTests.swift. The added code is a test comment and a test-only rangeCoverageProbe closure. It adds no print, debugPrint, dump, NSLog, ad hoc…
Cmux User-Facing Error Privacy ✅ Passed PASS. The pull request changes only cmuxTests/GhosttyConfigTests.swift. The diff adds a test-only rangeCoverageProbe and a developer comment; it adds no user-facing error, alert, command output, A…
Cmux Full Internationalization ✅ Passed The PR changes only cmuxTests/GhosttyConfigTests.swift, and the diff updates a test call plus a developer-only comment. It adds no production UI text, localization key, string catalog entry, web con…
Cmux Swiftui State Layout ✅ Passed The PR changes only cmuxTests/GhosttyConfigTests.swift. The diff adds a test comment and a rangeCoverageProbe closure; it does not add or modify SwiftUI views, ObservableObject/@Published stat…
Cmux Architecture Rethink ✅ Passed PASS. The PR changes only cmuxTests/GhosttyConfigTests.swift (+8/-1). It adds a test-supplied rangeCoverageProbe to remove a machine-font dependency. The production decision path and its existing …
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The pull request changes only cmuxTests/GhosttyConfigTests.swift. The diff updates a test-only rangeCoverageProbe closure and comments; it adds or changes no NSWindow, NSPanel, `NSWindow…
Cmux Source Artifacts ✅ Passed The pull request changes only cmuxTests/GhosttyConfigTests.swift. The diff adds hand-written XCTest code and comments. It adds no local output, generated logs, screenshots, recordings, temporary or …
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The authoritative PR diff changes only cmuxTests/GhosttyConfigTests.swift. No Swift file under a production **/Sources/** path changes, so the custom production test/debug seam condition doe…
Title check ✅ Passed The title clearly and concisely describes the main change: adding an explicit CJK coverage probe to the single-font injection test.
Description check ✅ Passed The description explains the failure, the test-only fix, the unchanged product behavior, and the testing performed. It omits the template headings and checklist, and the changelog does not use the req…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lawrencecchen lawrencecchen changed the title Fix main full-suite failures in CJK fallback and Simulator TCC readback tests Probe CJK coverage explicitly in the single-font injection test Oct 2, 2026
@lawrencecchen
lawrencecchen merged commit 23d3e88 into main Oct 2, 2026
73 of 74 checks passed
@lawrencecchen
lawrencecchen deleted the fix-main-cjk-simulator-tests branch October 2, 2026 15:31
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for ab0cb1e102: every check was green at merge (16 verified; 20 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 2, 2026
23d3e88 Probe CJK coverage explicitly in the single-font injection test (manaflow-ai#16884)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant