Repository navigation
cmux NEXT sidebar: drag the Chief out to remove it; a Chief just added draws before its echo (2/2 of #23933) - #25420
Conversation
…n before its echo (red) ChiefTileDragOutTests and ChiefListedDragOutTests: the Chief dragged past the sidebar's side comes off only when released out there (a tile, the older band, a listed row; a release sent to another window still decides; an autoscroll frame does not take it back). ChiefPendingRemoveTests: a Chief just added draws and comes off before the daemon answers; one Chief; a refused remove keeps it; no label edit until its echo; no other built-in draws early (#23933 round 3). ChiefSidebarPlacementTests: placement is the document as it draws, not one window's rows. Red: removesOnDragOut, the release point and the pending Chief do not exist yet. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
…t added draws and comes off before its echo Leo 2026-10-21: "IAM SAYHING TOFUCKIGN OPTIONALLY MOVE IT BACK AND FORTH ON THE FUCKING SIDEBAR" - The Chief dragged past the sidebar's side dims its card and its release out there takes it off (removesOnDragOut / onDragOutRemove, wired by the bridge to sidebar.item.removeEverywhere), from a list row, a top-rows tile or the older band. The release point decides, also when the release went to another window (the list's pointerEventSeen, the band's own release monitor; its one hop is a main-actor Task, not DispatchQueue.main.async). - Remove from Sidebar finds the Chief in a group or a machine list (the document at any depth). - Placement is the sidebar document as it draws, pending changes included (placesItem), so every window agrees and a second add adds nothing. - The Chief has one item id (chiefItemID). Drawn by the mirror before the daemon's echo, it moves and comes off at once; a refused remove puts it back; its label edit waits for the echo; no other built-in draws early (#23933 review round 3, never reviewed there). Carried over from #23933 (chief-sidebar-2), resolved on today's base. Sidebar-Look: Leo 2026-10-21 "OPTIONALLY MOVE IT BACK AND FORTH ON THE FUCKING SIDEBAR" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
|
Owned by an agent session · session |
1 similar comment
|
Owned by an agent session · session |
|
Bead |
|
|
|
Fleet evidence for #25420:
|
|
Review (codex gpt-6-astra xhigh): BLOCK at 63cdbc7
Checked:
|
…d makes its section (red) #25420 review (Codex, 63cdbc7): a confirmed Chief removed and added again before either echo drew the removed Chief's fields and offered a label edit; a Chief whose add makes its top section drew in no section; and the label test called pendingEdits, not the item menu. These tests use the real item menu before and after the echo, the re-added Chief's fields, and an add into an empty document. Red: the store keeps no record of the add itself. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
|
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 Tour of Path-selected interactions
Core UI (before): DEGRADED — 20 ok, 1 unavailable
Screenshots (15)1. Launch
Screenshots (15)1. Launch Tours are data in |
2a89d56 to
6b79821
Compare
…d makes its section (red) #25420 review (Codex, 63cdbc7): a confirmed Chief removed and added again before either echo drew the removed Chief's fields and offered a label edit; a Chief whose add makes its top section drew in no section; and the label test called pendingEdits, not the item menu. These tests use the real item menu before and after the echo, the re-added Chief's fields, and an add into an empty document. Red: the store keeps no record of the add itself. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
…d makes its section (red) #25420 review (Codex, 63cdbc7): a confirmed Chief removed and added again before either echo drew the removed Chief's fields and offered a label edit; a Chief whose add makes its top section drew in no section; and the label test called pendingEdits, not the item menu. These tests use the real item menu before and after the echo, the re-added Chief's fields, and an add into an empty document. Red: the store keeps no record of the add itself. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
…ields and section The store keeps each unechoed Chief add by intent key (SidebarPendingChief, parsed from the intent's ops), settled by its echo, a refusal, a drop or a load. The drawn records take the newest add's item over a confirmed record (a Chief removed and added again), and the section the add makes when there was no top section; the planner refuses a label edit while any Chief add waits, and the item menu leaves it out (isPending). Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
6b79821 to
6ddfaa0
Compare
|
|
…ho, a reload, and an undo's put (red) #25420 review (Codex, 6ddfaa0): the echo test sent its key at the batch's top level, where the daemon never puts it (the sidebar_doc marker holds it); a reload that holds an answered add left the Chief pending; and an undo's section.put and item.put drew the Chief in no section with a default label. Red: the store reads the key only at the top level, keeps answered adds over a load, and parses only adds. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
An echo settles it by the first sidebar_doc marker's key, else the batch's own, as the mirror reads it; a stale batch settles it too (its change is already confirmed) and redraws. A load settles every Chief change sent before it was asked for: the mirror drops a replayed one the document already holds. An undo's section.put and item.put are parsed like adds. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
|
Review (codex gpt-6-astra xhigh): BLOCK at 6ddfaa0
Checked:
|
…s (red) #25420 review (Codex, 1491f61): a load settled every Chief change sent before it, but the mirror replays the ones the loaded document does not hold yet. A Chief removed and added again, both answered, then a reload older than both: the Chief must stay the new add's, pending until its echo. Red: the load clears its pending record. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
…rops The mirror's JSON load and batch replies name the pending intents they settled or dropped (`dropped`); the typed replies do not. A load (rare) now uses the JSON call, and a batch does while a Chief change waits, so the store keeps exactly the Chief changes the mirror still replays: no parsing of the batch's key, no guess about what a load holds. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
Default changesThis pull request changes 3 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with |
…) into chief-sidebar-3/drag-in Four conflicts from base's changes, resolved by hand: - SidebarSectionHandlers.swift: the Chief binds through this branch's `chiefHost`; base's removal of the other machines' chats binding (Lawrence 2026-10-26) is kept. - SidebarBridge+Sections.swift: the item-info observation reads both base's preview-features flag (App Store visibility) and this branch's listed built-ins. - SidebarView+Observation.swift: both base's needs-you refresh and this branch's listed-row info patch run. - plans/cmux-next/sidebar-owner.md: every target and log row kept, base's first. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
|
Review (codex gpt-6-astra high): SHIP at 0414cff
Checked:
|
|
Found 1 test failure on Blacksmith runners: Failure
|
Resolves the sidebar-owner.md log: base's rows first, then the Chief drag out row. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ab89af9577307fdeceb7
|
Review (codex gpt-6-astra high, next-review): SHIP at 652aebb No blocking findings. Review was limited to the supplied diff and source files; tests were not run. |
A newer verdict blocks 2c9c186 (no independent SHIP at the head).
|
Review (codex gpt-6-astra high, next-review): SHIP at 2c9c186 No blocking findings. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40977234399 at 817e10c failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next fleet Release compile. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40978245548 at e346d50 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
Shipped in:
|
|
Shipped in:
|
…b9: 17 test errors) - AccountsActionOutcomeTests: AccountsModel.saveKey answers through done: (awaited). - AgentChatTargetAppTests: the nested Rig calls AgentChatTargetAppTests.chat. - CloudMachineRepoTests+Completion: the flow task is Task<Void, any Error>; result. - ComputerUseSetupTests: make(..., rig:) and Self.run(rig), as the file's other tests. - MaskedScreenshotTests: @testable CmuxNextBrowser for WebKitEngine's test init. - MultiWindowRestoreTests: mirrored(profile:on:) with the app's mainWork. - PageBrowserTabDiscardTests: FollowingSource has trunk's frame(_:size:session:). - PointerFrameDragSitesTests: onDragEnded takes the window point (trunk #25420). Assertions unchanged.
































![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-10-21 (his exact words):
Leo-ask: ask-02828fbad5
Leo-ask: ask-c2df0efe0c
Leo-ask: ask-97431a8bca
Leo-ask: ask-05fd281019
Part 2 of 2 carried over from #23933 (which conflicted with 3,309 base commits and failed base's new pre-push gates). Part 1 (drag in from Home, the look anywhere, the unread dot) is #25418, stacked on this PR: this one lands first. The Chief item stays off by default.
Sidebar owner: the sidebar-owner agent (a590).
plans/cmux-next/sidebar-owner.mdgets a log line in the fix commit (Sidebar-Look:trailers on both commits).What changes
itm_chief), so the mirror's row names it. It draws, moves and comes off before the daemon's echo; a refused remove puts it back; a second add adds nothing; its label edit waits for the echo; no other built-in draws early.Codex review rounds on this PR (BLOCK at 63cdbc7, 6ddfaa0, 1491f61, 79a0b66, 5490871, abd78b9 and f98744d; SHIP at c401d69; receipts below). What the pending Chief now does:
SidebarPendingChief, parsed from the intent'sitem.add/section.addops, or an undo'sitem.put/section.put). The drawn records use the newest one's fields and its section over any confirmed record, so a Chief removed and added again draws the new add.sidebar_docmarker key, by a stale batch, by a refusal or drop, and by the keys the mirror itself drops: a batch or a load settles exactly the changes it answers, so a load older than a change keeps it pending. A refusal settles the later Chief adds the mirror drops with it, and a load at the revision a reply named settles that answered change (an undo's put the mirror replays without dropping).Size: 1,207 changed lines (1,162+, 45−), over the 800 guide. About 640 of them are tests: each review round added a regression test. I kept the tests rather than cut coverage.
Gate findings fixed: the older band's deferred release check hops with a main-actor
Task, notDispatchQueue.main.async. No newCmuxNextAppfile: the drag-out wiring is inSidebarBridge.swift, the pending-edit menu rule inSidebarBridge+Sections.swift(+15 App source lines; the gate warns, refuses nothing).Overlap (
pr-overlap): #24371 (pinned workspaces as rows) touchesSidebarSectionHandlersandSidebarDocProjectionfor a different change; #22626 (austinywang) touchesSidebarListView+Drag.swift'sfinishDrag; #24513 (group rail) is merged.Screenshots
A real app capture (
cmux-ci capture, Blacksmith macOS). The Chief is added to the top rows, then its row is dragged past the sidebar's side withdebug.mouseand held there, not released.Changelog
Added: drag the Chief out beside the sidebar to take it off.
Observed / Not run
Agent session: agent session
🤖 Generated with Claude Code