Skip to content

Sidebar: show app panels below the workspace list - #33130

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/app-slot/sidebar-bottom
Nov 3, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/app-slot/sidebar-bottom

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

App sections now render in the sidebar band below the workspace list. The band keeps the existing height cap and scrolling, releases mounts when sections disappear, and forwards app-header drops within the bottom band and between top and bottom through the existing document move. The footer and hidden ordinary bottom item sections keep their existing behavior.

Bottom-region app sections, including agents and coderouter, will now show after upgrade.

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."

Design: sidebar spec. The prior cx-n0i9 decision still applies to ordinary item sections. Related prior art: #26713 adds web panes beside chat; this builds on base without modifying it. Automatic daemon placement is in #33016.

Risk: normal. This restores app rendering in an existing band and extends existing header drag forwarding. Saved section order remains authoritative; there is no new persistence mechanism.

Changelog

  • Improved: Apps can show panels below the workspace list, and their headers can be dragged between sidebar bands.

Observed / Not run

  • Latest requested base merge is pushed at f558b7e0570f93ca7aada22045e156e4829737d3 (base e17575a9e2af1bf12e847858ffb69124835945ca), without rebase or force push. Code merged automatically; the notes conflict retains both entries. The fleet Release compile and app compile passed at this head; a separate Release-path compile check also passed (fleet job a76f279ac5f7276fc2d39462, 111 seconds). All four focused sidebar tests passed at this head (fleet step d40e9802cb748790a30a69c7, one suite passed, zero failed, exit 0).
  • Previous merged head f58bf7e036c077862d5537fc31d73721236b19f8 passed the app compile check (fleet job 21eb263a608127bed0531c28, 57 seconds) and all four focused sidebar tests (fleet step 8b082ef46f5e758d1d133bfd, one suite passed, zero failed, exit 0).
  • Four pure tests cover app-only selection, room scope and order, and moves between bands with hidden sections preserved.
  • Static checks and the app compile check pass at f0a88946064772d43facbca1e6a98da117e80e43 (compile job 2da7427ddfcd4a08d3a12bd5, 57 seconds). The focused direct Swift Testing run passed all four tests at this exact head (fleet step 08d27569914fb8915f1342cc, one suite passed, zero failed).
  • The standard package-test harness built successfully and ran all four tests successfully, but its empty XCTest phase crashed with signal 6 during startup. This is recorded as a failed harness run, not excused as a base red; the supported direct runner completed the focused suite successfully with exit 0.
  • Not run: interactive drag/rendering in a DEV build or end-to-end agent authoring. Screenshots are a follow-up.

Review at this exact head: Opus SHIP. Follow-ups: #33524 (stable band height and first/settled DEV captures), #33525 (cross-band drag test). The implementation owner owns both.

Agent session: agent session

Project only app sections below the workspace list and forward app header drags through the existing sidebar move operation. Keep ordinary item sections hidden and preserve the footer and band sizing.

Agent-Session: https://cmux.com/deeplink/agent?id=aid-6fb2d6c86da62ef0c651
Sidebar-Look: let’s do all these — A sidebar panel slot plus ’an agent writes the app, it hot-reloads’.
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (claude opus-5.5 medium subagent): SHIP at f0a8894
Visual verdict: no images. The band below the workspace list now draws bottom-region app sections only; item sections stay undrawn there (appSections(in:) filters on .app), and sidebar.section.add still refuses bottom.
I checked the bottom-band projection, cross-band section drags (SidebarAppSectionDrops, appSectionMove, which go through the normal reducer move, and hidden sections keep their positions), the drag-end and cancel cleanup paths, and that the referenced symbols exist. The new tests cover order and room scope. No failing checks of its own. build / release-compile was still pending when I reviewed: land on a green compile.
Follow-ups: [follow-up] Stored documents from before cx-n0i9 that still have app sections in the bottom region will start drawing them again. That is intended, but say so in the PR body. [follow-up] wireItems sets region.liftHost again, which is redundant for band regions. [follow-up] Add a UI test for a real drag from the top band to the bottom band.

…debar-bottom

# Conflicts:
#	plans/cmux-next/sidebar-owner.md
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review f558b7e: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr33130 -f ref=lane/app-slot/sidebar-bottom -f platform=macos -f backend_mode=local

web and size checks: green

Shipped in:

@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
nightly preparation must run on Blacksmith Linux, keep its fallback, and reuse a succes
sful artifact/
nightly preparation must run on Blacksmith Linux, keep its fallback, and reuse a succes
sful artifact
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

…debar-bottom

# Conflicts:
#	plans/cmux-next/sidebar-owner.md
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (claude opus-5.5 medium): SHIP at f558b7e

Visual verdict: no images attached; code verdict only. The band below the list still goes through SidebarBandHeights.resolve (band share cap plus minimumList), so app panels cannot push the workspace list off-screen. Empty bands reserve no space, and the drop target for an empty band exists only while a drag runs.

What I checked: the PR's own diff from merge-base to head at f0a8894 (base 7fd513e) and at f558b7e (base e17575a) is identical apart from hunk offsets and the sidebar-owner.md notes, where both entries were kept. So the earlier SHIP covers the code. On base, SidebarView+Sections.swift and SidebarRegionView.swift gained the pinned-row double-click rename (onRenameItem, a press that ends the rename). It is wired in configureBlockRegion beside this PR's wireItems additions (liftHost, sectionDropTarget, onSectionDrop) and does not conflict: item drags in doc regions still take the list path, and only app section headers take the new cross-band path. #33016, now on base, places defaultRegion: "bottom" sections into .bottom, and this PR is what draws them.

Follow-ups:

  • [follow-up] Upgrade visibility: app sections already stored in .bottom were hidden before and will now appear (first-party agents and coderouter declare defaultRegion: "bottom"). This is intended, but it is a visible change on upgrade and the PR body should say so.
  • [follow-up] Nothing shifting after first paint was not shown: an app view that mounts asynchronously can change the bottom band's height after the first frame, which pushes the footer and list edge. The top band already behaves this way. A DEV capture of a bottom app panel's first frame and settled frame would settle it, along with the interactive drag between bands, which was not run.

@teamleaderleo
teamleaderleo merged commit 5dee1ab into feat-cmux-next Nov 3, 2026
217 of 225 checks passed
@teamleaderleo
teamleaderleo deleted the lane/app-slot/sidebar-bottom branch November 3, 2026 10:11

This branch was previously deployed

1 inactive deployment
ci-routing-agent — f558b7e0 Deployed Nov 3, 2026 by teamleaderleo via wait for same-key tree publisher #105149
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant