Repository navigation
cmux NEXT composer: shared searchable destinations - #25316
Conversation
|
Bead |
|
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)
Gallery before/after for
States
Pick other states with a red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 900234f to compare; do not merge until green; see lane-rules Tour of |
|
Found 73 test failures on Blacksmith runners: Failures
...and 63 more test failures. View all on Blacksmith
|
|
|
|
Owned by nx-composer on big-red |
Leo, 2026-10-26: "in many many places we need that search capability. that combobox. for machines/environments, for models, etc. wherever you think it’d be relevant. but basically most things in the composer area... not permission sessings probably since it’s smol" Classic machines now use the shared Combobox already used by folder and environment pickers; projects reuse it instead of hand-rolling keyboard and listbox behavior. Existing model and harness name search stays in the model picker. Only listed machines can be submitted. Shared completion gives opaque remote project keys readable text without losing the selected machine. Static targeted formatter and lint: 0 warnings/errors. Behavioral red/green and gallery proof are prepared for managed CI; no tests or builds ran on the lane VM. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Fix independent Astra review findings: completed search fields release Tab to their adjacent actions and keep the popover open on internal focus changes. aria-current identifies the committed project, private-folder and machine choice separately from the highlighted suggestion. Added regressions first in f83daf4; hosted red/green remains pending. Targeted formatter/lint passes; no tests/builds on VM. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
The shared LocationPicker keeps absolute-path completion for folders; only machine IDs complete to their display labels. Addresses independent Astra P2 with a regression committed first. Targeted formatter/lint0warnings/errors; runtime validation prepared for managed CI. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Preserve full folder paths in accessible option labels, and share the committed-row predicate between aria-current and the visible checkmark. An unmatched Use path command never inherits the private-folder check. Red regressions precede the fix; targeted static lint/format passes, managed runtime remains pending. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Regression first for existing mousedown menu selection behavior. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Mouse press rows still pick directly, matching the existing composer menu behavior. Tab completion keeps the opaque row key for Enter after the readable completion text filters the list; typed changes clear stale identity. This fixes the hosted focused and classic New Tab regressions. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Regression first: primary mouse presses select once; right and middle presses, disabled rows, and synthetic keyboard clicks follow their own paths. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Primary left presses select once; right and middle buttons and disabled rows do not invoke onSubmit. Synthetic or keyboard clicks still submit when no physical press already activated the row. Addresses the independent review finding with red-first coverage. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Regression first: stale physical presses still permit keyboard activation, and Tab skips disabled destinations before Enter. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Validate completed keys against current enabled suggestions, choose enabled rows for Tab completion, and suppress only the real mouse follow-up click. An incomplete press no longer swallows keyboard activation. This addresses the independent Astra findings with red-first coverage. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Fix the generic Combobox test fixture: provide the labels queried by the test, and count both the standalone physical press and later keyboard click as independent submissions. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Supply itemLabel for the labels queried by the generic disabled/keyboard test. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
Gallery regression first: project search fills the popover width and retains the composer field style instead of the native short input. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
The shared search field keeps the old project chooser appearance through a scoped class, since its former wrapper selector no longer applies. It fills the menu width without a native input border. Gallery checks were committed first. Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a175ec-d023-74e1-a705-c0cab51d4796&host=big-red
817d0a8 to
5f28490
Compare
|
Independent Codex gpt-6-astra xhigh review: SHIP at exact rebased head Primary verification: prepush gate and diff check pass against current The Mac Agent session: agent session |
|
Shipped in:
|
#25316 made the composer's folder and computer pickers shared searchable destinations: a Popover with a search field, not a Menu. The pointer-close test waited for a .ui-menu that never opens, so it timed out; it now waits for the location popover and checks the same no-ring and focus outcomes.
…ooter row #26551 put the folder strip in the footer whenever the plain footer and the Claude look were on, but the footer row only renders with chips. A New Tab without chips lost its project strip (new-tab-minimal-default, new-tab-stage-layout). Tests: new-tab-ask-model gives the global scope the ResizeObserver the always-mounted footer row now uses; new-tab-minimal-default keeps the headline slot that new-tab-headline-place requires, and matches the folder option label of #25316.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
The classic machine picker now filters destinations, and project selection uses the shared Combobox already used by folders and environments. Typing filters rows; Enter picks; Tab completes readable text and then reaches connect/browse actions. Remote projects retain their machine identity even when paths match.
Leo, 2026-10-26: “in many many places we need that search capability. that combobox. for machines/environments, for models, etc. wherever you think it'd be relevant. but basically most things in the composer area... not permission sessings probably since it's smol”
The model picker already searches models and harness names. This fills the classic machine gap and removes the project chooser's duplicate keyboard/listbox implementation. Committed choices use aria-current separately from the highlighted suggestion. Permission menus retain their small menu.
Replaces #25277.
Reference matched: Claude desktop
apps/claude/live/environment-picker.png: an immediately available filter, compact destination rows, and separate connect actions. Existing cmux glass and colors are retained. All captures below come from gallery fixtures.Validation
Rebased onto current
feat-cmux-nextat7246ee32b673ebe586fed6f1507b56190a24fc98; reviewed exact head is5f284903e29dec68ac2aebf7116507278eac17a4(tree34f731743605f250e6a8127b67005e8e648f0aca). This PR is webview-only, so its before/after evidence is from the real Chromium/WebKit gallery captures below; the Mac builder capture route applies to native app captures and is not needed for these changed files.Exact head:
5f284903e29dec68ac2aebf7116507278eac17a4; source tree:34f731743605f250e6a8127b67005e8e648f0aca.Managed proof 40268328247 completed successfully on Blacksmith: 124 tests across eight focused/neighboring picker suites, targeted formatting/lint, type checking, five behavioral red states, and a visual regression red state. The 13 focused tests cover machine filtering, opaque remote project identity after Tab, unchanged current/private-folder selection, keyboard access to connect actions, duplicate folder labels, and primary/right/middle/disabled/synthetic click behavior.
The visual test fails before the scoped field styling and passes afterward: the search field fills the menu and has no native input border. The run produced 24 Chromium/WebKit light/dark captures tied to the base and final source trees. Filtering changes list content: only the two typing steps permit a bounded layout-shift score of 0.002 (observed maximum 0.001876); all other layout/anchor/popup error checks retain their zero limit.
Independent Codex gpt-6-astra xhigh review: SHIP at this exact head, session
01a17667-d774-7072-8766-8959946276c9. Review was static; runtime proof is the hosted run above. The source worktree stayed clean and unchanged throughout proof. No tests or builds ran on Big Red or the GCP lane VM.Whole-repository
bun run checkreports the same four warnings and zero errors on untouched base and final head; normalized diagnostics match (0ec142a8f596f0fd4160abca2b6fca1ddf17d3d983d41339961e582d01becd12). Targeted changed-file lint has zero warnings/errors. Localization uses existing keys only; localize-changes found zero new/changed keys. Strict catalog validation reports unchanged repository debt.Before / after
Changelog
Added: Searchable machine selection and shared project completion in the composer.
Agent session: big-red