Skip to content

feat(next): unify composer project and environment menus - #26636

Closed
teamleaderleo wants to merge 58 commits into
feat-cmux-nextfrom
lane/picker-composer-menus
Closed

teamleaderleo wants to merge 58 commits into
feat-cmux-nextfrom
lane/picker-composer-menus

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Composer project and environment menus

Leo asked:

For these left two dropdowns, we want to make it not cover the, you know, not open upwards, right? Like if you see the other dropdowns, you'll note that they open downwards, aka away from the chat. They don't hide the chat. Also, I think the design of this dropdown, these two dropdowns, are not very attractive, not very appealing. When it comes to these things, I don't know why the icons are still kind of just busted. Like why are there so many default icons? I mean, where did even this come from? I was complaining to you earlier about all this stuff, right? So anyway, like, I mean, all this, I feel like it's just not cohesive. It's not designed very well. There's no sort of sense of structure, of beauty, of whatever. And it also doesn't function that well either.

Changed

  • Both project and environment menus use the shared location placement rule: open downward when the full menu fits and flip upward only when below has less room. The side stays fixed while filtering.
  • Project rows use real repository/avatar marks where available, otherwise a quiet monogram without a repeated folder tile. Worktrees group under their repository; structural scratch paths stay out of the initial list but remain searchable and selected scratch folders remain visible.
  • Environment rows show laptop, SSH terminal/server, or cloud glyphs, with current first, shared section headers, search insets, secondary status and right-side selection columns.
  • Search and item rows share the same row height and inset, while Project picker: pin actions beneath search and keep scrollbars inside menus #26536's pinned actions, keyboard collection, and scrollbar behavior remain intact. This branch carries the open Project picker: pin actions beneath search and keep scrollbars inside menus #26536 dependency; fix(composer): align search fields with menu rows #26589 is landed in the base at dfdfc55. Model-picker behavior is unchanged.
  • Added gallery states for three, eight, and fifteen projects, plus three design variants: aligned columns (selected), airy rows, and quiet icons. The aligned-column variant is selected because it keeps primary names, secondary paths, status and checks readable without extra height; all variants remain available in the gallery. The selected shared-column layout is documented in design/composer-menus.md.

Changelog

Changed: composer project and environment dropdowns now open away from the chat and use aligned, readable rows with meaningful icons and searchable grouped projects.

Validation

  • bun run check (webviews): passed through design-token, layer, type-scale, motion, browser-lane, and protocol checks.
  • python3 scripts/cmux-next/prepush-gate.py: passed at f2152b21a3bec2d577a80e0bcf166356910512a8 after rebasing onto dfdfc552.
  • Focused placement and project geometry tests pass in cmux-ci: run 40631137657, 4 tests / 10 assertions. The environment-picker run executes 36 tests with 33 passing; three existing host-fixture failures remain (New Worktree error copy and the my machines search expectation), while the preview-off machine grouping and placement tests pass. Local Bun tests could not load the checkout's missing @base-ui/utils/useIsoLayoutEffect dependency.
  • Base: dfdfc55265f (#26589 landed)
  • Head: f2152b21a3bec2d577a80e0bcf166356910512a8
  • Final focused cmux-ci: run 40640335630, 40 tests / 114 assertions, typecheck clean across 2,903 files.
  • Exact-head lint: run 40640676343, 0 warnings and 0 errors across 2,903 files.

Gallery: agent-pane.composer-context/folder-menu, agent-pane.composer-context/environment-picker, agent-pane.project-chooser/variant-aligned-columns, agent-pane.project-chooser/variant-airy-rows, agent-pane.project-chooser/variant-quiet-icons, agent-pane.project-chooser/downward-3, agent-pane.project-chooser/downward-15

Before / after captures

Synthetic light/dark gallery capture is queued through the gallery advisory workflow for the listed project/environment states. No private Leo screenshots are included here.

Agent session: agent session

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 49a4c06: 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=pr26636 -f ref=lane/picker-composer-menus -f platform=macos -f backend_mode=local

Pending: CI is running on 6cffd06fef; the result below was for f2152b21a3 and no longer applies.

Last result: Probably yours: composer-bottom-space.test.ts fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): agent-pane-dock-gutters.test.ts, agent-pane-dock-gutters.test.ts, agent-pane-queue-steer.test.ts and 4 more.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); it is rewritten when this head's CI completes.

