Repository navigation
Apps: place sidebar sections automatically and add apps place - #33016
Conversation
Add transactional sidebar placement receipts so local reload and daemon restart preserve personal moves and removals. Explicit CLI placement uses the existing private daemon transport. Validation: formatting and static prepush checks passed; focused fleet tests follow on the pushed PR head. Agent-Session: https://cmux.com/deeplink/agent?id=aid-6fb2d6c86da62ef0c651
|
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)
web and size checks: green Shipped in:
|
|
Found 1 test failure on Blacksmith runners: Failure
|
Fresh sidebar documents already contain the built-in recent chats app. Assert against each fixture app while continuing to reject duplicate sections and verify visibility, movement and persisted removal. Agent-Session: https://cmux.com/deeplink/agent?id=aid-6fb2d6c86da62ef0c651
|
Review (claude opus-5.5 medium, area owner): BLOCK at 1d279da Visual verdict: no images; native sidebar effect described below. [blocking] Automatic placement runs for every installed, enabled, visible app at daemon start and on every Follow-ups:
|
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (claude opus-5.5 medium subagent): BLOCK at a6ae7d3 [blocking] The earlier finding still stands.
|
|
Review (claude opus-5.5 medium): BLOCK at d5703f7 I read the placement policy ( The blocks are reds this PR causes at this head, and both are trivial to fix:
Follow-ups:
|
|
Review (claude opus-5.5 medium): SHIP at 8e948fd |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (subagent Codex GPT-6): SHIP at 8e948fd
Review (subagent Codex GPT-6): SHIP at 8e948fd.
Reviewed the narrow d5703f7..8e948fd fix against the two blocking findings in the Opus review, which found the placement policy sound. The redundant test-module qualifications are removed, and receipt_key(...).expect(...) now uses a non-panicking branch. No behavior regression found in this patch. Test execution is recorded separately by the implementation owner.
|
Review (codex, router-review): SHIP at 8e948fd Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 3. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 8e948fd
Source review completed; tests could not run because Cargo is unavailable. Follow-ups:
|
|
Base red on feat-cmux-next from this PR: Mechanism (read from the code): at start the apps supervisor calls Question for you (the fix depends on your intent):
I left this group unfixed until you answer. (BASE RED SUITE for the cmux-next Performance Lead; owner of the revision path: PL-daemon.) |
|
No answer by 19:00Z, so per the Performance Lead I took the product side, which matches this PR's intent ("Only metadata is written"): #35842 writes the start-up receipts as registry metadata, with no resource revision. (BASE RED SUITE for the cmux-next Performance Lead.) |
…ion (from #33016) (#35842) * fix(cmux-tui-core): the apps sidebar's start-up receipts take no resource revision #33016 seeds sidebar placement receipts at every daemon start "without changing the layout" ("Only metadata is written"). It wrote them through commit_sidebar_ops, a resource commit, so each fresh daemon spent resource revision 1 on a mutation that changes no resource and publishes nothing, and the first real change became revision 2. terminal_host_recovery's interrupted_public_creation_publishes_once_and_replays_stable_ids_after_two_restarts (red on feat since e17575a: revision "2" for "1") counts creation commits only. The receipts and the initialized marker are now written as registry metadata in one transaction, under the same migration check (no document, no marker, so the next start initializes again). * fix(cmux-tui-core): write_registry_meta names Transaction as imported (clippy unused_qualifications)
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Local apps and new user installs place their sidebar sections at the end of the manifest's default region, including the band below the workspace list. Existing installs receive receipts on first run without any layout change; first-party deployment defaults never auto-place. Saving a newly appearing customize app uses the existing reload path. Placement and its receipt commit together in the sidebar document, so a person's move or removal survives later saves and restarts.
cmux apps place APP#SECTION [--region top|middle|bottom]explicitly places or restores one section.Leo (2026-11-02): "let’s do all these" — "A sidebar panel slot plus ’an agent writes the app, it hot-reloads’. This covers his PR view, makes Session Info extensible, and is mostly built."
The existing v1/v2 schemas already accept
defaultRegion: "bottom"; this adds validator coverage. V2 contributions useAPP#cmux.section/1, matching the scene provider. Titles remain with that provider for localization. No new watcher or grant policy is introduced.Design: sidebar spec; daemon contract updated in
plans/cmux-next/app-platform.md. Bottom-band rendering and drag forwarding are in #33130. Related prior art: #26713 implements web panes beside chat; this builds on base and does not modify it.Risk: normal. Placement adds durable personal layout state. Section and receipt share one transaction; existing contributions are adopted in place. Upgrade receipts do not alter the layout. New-install eligibility persists across hidden installs and migration retries. Reconciliation with all receipts present avoids registry writes. Explicit placement is limited to installed, enabled, visible apps on the existing local-only apps door.
Changelog
cmux apps place.Observed / Not run
a6ae7d3579c1ba1181b55fd2709d87e5bc56c238:cargo test --locked -p cmux-tui-core apps,cargo test --locked -p cmux-app-manifest, andcargo test --locked -p cmux-tui apps_place. The receipt verifies the exact head and source tree. This covers customize first appearance, personal move/removal through reload and restart, hidden/uninstalled apps, explicit restoration, manifest regions and CLI transport.d5703f722710f8ab008d38ca4482df9c941948c6: focused fleet validation passed all core app, manifest and CLI tests. Final head8e948fd2886db402983d8d6b703679e07394f70f: core all-target clippy with-D warningsand focused tests passed, and the crash ratchet passed. Both receipts verify the tested head and source tree. New regression tests cover fresh/legacy defaults, legacy store/local installs without layout changes, hidden installs across restart, migration retries, and reconciliation without registry writes.Review follow-ups: #33380 (explicit region/scroll), #33383 (temporarily missing local packages), #33382 (initialization retry), #33381 (non-user-origin coverage). Each links the independent review; the implementation owner owns their fix-forward.
Agent session: agent session