Repository navigation
plans(cmux-next): place AppCore, SessionTransfer and UiLayerPreview in the layer map - #27805
Conversation
…CmuxNextUiLayerPreview in architecture-layers.json The arch ratchet's layer_unplaced is 3 at feat-cmux-next (recorded 0): three Package.swift targets have no layer entry. - CmuxNextAppCore (66946e0): ui, mixes service and domain. Seam protocols whose public interface names AgentPane and Sidebar (ui) types; only CmuxNextApp imports it. - CmuxNextSessionTransfer (ec1311e, #20945): ui, mixes domain. Transfer values and the Move Sessions picker as data; its public interface returns CmuxNextDesign's CmuxDialogSpec. - CmuxNextUiLayerPreview (fe5fcb8, #24978): ui. A Debug-only SwiftUI leaf on Design and Icons. Each takes its highest layer; every edge points to the same or a lower layer, so the hard, soft and upward edge counts are unchanged (34, 12, 3). No exception.
|
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); NEW: green on the base cec0a36; do not merge until green; see lane-rules Shipped in:
|
…iew: Sendable values only, no state)
|
Independent review subagent (correctness first): SHIP. Each target is placed at the highest layer it holds; none can go lower without new hard edges. arch_counts layers(): unplaced 3 -> 0; hard 34, soft 12, upward 3, with identical edge sets. Review (Claude Opus 5.5): SHIP at 2cb910e |
|
Found 7 test failures on Blacksmith runners: Failures
|
|
Review (codex gpt-6-astra high fast, drain lane): SHIP at 2cb910e No blocking findings. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
The arch ratchet's
layer_unplacedis 3 at feat-cmux-next, against a record of 0. ThreePackage.swifttargets have no entry inplans/cmux-next/architecture-layers.json, so the layer gate and the edge rows cannot judge their edges. This PR places each one at the highest layer it holds (the map's rule). No exception.CmuxNextAppCoreCmuxNextSessionTransferCmuxDialogSpecCmuxNextUiLayerPreviewEvery edge points to the same or a lower layer, so the hard, soft and upward edge counts stay 34, 12 and 3.
A follow-up could make
CmuxNextAppCoredomain. It holds no views, but its public interface uses ui types:AgentPaneSeedandSidebarRowSection(ui targets) andNSWindow?(WorkspaceSelectionCloseFlow.swift,public import AppKit). Those must move or go before a relabel, or it adds 2 hard edges and fails the relabel proof.The same placement (without SessionTransfer, which perf does not have) is on perf/chrome-parity in
cp/fix-tip-cmux-tui-gen-checks.Changelog
none
Testing
layers()at the head's manifests): base['CmuxNextAppCore', 'CmuxNextSessionTransfer', 'CmuxNextUiLayerPreview'], head[].python3 scripts/cmux-next/tests/test_layer_gate.py: OK.python3 scripts/cmux-next/prepush-gate.py: no new violations, no architecture count rises.Observed / Not run