cmux NEXT: defer first Cmd-N until cold sidebar anchor is realized

Merged
TE
6d ago
+442-32

Stacked follow-up to #25654 for the first Cmd-N after a cold/update layout.

When the sidebar projection is stale and the current workspace row has not been realized, afterCurrent now keeps the placement pending and draws no temporary bottom frame. Once the fresh sidebar pass realizes the anchor, the pending create is retried and inserted immediately after the current workspace. The default rule captures the current machine so omission on another machine does not defer unrelated placement.

Changelog

  • Fixed the first Cmd-N after update/cold layout so its row appears directly after the current workspace without a bottom frame.

Validation

  • Red regression (pre-fix SHA 9578cd596c0d192ee8db1dcbf0858bda5a6466e5): cmux-ci step 7a6e1ad7a7a0184eefcb9128 (running; expected failure).
  • Prior managed baseline step 4934f43cdecc4be8a49466a4 on 8129deaa308961fdaaad663f30802e2152348c7b: suite passed, showing the original integration test did not catch the stale empty projection.
  • Swift syntax gate against #25654: passed.
  • Full static gate: blocked by existing localization debt (45,715 parity errors; no localization files changed here).
  • Green focused suite will run on the final fix head after the red receipt is terminal.

No changes to Lawrence #21914 or Austin #23071. No visual styling or motion changes; matched the Codex quiet sidebar reference (apps/codex/live/sidebar-active-work-projects-recents.png, Sidebar-Look: no visual change). #25654 still has no usable NIGHTLY display-rate recording; this regression uses an explicit stale-projection state.

No capture: this changes when a new workspace's row is placed on a cold launch, not how anything looks; ColdCmdNRowSlotTests records every drawn sidebar frame and checks the new row sits right after the current one in each.

Agent session: agent session