Repository navigation
cmux NEXT checks: No new SwiftUI and canary coverage pass again (re-point moved entries, lint keeps moved files, Sleepy shims) - #25021
Conversation
…n base - AppIconView and AppSectionFrame moved from Store/Views to Section (84b3fc5); their old-path entries were deleted (91d4ac2) instead of re-pointed. Re-point them. - The lint now names a moved file's new path in the stale-entry finding, and a move that also rewrote the file keeps its entry under --base, so this cannot recur. - NightSky's NSViewRepresentable moves beside its only consumer, SleepySceneView (allowlisted): CmuxNextDesign's sky is AppKit only. SleepySceneView.hostView is the one place the scene meets AppKit, so SleepyOverlayWindows and both Sleepy tests no longer import SwiftUI (SleepyOverlayWindows' entry is deleted). - CmuxNextUiLayerPreview (#24978) is the Debug-only preview leaf that exists to host production SwiftUI; it gets an entry and joins the swift-canary-fleet target list. 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 349a6bb; does not block Tour of The path-selected recorder failed for core-after, core-before; see the run artifact and failed manifests. Path-selected interactions
Core UI (before): FAILED — 16 ok, 3 failed, 1 unavailable
Failed steps: 5. Split right Screenshots (12)1. Launch
Failed steps: 5. Split right Screenshots (12)1. Launch Tours are data in |
|
Owned by claude-sr2/base-red-checks on cosmic-gray · session |
|
Found 15 test failures on Blacksmith runners: Failures
...and 5 more test failures. View all on Blacksmith: run 40166395469, run 40166395540
|
|
Bead |
…ry for a base red is a note (review 1) 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
|
Shipped in:
|
































![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Base run 40146316318 ("cmux-next checks", e869761) fails two steps. This fixes both at the source. The three Labs reports-basket views were ported to AppKit in #25031 (merged, no allowlist entry), so with this PR the step reports 0 findings.
1. Checks job structure (
SwiftCanaryFleetCoverage): #24978 added the production targetCmuxNextUiLayerPreview, whichCmuxNextAppdoes not reach (ci-target-graph.json). It joins the swift-canary-fleet case list, so a change to it runs the Mac canary instead of being vouched for by the app compile.2. No new SwiftUI: 9 findings go to 0 (#25031 fixed the 3 basket findings). Allowlisted files after this PR: 156.
CmuxNextApps/Section/AppIconView.swift,AppSectionFrame.swift: lawrencecchen moved them fromStore/Views/in 84b3fc5. Both were allowlisted under the old path. 91d4ac2 then deleted the old-path entries as stale instead of re-pointing them. This re-points them. It restores entries that were already there; it does not widen the list.Why it could happen, and the fix to the lint: a stale entry said "delete its line" even when the file had only moved, and the
--base"a moved file keeps its entry" rule (f61b6a1) relies on git rename detection, which misses a move that also rewrote the file (AppIconView went from 123 lines to 38). The lint now (a) names the moved file's new path in the stale-entry finding ("change the line to the new path instead of deleting it") and (b) under--base, accepts an entry swapped one-for-one for the gone entry with the same file name. New cases incheck-no-swiftui.test.shcover both, and each fails against the old checker.CmuxNextDesign/NightSky/NightSky.swift(02ce3d0): it was only theNSViewRepresentableshim around the Core AnimationNightSkyView, for its single consumerSleepySceneView(allowlisted, Sleepy Mode wave 1 item 4). The shim now lives as a private type inSleepySceneView.swift, soCmuxNextDesign's sky is AppKit only.Tests/CmuxNextAppTests/SleepySceneCostTests.swift,SleepySkySnapshotTests.swift(7b76fa2): they imported SwiftUI only to constructNSHostingView.SleepySceneView.hostView(...) -> NSViewis now the one place the scene is bridged into AppKit. The tests andSleepyOverlayWindowscall it, so all three drop SwiftUI, andSleepyOverlayWindows.swift's allowlist entry is deleted.CmuxNextUiLayerPreview/UiLayerPreviewView.swift(cmux NEXT: host real SwiftUI preview leaf #24978) gets an entry, with this justification: cmux NEXT: host real SwiftUI preview leaf #24978 made it a Debug-only SwiftPM leaf product that exists to host real production SwiftUI (HairlineDivider,Icon,CmuxDialogActionButton) in the standalone UiLayerHost hot-reload preview. Per its body it is "off by default, excluded fromCmuxNextAppand release app targets". An AppKit port would defeat its purpose, and it goes when those SwiftUI adapters go (design wave 4).The
--basegrowth check, after review 1: the same-name pairing is strictly one-to-one. The name must be unique among both the gone entries and the added entries, so one deletedOld/X.swiftcannot admit two newX.swiftfiles. A new entry for a file that already imported SwiftUI at the base adds no SwiftUI, so it is printed as anote:line, not a finding. The step passes and the growth stays visible. The allowlist still cannot admit a file that this PR makes import SwiftUI. This PR's own step prints three such notes (AppIconView, AppSectionFrame, UiLayerPreviewView) and passes. Self-test cases cover each rule, and each case fails when its rule is removed.No capture: no visible change. Sleepy Mode draws the same SwiftUI tree in the same
NSHostingViewwith the sameNightSkyView; only the file that holds the representable and the line that builds the hosting view moved. Nothing else is UI-visible. No screenshot, for that reason.Risk: low. Python lint and its self-test, one workflow
caselist, and a Swift file-placement change in Sleepy Mode. Verified locally:check-no-swiftui.py(ok: 0 findings, 156 allowlisted),check-no-swiftui.test.shok, theSwiftCanaryFleetCoveragelogic (graph-reachable set equals the case list). Fleetcmux-ci compile-check --package CmuxNextpassed (job 3a0e78dfe95b, 221 s) on this PR's commit before the base merge. That merge touches none of this PR's files.Who introduced what: AppIconView/AppSectionFrame move by lawrencecchen (84b3fc5), with the entries deleted by a Leo lane (91d4ac2); NightSky and the Sleepy tests by lawrencecchen (02ce3d0, 7b76fa2); UiLayerPreview by a Leo lane (#24978); the reports basket by a Leo lane (#24616), later edited by lawrencecchen.
🤖 Generated with Claude Code
Agent session: cosmic-gray