Skip to content

feat(composer): add shared searchable plus palette surface - #26843

Merged
teamleaderleo merged 12 commits into
feat-cmux-nextfrom
lane/nx-plus-palette-component
Oct 29, 2026
Merged

teamleaderleo merged 12 commits into
feat-cmux-nextfrom
lane/nx-plus-palette-component

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-10-28: “likewise, the chatgpt desktop app, let's do their + symbol's capabiliities for our composer. we want to be having more command palette related capabilities and stff to be able to to be surfaced”.

Adds the shared searchable PaletteMenu component for Tools, Apps, Sessions, and Tabs, with localized catalog labels, keyboard navigation, IME-safe search editing, and native-catalog dispatch. Rejected host actions keep the menu open with an error; only primary mouse presses open or select actions.

Filtering an above-anchored palette previously shrank the menu and moved the search field. The menu now retains its opening height during search, including clearing and zero-result queries, while the existing viewport maximum still constrains it. Reopening measures the current content again. This adds no timers, observers, animations, or default changes.

This source prerequisite follows #26566. #26616 owns production mounting, followed by #26859 and #27049. Its exported PaletteMenu, PaletteSection, PaletteChoice, paletteSections, and native catalog contract are unchanged. #27144 migrates existing composer menu consumers to native popups; it does not currently replace this shared source or catalog contract. That migration must preserve these semantics when integrating the dependent stack.

Reference: ChatGPT desktop + menu, Plugins/Apps/Sites, retaining cmux colors, glass and shared popup behavior. Existing balanced, tools and sessions gallery alternatives remain available.

Before / after

Actual component captures from the same Chromium gallery harness, 520×560 CSS pixels, device scale 2. Before is the regression commit fd3a175fd8c0eb355b14e92d230948b6dfb16f38; after is e15cf5ba631b953981acc3bff3571a708fec6823. Both show the same step: type “browser”.

Theme Before After
Dark before dark after dark
Light before light after light

The shared component is new relative to feat-cmux-next; these compare its pre-fix and fixed implementations. Earlier actual Chat and New Tab host captures were byte-identical between their base and head, consistent with production mounting belonging to #26616.

Validation

Candidate head: a81736b913391d7464fdd464ccad7152b824da9a. Current comparison base: 89b99d5b2b8309bc92461e74b36cf0bf40650466. The normal base merge preserves palette source and focused tests byte-for-byte; the catalog now adds only the two 21-locale section labels, preserving every existing key and base formatting.

  • Independent Codex Astra HIGH/FAST review: SHIP on the complete own diff at a81736b913391d7464fdd464ccad7152b824da9a. Primary integration review at the same head found no correctness issues.
  • Hosted head checks: all four gallery-health shards and all four React app checks pass. The static SwiftUI guard reports only the existing imports in HomeChatColorsPanel.swift and HomeChatColorsView.swift. Exact base/head comparison 40868975675 reproduces both named errors with byte-identical output and exit 1 on base 89b99d5b2b8309bc92461e74b36cf0bf40650466 and the final head; the comparison itself passes. No other static guard failure is attributed to base.
  • Final history-complete gate 40864707479: pre-push gate reports no new violations; web lint passes. The checkout was explicitly unshallowed before judging the full own diff against 89b99d5b2b8309bc92461e74b36cf0bf40650466.
  • Merged-tree run 40863351089: full web check passes (format, lint, 3025-file typecheck, protocol); 16 focused tests pass with 57 assertions. Snapshot b40bd2379d222b5d6b140d750723569d447c8f91 has tree 9d6533c6438e3241076a351d4cc75bdedc5b45f3, exactly matching the final merge commit.
  • Historical run 40856150370: full cd webviews && bun run check passes, including formatting, lint, 3013-file typecheck and protocol generation. Focused PaletteMenu, IME, catalog and scrolling tests: 16 pass, 57 assertions. The appended pre-push invocation failed because the runner checkout lacked history; history-complete run 40857804619 subsequently passed the gate and web lint at that same historical tree.
  • Paired regression/capture run 40856069985: the keyboard play's explicit search geometry assertion fails before the fix in both themes; all eight palette variant/theme cases pass after, with zero CLS. The same scripts/gallery-matrix/runner.ts command runs both revisions. The overall driver reports failure on the separate short-pane draft CLS check, which also fails on the actual base; its measured reduction is below, with no raised threshold.
  • Per-entry base comparison run 40856493643: old model-picker#many-harnesses timeout now passes on both revisions; composer-context#computer-search reaches its state on both, with identical 0.010718 CLS. empty-state#search and narrow#model-menu retain the same 5000 ms wait failure on both. streaming-text#jump-during-stream takes 17304 ms on base versus 17321 ms on head, with identical CLS. These account for the three old gallery job reds individually.

At the pinned merge attempt, CI run 40866778911 still has its base React comparison and test-duration reporting tail pending. All four head React checks and all four gallery-health shards have completed successfully; no required check is reported missing.

Observed / Not run

Build, lint, typecheck, tests and Chromium gallery runs executed remotely on Linux. The component uses synthetic catalog fixtures with real rendering and handlers. Native builds and end-to-end Chat/New Tab production integration were not run. Screenshot publishing used the repository media helper; its local OCR was unavailable and its hosted privacy workflow scans the uploaded media. The captures were visually inspected and contain only synthetic gallery content.

Performance

Metric Before After Delta Harness / run
Keyboard filter CLS, dark 0.166181 0 −100% Same paired Chromium gallery, 40856069985
Keyboard filter CLS, light 0.250289 0 −100% Same paired Chromium gallery, 40856069985
bottom-stack#short-520-long-draft ready time, dark 2724 ms 907 ms −1817 ms (−66.7%) Actual base versus head, same runner, 40856069985
bottom-stack#short-520-long-draft ready time, light 2729 ms 911 ms −1818 ms (−66.6%) Actual base versus head, same runner, 40856069985
Draft typing CLS, both themes 0.130233 0.014148 −89.1%; existing zero-budget finding remains Same draft geometry checks and runner, 40856069985

The long-draft fixture submits twelve lines as one trusted input action; it preserves geometry checks and removes repeated settle waits. The earlier 3706 ms observation is superseded by this current paired measurement.

Changelog

Added: Reusable searchable composer action palette for shared Tools, Apps, Sessions, and Tabs menus.

Agent session: agent session

@blacksmith-sh

blacksmith-sh Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Found 18 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmphgvggzne/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpqwldeidi/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
src/pages/settings/chiefLook.test.tsx/chiefLook.test.tsx View Logs
src/pages/settings/chiefLook.test.tsx/chiefLook.test.tsx View Logs
src/pages/settings/rowSummary.test.tsx/rowSummary.test.tsx View Logs
src/pages/settings/rowSummary.test.tsx/rowSummary.test.tsx View Logs

...and 8 more test failures. View all on Blacksmith

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

@cmux-bot

cmux-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

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

Review a81736b: 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=pr26843 -f ref=lane/nx-plus-palette-component -f platform=macos -f backend_mode=local

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards. This PR merged before its CI finished: fix forward on main.

CI failed on a81736b913 (run 40866778911 attempt 1): 2 code, 1 unknown.

Job Verdict Why
web / react-apps-base-check (1) code a web test failed
web / react-apps-base-check (3) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs chiefLook.test.tsx search renders Bubble Style in the Look card: failed (job)
  • seen on other PRs rowSummary.test.tsx no description line on any Settings page is over 60 characters, in any language: failed (job)
  • seen on other PRs rowSummary.test.tsx every schema summary fits 60 characters in every language: failed (job)
  • seen on other PRs transcript-fold-no-blank-space-browser.test.ts a long turn with notifications, bookkeeping and messages draws no blank space, folded or open: failed (job)
  • seen on other PRs transcript-gap-select-browser.test.ts chromium: RTL document gaps and both gutters preserve rtl line endpoints: failed (job)
  • seen on other PRs transcript-gap-select-browser.test.ts chromium: RTL document gaps and both gutters preserve ltr line endpoints: failed (job)
  • seen on other PRs transcript-gap-select-browser.test.ts webkit: RTL document gaps and both gutters preserve rtl line endpoints: failed (job)
  • seen on other PRs transcript-gap-select-browser.test.ts webkit: RTL document gaps and both gutters preserve ltr line endpoints: failed (job)
  • seen on other PRs markdown-table-obsidian.test.ts markdown tables (webkit) > a drag across cells selects text from the press to the pointer, not whole...: failed (job)
  • seen on other PRs queued-user-footer.test.ts an unread steer shows only queue controls; pointer Send now reaches its prompt and accepted delivery...: failed (job)
Matched log lines
web / react-apps-base-check (1): (fail) search renders Bubble Style in the Look card [3752.40ms]
web / react-apps-base-check (3): (fail) markdown tables (webkit) > a drag across cells selects text from the press to the pointer, not whole cells [669.48ms]

Not re-run automatically: web / react-apps-base-check (1), web / react-apps-base-check (3), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 89b99d5; does not block
red: web / Web status; base red: the same failure on the base 89b99d5; does not block
red: web / react-apps-base-check (1); no finished base run on 89b99d5 to compare; do not merge until green; see lane-rules
red: web / react-apps-base-check (3); no finished base run on 89b99d5 to compare; do not merge until green; see lane-rules
red: web / react-apps-check; base red: the same failure on the base 89b99d5; does not block

