cmux-next sidebar: remove leading status circles and stale session rows
What changed
Leo corrected the sidebar direction: “no, we dont want the left circles tho? we already have the dots on the right so idk”. This PR removes the leading task-status glyph from every workspace row, preserves user-provided icons, and filters a local workspace row after its acpmux session is purged. The right-side status indicators remain the source of attention state; idle rows have no extra left status ring.
The left circle was SidebarTaskStatus.glyph, the leading row icon fallback. It meant the pinned task lane/status presentation, while the trailing status dots carry current lane attention. Closed sessions are removed only after the live lane page confirms the session is gone; a disconnected watch keeps rows until the next complete page. Mixed workspaces and unbound agent tabs remain visible.
Risk
Low and contained: presentation and live sidebar projection only; no new model or persistence format. The main risk is filtering a workspace whose stale local agent tab shares a row with other live content. The filter explicitly keeps mixed, remote, non-agent, and unbound tabs, and observes session presence separately from fast-changing lane state so normal lane updates remain row-local.
Verification
- Independent Codex review at final head
6f52e46eaf3a129e97192b01d21c3ca424cfc4e6: SHIP. - Managed compile check:
968916b9360731c4d0b279aa, exact head,CmuxNext --app: passed. - Static prepush gate and Swift syntax checks: passed.
- Tests cover no leading status glyph, purged-session removal, mixed/unbound workspace retention, and the before/after gallery fixture.
- GUI gallery job:
842041cb366bc8f9e7baa5e5, exact head, artifactsidebar-status-cleanup-gallery.tar(queued at PR creation; URL will be added when the managed worker returns it).
Reference matched: Chrome-style chat list with no idle leading status ring; the PR gallery renders the before/after sidebar side by side without using Leo's private screenshot.
agent-identity footer
Agent session: cmux16
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Removes the leading status circle from cmux-next sidebar rows and drops rows whose local acpmux session has been purged. This is a purely presentational change; no model or persistence format changes.
Behavior
- Workspace rows no longer draw a left status glyph; the trailing status dots already carry attention state, and user-assigned icons are unchanged.
- A row disappears once its local acpmux session is purged, so a lingering conversation tab doesn't keep a stale workspace visible.
- Mixed workspaces with other tabs, unbound agent refs, and non-local tabs remain visible.
- Session presence is observed separately from lane state so row-level lane updates don't cause the whole sidebar to rebuild.