Repository navigation
fix(cmux-next checks): pre-push gate fixture, manifest reader, Browser waivers, scrollbar List false positive (base reds) - #25032
Conversation
…xture, manifest reader, Browser waivers, scrollbar List) - tests/test_cmux_next_prepush_gate.py: the fixture strips GITHUB_ACTIONS and CMUX_GUARDRAILS_SKIP_REASON (as test_cmux_next_guardrails.py does). prepush-gate.py runs the guardrails locally only, so the two [main-async] tests failed only on CI. With the guardrails on, NEW_CLEAN reads through Data(blockingContentsOf:) (the raw-blocking rule) and the skip-reason test pushes a try! with no blocking read. - tests/test_cmux_next_route.py: a target's path: is read inside its own call. Since #24978 the .package(path:) dependencies follow the target list, and the last target (CmuxNextActionsTests) read ../../Shared/CmuxGhosttyKit as its path. - crash-safety-baseline.json: --record-waivers for CmuxNextBrowser dynamic_dispatch.waived 9 -> 11. WebKitGestureFreeEvaluation's three selectors (8e23ffe, 2ae3fe8) are sent only after path()/functionPath() check responds(to:); they replace one in the deleted WebKitTab+GesturelessScript. The same run lowers cmux-tui-core unwrap 1151 -> 1150. - check-scrollbars.sh: a ScrollView/List is judged only in a file that imports SwiftUI (any access level or scoped import), so AgentCLIIntentLedger's List(expectedMachineID:) request is no longer a hit; test cases added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a1708f-432e-7f23-a9e8-11c5945da2f6&host=cosmic-gray
|
Owned by claude-sr2/base-red-checks on cosmic-gray · session |
|
Bead |
|
Found 16 test failures on Blacksmith runners: Failures
...and 6 more test failures. View all on Blacksmith: run 40154205708, run 40154205780
|
…el path: (strings, raw and multi-line strings, nested comments, nested calls); @_spi(...) import SwiftUI counts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a1708f-432e-7f23-a9e8-11c5945da2f6&host=cosmic-gray
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 44faef5; does not block |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Four base reds in "cmux-next checks" on feat-cmux-next (run 40146316318, job 121028307969), each fixed where it starts. This PR touches scripts and tests only, no product code.
Script tests:
test_a_branch_that_merges_feat_cmux_next_in_is_judged_on_its_own_changesandtest_a_merge_cannot_use_an_upstream_removal_to_pay_for_the_branch_s_own_debtexpect[main-async].prepush-gate.pyruns the guardrails only whenGITHUB_ACTIONSis unset (ceebde5). The fixture env did not strip it, so on CI the guardrails never ran. The assertions came in with 4ab5c24 and ef34f91.GITHUB_ACTIONSandCMUX_GUARDRAILS_SKIP_REASON, astests/test_cmux_next_guardrails.pydoes.raw-blockingandmain-blockingrules refuse the old fixtures. SoNEW_CLEANnow reads throughData(blockingContentsOf:), the checked seam, and the skip-reason test pushes atry!-only file.Tier routing:
test_the_manifest_reader_finds_the_graph_targetsfails forCmuxNextActionsTests.path:from a target's name up to the next target's name. Since cmux NEXT: host real SwiftUI preview leaf #24978 the.package(path:)dependencies come after the target list, so the last target picked up../../Shared/CmuxGhosttyKitas its path.path:is now read only inside its own(...)call. Balanced parentheses, skipping strings and comments.test_cmux_next_route.pygives 37 OK.Crash safety:
swift CmuxNextBrowser: dynamic_dispatch.waived 9 -> 11.NSSelectorFromString(in the deletedWebKitTab+GesturelessScript.swift) with three reviewed// crash-allow:selectors inWebKitGestureFreeEvaluation.swift.path(in:)orfunctionPath()checksresponds(to:). With no path the call throws.unsupported, so all three waivers are justified.crash_ratchet.py --record-waivers, the designed path for a reviewed crash-allow. The same run also lowersrust.unwrap cmux-tui-corefrom 1151 to 1150 (a ratchet going down).crash-ratchet: ok;crash-ratchet-tracked,crash-ratchet-v2andtest_crash_ratchet_comparepass.Scrollbars thin (warn-only):
AgentCLIIntentLedger.swift:21List(expectedMachineID:...)was a false positive.check-scrollbars.shnow judges a SwiftUIScrollView/Listonly in a file that imports SwiftUI. That covers@preconcurrency, access-level (public import) and scoped (import struct SwiftUI.List) imports. No CmuxNext module re-exports SwiftUI.Sources, the onlyScrollView/Listthe new rule skips is that Ledger line.check-scrollbars.test.sh; the existing SwiftUI cases now import SwiftUI. The real Swift hits go in a separate PR.Risk: low. Test fixtures, a test-side manifest reader, one baseline row, and a checker's scope. CI gate behavior is unchanged except for the scrollbar false positive.
🤖 Generated with Claude Code
Agent session: cosmic-gray
Need help on this PR? Tag
@codesmith-botwith what you need.