Skip to content

plans(cmux-next): place AppCore, SessionTransfer and UiLayerPreview in the layer map - #27805

Merged
lawrencecchen merged 2 commits into
feat-cmux-nextfrom
fix/arch-layers-appcore-uilayerpreview
Oct 31, 2026
Merged

lawrencecchen merged 2 commits into
feat-cmux-nextfrom
fix/arch-layers-appcore-uilayerpreview

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The arch ratchet's layer_unplaced is 3 at feat-cmux-next, against a record of 0. Three Package.swift targets have no entry in plans/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.

Target Added by Layer Why
CmuxNextAppCore 66946e0 ui, mixes service and domain Seam protocols for app features; its public interface names AgentPane and Sidebar (ui) types; only CmuxNextApp imports it
CmuxNextSessionTransfer ec1311e (#20945) ui, mixes core Sendable transfer values and the Move Sessions picker as data (no state); its public interface returns Design's CmuxDialogSpec
CmuxNextUiLayerPreview fe5fcb8 (#24978) ui Debug-only SwiftUI preview leaf on Design and Icons

Every 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 CmuxNextAppCore domain. It holds no views, but its public interface uses ui types: AgentPaneSeed and SidebarRowSection (ui targets) and NSWindow? (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

  • Unplaced targets (arch_counts layers() at the head's manifests): base ['CmuxNextAppCore', 'CmuxNextSessionTransfer', 'CmuxNextUiLayerPreview'], head [].
  • Edge rows: hard 34 -> 34, soft 12 -> 12, upward 3 -> 3.
  • 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

  • Observed: the commands above on Linux (cmux-orchestrator-1, Python 3.12), at the base cec0a36 and the head.
  • Not run: no build; this changes only the layer map JSON.

…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.
@lawrencecchen lawrencecchen added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 2cb910e: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr27805 -f ref=fix/arch-layers-appcore-uilayerpreview -f platform=macos -f backend_mode=local

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:

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

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. test_layer_gate.py OK (55); layer_gate.py ok. Delta 23b6d8f..2cb910e (SessionTransfer mixes core, body fixes) also checked.

Review (Claude Opus 5.5): SHIP at 2cb910e

@lawrencecchen lawrencecchen added the ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds label Oct 30, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 30, 2026

Copy link
Copy Markdown

Found 7 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp3ej33js1/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmp9b7441wa/summary-fail.json (live):/summary-fail.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Review (codex gpt-6-astra high fast, drain lane): SHIP at 2cb910e

No blocking findings.

@cmux-bot cmux-bot Bot removed the stack-blocker label Oct 30, 2026
@lawrencecchen
lawrencecchen merged commit 9c6e1d0 into feat-cmux-next Oct 31, 2026
209 of 227 checks passed
@lawrencecchen
lawrencecchen deleted the fix/arch-layers-appcore-uilayerpreview branch October 31, 2026 00:33

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 2cb910e9 Deployed Oct 30, 2026 by lawrencecchen via wait for same-key tree publisher #79532
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds risk:low Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants