refactor(next): move NewWorkspaceDefaultSlot from CmuxNextApp to CmuxNextBridge (app_lines -121)
Summary
Moves the pure Cmd-N placement rule NewWorkspaceDefaultSlot out of CmuxNextApp into CmuxNextBridge, mechanically. The app keeps only its calls. This lowers the arch-ratchet app_lines count so that the "prebuilt workspace view" PR (fix/cmdn-prebuilt-workspace-view, about +18 App glue lines) lands at or below the base.
What moved (from -> to):
CmuxNextApp/Windows/NewWorkspaceDefaultSlot.swift:5-124(structNewWorkspaceDefaultSlot:awaitsCurrentAnchor,layoutCatchingUp,slot(for:section:in:home:catchingUp:),move(for:...),slot(inGroup:members:), privatetop(for:...)) ->CmuxNextBridge/NewWorkspaceDefaultSlot.swift, unchanged, with apublicsurface and an explicitpublic init(same defaults as the memberwise init).- The rest of the App file (
NewWorkspacePlacements, lines 126-195) stays in the App and the file is renamed toCmuxNextApp/Windows/NewWorkspacePlacements.swift. Package.swift: CmuxNextBridge now depends on CmuxNextSettings (forNewWorkspacePlacement). Both are domain; no cycle (Settings does not reach Bridge).plans/cmux-next/swift-logic-classes.tsv: the two rows follow the new paths and module.
app_lines (CmuxNextApp physical Swift lines): 156,792 at base 15336bdc152 -> 156,671 at head. Net -121. prepush-gate.py: arch-ratchet: app_lines -121 (CmuxNextApp -121), no new violations.
No behavior change. No file of the prebuilt PR or of the DaemonStore stand-in path is touched.
Tests
New NewWorkspaceDefaultSlotTests (CmuxNextAppTests, but it imports only CmuxNextBridge, CmuxNextSettings and CmuxNextSidebar) pins each moved decision at today's output: top / afterCurrent / bottom slots and moves, Home, a named top, the cold-layout anchor wait and its fallbacks, layoutCatchingUp(nil), the in-group slot. The existing Cmd-N suites stay unchanged.
Fleet steps (filled in below as they finish):
- compile: Release build job
e3dc94f7c7614b540312170d(tagcmdn-path-move-b599e48-v1) PASS; DEV build jobafa0aad9bfebce816df8c560(tagcmdn-path-move-b599e48-dev-v1) PASS. - package tests, step
d9bc35d52ff87c6c185cf572on aws-m4pro-6: "All 8 suites passed" (NewWorkspaceDefaultSlotTests,NewWorkspaceInSectionTests,NewWorkspaceInGroupTests,ColdCmdNRowSlotTests,ColdCmdNWindowRowsTests,CmdNAlwaysNewWorkspaceTests,CmdNRowSlotTests,CmdNThenNewTerminalTabTests). - launch:
scripts/cmux-next/os-matrix.sh --build afa0aad9bfebce816df8c560 --os 26, step2d44c04e8d9aecfdfe44b883: macOS 26.6.2 smoke PASS, crashes=0, hang_reports=0, faults=0 (launch, window, terminal echo, split, Chromium and WebKit tabs, Settings, quit).
Observed / Not run
Observed: python3 scripts/cmux-next/prepush-gate.py passes with app_lines -121; scripts/lint-ios-package-conventions.sh --namespace-fix reports no violations.
Not run: no local build or test (fleet only, per repo rules). No macOS 14/15 smoke (the move has no OS-dependent code). Not watched: GitHub CI on this head.
Owners told: CmuxNextApp/Windows and CmuxNextBridge have no OWNERS.md row; plans/cmux-next/swift-logic-classes.tsv has no row. The Package.swift edge is in PL-arch's layering area (architecture-layers.json is not changed).
No capture: refactor with no UI change
Changelog
none