CI fast guards failed on db519f27d9 (https://github.com/manaflow-ai/cmux/actions/runs/40676645887). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

Gallery before/after for a81736b: 16 states rendered, 11 images differ, 1428 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 40867565543 -R manaflow-ai/cmux -n gallery-advisory-26843-a81736b913391d7464fdd464ccad7152b824da9a (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.add-project-panel/environment Apple System Colors Light unchanged 0% own styles.css
agent-pane.add-project-panel/environment Apple System Colors unchanged 0% own styles.css
agent-pane.add-project-panel/sources Apple System Colors Light unchanged 0% own styles.css
agent-pane.add-project-panel/sources Apple System Colors unchanged 0% own styles.css
agent-pane.add-project-panel/directory Apple System Colors Light unchanged 0% own styles.css
agent-pane.add-project-panel/directory Apple System Colors unchanged 0% own styles.css
agent-pane.add-project-panel/keyboard Apple System Colors Light unchanged 0% own styles.css
agent-pane.add-project-panel/keyboard Apple System Colors unchanged 0% own styles.css
agent-pane.bottom-stack/pr-queue Apple System Colors Light changed 0.917% own bottomStack.gallery.ts
agent-pane.bottom-stack/pr-queue Apple System Colors changed 0.0316% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-permission-queue Apple System Colors Light changed 0.0427% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-permission-queue Apple System Colors changed 0.0267% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-individual-queue Apple System Colors changed 0.0259% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-individual-queue Apple System Colors Light changed 0.009% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-then-permission Apple System Colors changed 0.0426% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-then-permission Apple System Colors Light changed 0.0093% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-then-individual Apple System Colors changed 0.0392% own bottomStack.gallery.ts
agent-pane.bottom-stack/trust-then-individual Apple System Colors Light changed 0.0118% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-permission-queue Apple System Colors changed 0% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-permission-queue Apple System Colors Light unchanged 0% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-individual-queue Apple System Colors Light unchanged 0% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-individual-queue Apple System Colors unchanged 0% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-individual-waiting Apple System Colors Light unchanged 0% own bottomStack.gallery.ts
agent-pane.bottom-stack/trusted-individual-waiting Apple System Colors unchanged 0% own bottomStack.gallery.ts
agent-pane.changes-file-menu/closed Apple System Colors Light unchanged 0% own styles.css
agent-pane.changes-file-menu/closed Apple System Colors unchanged 0% own styles.css
agent-pane.changes-file-menu/open Apple System Colors Light unchanged 0% own styles.css
agent-pane.changes-file-menu/open Apple System Colors unchanged 0% own styles.css
agent-pane.changes-file-menu/keyboard Apple System Colors Light unchanged 0% own styles.css
agent-pane.changes-file-menu/keyboard Apple System Colors unchanged 0% own styles.css
agent-pane.changes-git-actions/toolbar Apple System Colors Light unchanged 0% own styles.css
agent-pane.changes-git-actions/toolbar Apple System Colors unchanged 0% own styles.css

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

@teamleaderleo
teamleaderleo force-pushed the lane/nx-composer-plus-menu branch from 0a76f85 to 0f264b2 Compare October 28, 2026 12:47
Base automatically changed from lane/nx-composer-plus-menu to feat-cmux-next October 28, 2026 15:21
@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-j9y14s created for this PR by the cmux coordinator.

Keep Home/End selection in the search input; listbox navigation stays explicit. Require the caller to dispatch host catalog actions and retain the menu with the source error on rejection. Reuse translated labels and translate the remaining Tools/Apps section names.

Regression: three tests failed at ca9cfdc before the repair; all 13 focused tests (45 assertions) now pass. Web lint/typecheck and gallery build pass. Chromium search-editing assertions pass; opening still reproduces the separately owned shared-anchor CLS 0.01525829 at its unchanged strict-zero budget.
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo
teamleaderleo force-pushed the lane/nx-plus-palette-component branch from db519f2 to df873fa Compare October 28, 2026 20:46
The focused PaletteMenu IME and pointer suite first failed both middle/right trigger cases, then passed all 6 tests after the fix; the broader focused suite passes 16 tests with 57 assertions.

Agent-Session: https://cmux.com/deeplink/agent?id=aid-35156c7026767df4b97a
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (Codex gpt-6-astra high, priority service configured): SHIP at 11a5630

Independent reviewer inspected the complete eight-file diff against 3a7653b and the primary-button repair. No remaining concrete correctness findings. The earlier BLOCK at df873fa identified middle/right clicks opening the palette or executing native actions; 00b1923 committed the failing regressions and 11a5630 guards trigger and row dispatch. Focused verification: 16 tests, 57 assertions; web lint, prepush gate, and diff whitespace pass. The reviewer independently confirmed a clean checkout and diff whitespace; test results were author-supplied evidence.

Primary review: the rebase retains landed #26566 registry behavior and current shared anchor/scroll helpers. Diff remains component-only; it does not mount another production menu or alter model/harness/profile pickers. Native-catalog mounting belongs to #26616. Exact runtime model/effort/tier were requested through the collaboration API; the reviewer could not independently introspect them. Capture verification is tracked separately.

Reviewed head: 11a5630

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 28, 2026
@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

Review (Astra HIGH/FAST, exact head): SHIP.

Base: 3a7653b
Reviewed head: 82d88fe

The full nine-file diff was rechecked. PaletteMenu filtering, keyboard/IME handling, primary-button dispatch, async failures, popup behavior, registry mapping, tests, and galleries have no concrete correctness defect. The bottom-stack repair retains the geometry assertion and uses the existing trusted input path for the multiline draft. Model picker changes are absent. git diff --check is clean. Focused GCP2 verification separately passes: 16 tests / 57 assertions, bun check, web-lint, and prepush gate. Static review only; no browser run.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Paired gallery capture for 82d88fe4f1f8 (base 3a7653b054ed, the PR's base on feat-cmux-next)

How it ran: cmux-ci test --setup playwright on the build fleet's Linux pool. The Actions dispatch (run 40783069875) sat queued past 180 s, so it was cancelled and moved to fleet job 4eacba4315f9f2eb40323458 (cmux-ci log 4eacba4315f9f2eb40323458), which passed. That job checked out base and head at their exact SHAs, ran bun run gallery:build in each, and wrote the manifest with webviews/scripts/gallery/manifest.ts --frame component --themes pair. It rendered with scripts/gallery-matrix/runner.ts (Chromium, device scale 2) three times: base, head, and head again. scripts/gallery-matrix/pr.ts then compared the three runs. Every results.json row records the SHA it was rendered from, and each matches its stage. All stills went through scripts/ci/pr_media_privacy.py (tesseract OCR plus the private-terms list) before upload.

pr.ts summary: No state changed · 4 new states · 1 play check failed (changed 0, unchanged 4, broken 0, nondeterministic 0).

Chat composer +, agent-pane.composer#add-menu: unchanged (base and head PNGs are byte-identical, and the head repeat matches)

base 3a7653b0 head 82d88fe4
Dark chat base dark chat head dark
Light chat base light chat head light

New Tab +, agent-pane.new-tab#attachment-menu: unchanged (base and head PNGs are byte-identical, and the head repeat matches)

base 3a7653b0 head 82d88fe4
Dark newtab base dark newtab head dark
Light newtab base light newtab head light

Both host + menus render the same at base and head. That fits the PR body: this PR adds the component and #26616 mounts it in Chat and New Tab.

New entry agent-pane.composer-plus-menu (head only, no base)

variant Dark Light play
balanced balanced dark balanced light pass, CLS 0, no long frames
keyboard keyboard dark keyboard light fail: step 2 type "browser": layout shift 0.1662 (limit 0)

The keyboard play check fails on head itself, in both themes and in both head runs. The entry declares layoutShiftMax: 0, but typing "browser" filters the list down to one row. The menu is anchored to its bottom edge, so it shrinks toward the + button, and the search field moves from the top of the old menu to just above +. Compare the balanced and keyboard stills. This is the PR's own red, not a base red. To fix it, either keep the field still while filtering (anchor the menu's top edge, or hold its height while a query is typed), or declare that shift on the entry with a reason. The other tools and sessions variants were not part of this run.

Image sha256 (first 12): chat dark 511ef9f36400, chat light f5a62e6ac73a, New Tab dark 238b05778eb8, New Tab light ff7e3e6a630e (the same at base, head and head repeat), balanced 8c8b4c2dbc9e/cbf69cfe2b0e, keyboard b3d0f4556cb7/43816b78228c.

@teamleaderleo
teamleaderleo marked this pull request as ready for review October 29, 2026 11:43
@teamleaderleo
teamleaderleo merged commit 5f33ee4 into feat-cmux-next Oct 29, 2026
217 of 220 checks passed
@teamleaderleo
teamleaderleo deleted the lane/nx-plus-palette-component branch October 29, 2026 12:03
@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40872205512 at eef18f1 failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 20f21d4. This pull request is one of 5 merged since: #27385, #27403, #26843, #27312, #27407.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40870120427 at 5f33ee4 failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 20f21d4. This pull request is one of 3 merged since: #27385, #27403, #26843.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40870378984 at 90e1666 failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 20f21d4. This pull request is one of 4 merged since: #27385, #27403, #26843, #27312.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40873692330 at 52fea2d failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 20f21d4. This pull request is one of 5 merged since: #27385, #27403, #26843, #27312, #27407.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

This branch had an error being deployed

1 failed (outdated) and 2 inactive (1 outdated) deployments
ci-routing-agent — a81736b9 Deployed Oct 29, 2026 by teamleaderleo via cmux-tui tree preflight #76628
sentry-dsyms — db519f27 Deployed Oct 28, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #71477
artifacts — db519f27 Deployed Oct 28, 2026 by teamleaderleo via publish to R2 #71477
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