fix(next): keep composer controls and persistent Codex goals visible
Codex’s advertised speed tiers and slash commands were unavailable in the New Tab before the first prompt. A deferred session could publish its commands after creation, but the page had no safe read path for them.
This PR keeps the model’s actual service tiers visible as Standard/Fast/Ultrafast choices, preserving the real tier ids through the Codex bridge. Typing / in a Codex New Tab prepares a deferred session, reads its published command list without attaching it, and keeps stale reads from replacing a newer session’s commands. The Codex bridge pin is updated to 6e476aa8220e18aad1eaeaabd59659b53f7eca31 from cmux-codex-acp#9.
Persistent Codex goals are split into the stacked goals branch so this PR stays focused and below the requested size threshold. Composer-look ownership remains in #24519.
Verification
- Exact rebased head:
d441bfcd0ffb2d666aef179e146b45b878322f12onfeat-cmux-nextbaseb9adbebe32ff955e0ddc2d811462b98045aff249. - Focused tests: 5 New Tab layout/slash-command tests, 9 speed-toggle tests, and 1 pending-speed test passed.
python3 scripts/cmux-next/prepush-gate.pypassed with no new violations.- The full
bun run check/web-lint lane remains red on pre-existing base failures in the thread-minimap files (formatting and readonly/type errors); those files are unchanged here.check-system-bluealso reports its existing SidebarListView baseline finding. - Canonical gallery speed fixture builds from the real components; no native AppKit changes are included in this PR.
- Native Rust and hosted CI are pending on this new exact head. The bridge dependency PR has hosted Linux/macOS checks green at its pinned head.
Scope boundary
This PR does not change composer-look dot placement, New Tab access presentation, inactive-glass tint, or persistent goals. Those changes stay in their owner PRs.
Primary review will inspect this exact rebased head before the normal squash merge.
Agent session: cosmic-gray