red: web / Web status; base red: the same failure on the base 87befc0; does not block
red: web / react-apps-check; base red: the same failure on the base 87befc0; does not block
red: web / react-apps-check (1); NEW: step Fail on the gate checks (+12 more) passes on the base 87befc0; do not merge until green; see lane-rules

Stale: these images are of eb5d51d; the head is now 49a4c06 and a new capture is running.

Gallery before/after for eb5d51d: 7 states rendered, 14 images differ (picked by the Gallery: line in the PR body). Images are in the run's artifact, not on this public PR.

gh run download 40653558502 -R manaflow-ai/cmux -n gallery-advisory-26636-eb5d51ddf0e58164c2f2fb1bfb4972d226738d06 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.composer-context/folder-menu Apple System Colors Light changed 68.8% pr-body
agent-pane.composer-context/folder-menu Apple System Colors changed 68.6% pr-body
agent-pane.composer-context/environment-picker Apple System Colors Light changed 69.1% pr-body
agent-pane.composer-context/environment-picker Apple System Colors changed 68.8% pr-body
agent-pane.project-chooser/variant-aligned-columns Apple System Colors Light new 0% pr-body
agent-pane.project-chooser/variant-aligned-columns Apple System Colors new 0% pr-body
agent-pane.project-chooser/variant-airy-rows Apple System Colors Light new 0% pr-body
agent-pane.project-chooser/variant-airy-rows Apple System Colors new 0% pr-body
agent-pane.project-chooser/variant-quiet-icons Apple System Colors Light new 0% pr-body
agent-pane.project-chooser/variant-quiet-icons Apple System Colors new 0% pr-body
agent-pane.project-chooser/downward-3 Apple System Colors Light new 0% pr-body
agent-pane.project-chooser/downward-3 Apple System Colors new 0% pr-body
agent-pane.project-chooser/downward-15 Apple System Colors Light new 0% pr-body
agent-pane.project-chooser/downward-15 Apple System Colors new 0% pr-body

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 28, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-v3dmvx created for this PR by the cmux coordinator.

@cursor

cursor Bot commented Oct 28, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

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

@blacksmith-sh

This comment has been minimized.

@blacksmith-sh

blacksmith-sh Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Found 72 test failures on Blacksmith runners:

Failures

Test View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs
---/--- View Logs

...and 62 more test failures. View all on Blacksmith: run 40654718864, run 40654718835

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

@cursor

cursor Bot commented Oct 28, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

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

@cursor

cursor Bot commented Oct 28, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): BLOCK at 6cffd06

  • [P2] webviews/test/composer-location-strip.test.ts:569,580 — Both new tests locate .ui-combobox-pinned button, but Combobox.tsx:214 explicitly renders pinned items as <div> elements. Neither locator can match, so both browser tests time out. Update the selectors and focus assertions to match the rendered controls; the asserted data-press-pick attribute is also absent.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 15 h, and no lane holds a lease on it. The orphan sweep could not merge feat-cmux-next in: conflicts in scripts/cmux-next/type-scale-baseline.tsv, webviews/src/agent-session/acpmux/ComposerContext.gallery.tsx, webviews/src/agent-session/acpmux/ProjectChooser.gallery.tsx, webviews/src/agent-session/acpmux/ProjectChooser.tsx, webviews/src/agent-session/acpmux/composerLocation.css, webviews/src/agent-session/acpmux/styles.css, webviews/src/ui/Combobox.tsx, webviews/test/composer-location-strip.test.ts and 2 more. Listed for a lane to resolve.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Closing as superseded by #26945, which carries this PR's commits rebased onto current base (its body: "Follow-up replacement for #26636"). The open review findings continue there.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 6cffd06f Deployed Oct 28, 2026 by teamleaderleo via wait for same-key tree publisher #70737
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