Skip to content

cmux NEXT: add palette and context-menu UI inspector entry points - #24707

Merged
teamleaderleo merged 4 commits into
feat-cmux-nextfrom
ui-pointer-entrypoints
Oct 24, 2026
Merged

teamleaderleo merged 4 commits into
feat-cmux-nextfrom
ui-pointer-entrypoints

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Leo asked: "uh the pointer inspector we want that to basically be able to come on via right click... or command palette...."

This keeps the cmux NEXT UI pointer inspector behind the existing Labs tunable and off by default, while adding the two requested entry points:

  • Inspect UI Element is searchable in the command palette only when Labs is enabled; the existing agent toggle-ui-pointer CLI/MCP action remains unbound by default and keeps its toggle behavior.
  • Native app menus expose Inspect Element on tabs, panes, sidebar rows/sections, workspace rows, the new-tab control and the window background. It records the right-click point, starts the picker, and highlights that native or app-owned webview element immediately.
  • Agent chat, composer and new-tab webviews add the same Labs-gated Inspect Element row to their native context menu. The existing isolated-world picker remains responsible for the DOM/component/source/style payload.

The generated action surface exports stay in sync with the new menu placements. No default shortcut is added.

Validation: git diff --check; fleet compile-check attempted on the exact head (base reds remain in AgentPaneRequest+SafeDescription.swift and AgentPaneFilePut.swift; the changed palette and context-menu files compile before those inherited failures).

Screenshots will be attached from the managed capture fleet after the PR build.

Agent session: big-red


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


Summary by cubic

Adds palette and right-click entry points for the cmux NEXT UI pointer inspector, which remains behind the Labs tunable and off by default.

  • Inspect UI Element (renamed from "Point at cmux UI") is searchable in the palette only when the Labs tunable is on.
  • Native context menus now offer Inspect Element on tabs, panes, sidebar rows and sections, workspace rows, the new-tab control, and the window background; agent chat and composer webviews get the same item, which hides WebKit's browser inspector while enabled.
  • Context-menu invocations start the picker at the click point and highlight that element immediately. Palette, keyboard, and CLI invocations keep the existing toggle behavior.

Written for commit 312a77b. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 312a77b: 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=pr24707 -f ref=ui-pointer-entrypoints -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base e540d21; does not block

Tour of 312a77b074 (run): no media. The tour job failed before the tour ran (build or setup); the run log has the output.

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

blacksmith-sh Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Found 14 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpk_s9i54m/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpo_7ons2t/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
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
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')/
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')
View Logs
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_every_routed_input_triggers_the_workflow (main.PullRequestTiers.test_every_rou
ted_input_triggers_the_workflow) (path='.git/config')
View Logs

...and 4 more test failures. View all on Blacksmith: run 40053851262, run 40053851348

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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

@teamleaderleo
teamleaderleo merged commit 0bf7675 into feat-cmux-next Oct 24, 2026
129 of 150 checks passed
@teamleaderleo
teamleaderleo deleted the ui-pointer-entrypoints branch October 24, 2026 02:34
@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40054969923 at 7f8d0ed failed: cmux-next Release compile (Xcode 26).
Those jobs last passed at 10e1780. This pull request is one of 1 merged since: #24707.
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 24, 2026 •

Copy link
Copy Markdown
Contributor

teamleaderleo added a commit that referenced this pull request Oct 25, 2026
…ent under Options) (#24995)

* fix(next): sidebar section menu keeps 12 top-level rows (Inspect Element under Options)

The Labs UI inspector placement from #24707 made the sidebar section's
right-click menu 13 top-level rows, failing everyMenuKeepsAShortTopLevel
in the generated-files job before its regeneration step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a1700d-4a8a-7153-9cc3-2e1d2c48cc89&host=cosmic-gray

* chore(next): regenerate action exports (sidebar section Inspect Element under Options)

From CI's regeneration (cmux-next PR autofix run 40145360049, action-exports artifact).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a1700d-4a8a-7153-9cc3-2e1d2c48cc89&host=cosmic-gray

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 25, 2026
Each fails on the bare tip (full run at 2ee04b0; again alone at e869761, step 280e825d1b47e01c8df4b8ff).
Stale premises (the test follows the change's intent):
- IconFamilyAttributeTests: 5e7966c made folding finished thoughts the default; the test passes that default.
- ContextMenuStandardTests: #24707 (0bf7675) put Inspect Element in the tab bar's + menu.
- AcpmuxRefusedDaemonTests: #24795 (c7daff2) rewrote the refusal copy (no socket path; Quit that app; the
  holder-less refusal reconnects on its own) and left its own test on the old copy.
- AgentPaneTranscriptStepTests, AgentPageProviderEventsTests: since #24617 (4abd404) a new subscription's
  events go out a main-actor turn later; the tests wait for them (bounded by the suite time limit).
Real breaks (the code is fixed):
- ActionSurfaceParityTests: #24707 made the sidebar section menu 13 top-level rows (the limit is 12); its Inspect
  Element goes in the Options folder.
- TabSelectionActionsTests: Save and Close Tab (#23176) had a target reason for a menu row only, so the palette's run
  on a terminal tab was enabled and then refused; the reason now covers the untargeted run too.
- SettingsSchemaExportTests: #24631 (78d7472) added four New Tab widget settings (clock, timer, warm greeting,
  quote) without strings or an agent policy: their 8 strings in all 21 locales, and the agent may set them.
- NativeTooltipGuardTests: Mac Screen (ffc998b, 0372726) and No Color (c3bd2b2) drew raw tool tips: the
  No Color swatch uses themedToolTip, the toolbar's own helper is renamed setThemedHelp (it already set
  themedToolTip), the menu bar status item is marked native.
- WorkspaceNameSourceTests: #24627 (f8c226e) counted any renamed '~' as unnamed (nameRevision > 0); only the
  automatic namer's '~' is.
- AgentPaneMediaNoAutoActionTests: #24619 (5ff4b0c) resolved every image.load through the raster-only image
  roots, so a chat's own SVG or PDF was refused; non-raster files resolve in the chat's roots again.
- BrowserProfileLinkMenuTests: e01bdd4 gave menu symbols their natural size; a profile's symbol is centered in
  the 16 pt square again, so names line up.
- PhoneProcessRunner (passed alone, failed in the full run): a captured run ended before its stderr was read; it now
  waits for the end of stderr too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 25, 2026
Each fails on the bare tip (full run at 2ee04b0; again alone at e869761, step 280e825d1b47e01c8df4b8ff).
Stale premises (the test follows the change's intent):
- IconFamilyAttributeTests: 5e7966c made folding finished thoughts the default; the test passes that default.
- ContextMenuStandardTests: #24707 (0bf7675) put Inspect Element in the tab bar's + menu.
- AcpmuxRefusedDaemonTests: #24795 (c7daff2) rewrote the refusal copy (no socket path; Quit that app; the
  holder-less refusal reconnects on its own) and left its own test on the old copy.
- AgentPaneTranscriptStepTests, AgentPageProviderEventsTests: since #24617 (4abd404) a new subscription's
  events go out a main-actor turn later; the tests wait for them (bounded by the suite time limit).
Real breaks (the code is fixed):
- ActionSurfaceParityTests: #24707 made the sidebar section menu 13 top-level rows (the limit is 12); its Inspect
  Element goes in the Options folder.
- TabSelectionActionsTests: Save and Close Tab (#23176) had a target reason for a menu row only, so the palette's run
  on a terminal tab was enabled and then refused; the reason now covers the untargeted run too.
- SettingsSchemaExportTests: #24631 (78d7472) added four New Tab widget settings (clock, timer, warm greeting,
  quote) without strings or an agent policy: their 8 strings in all 21 locales, and the agent may set them.
- NativeTooltipGuardTests: Mac Screen (ffc998b, 0372726) and No Color (c3bd2b2) drew raw tool tips: the
  No Color swatch uses themedToolTip, the toolbar's own helper is renamed setThemedHelp (it already set
  themedToolTip), the menu bar status item is marked native.
- WorkspaceNameSourceTests: #24627 (f8c226e) counted any renamed '~' as unnamed (nameRevision > 0); only the
  automatic namer's '~' is.
- AgentPaneMediaNoAutoActionTests: #24619 (5ff4b0c) resolved every image.load through the raster-only image
  roots, so a chat's own SVG or PDF was refused; non-raster files resolve in the chat's roots again.
- BrowserProfileLinkMenuTests: e01bdd4 gave menu symbols their natural size; a profile's symbol is centered in
  the 16 pt square again, so names line up.
- PhoneProcessRunner (passed alone, failed in the full run): a captured run ended before its stderr was read; it now
  waits for the end of stderr too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 27, 2026
…e + menu expectation (#25854)

#24707 placed Inspect Element (the UI pointer inspector) in the tab bar's + menu
behind Debug Settings' UI pointer inspector (off by default), but left
newTabMenuListsTheKindsFirst reading the catalog without the new row, so the
cmux-next swift tests went red. The catalog test now expects the gated row last
in its own group, and a new app test checks the real gate: off by default the
row is left out, on it comes back last after a separator.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-cc8bff1c3ddb4ec353c5

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
Red commit. Inspect Element (the UI pointer inspector, #24707) reaches native
AppKit/SwiftUI UI today:
- the catalog places it on the tab, pane, new-tab, workspace row, sidebar
  item/section and window background menus (InspectElementScopeTests);
- while the picker runs, each mouse move over a native view hit-tests the
  window and redraws a highlight overlay, and a click on a native view is
  swallowed to select it (InspectElementNativeCostTests, which also prints
  INSPECT-BENCH us/move).
The only source change is a seam: handle(_:window:point:) takes the window and
point the monitor already computed, so the test can drive it.
lawrencecchen added a commit that referenced this pull request Nov 3, 2026
Inspect Element (the UI pointer inspector, #24707) now inspects only the
HTML/React pages the app hosts (the agent chat). Native AppKit/SwiftUI UI is
never inspectable and pays nothing:
- the catalog places it only on the agent chat page's menu; the tab, pane,
  new-tab, workspace row, sidebar item/section and window background menus no
  longer offer it;
- no app-wide right-click monitor: the agent page records where its own menu
  opened (AgentPaneView.lastContextMenu) and the menu's notification names the
  page; before, the monitor ran for every right-click in the app once the
  inspector was first used;
- while the picker runs, an event over a native view returns untouched: no
  window hit-test, no highlight overlay per mouse move, no swallowed click,
  no window capture of the native view (selectNative and its view registry
  are gone).
Tests: InspectElementScopeTests, InspectElementNativeCostTests (red in the
parent commit), PointerInspectorMenuGateTests now checks the agent chat menu.

This branch was previously deployed

2 inactive deployments
ci-routing-agent — 312a77b0 Deployed Oct 24, 2026 by teamleaderleo via namespace autofix #2260
cmux-tui-merge-tree — 312a77b0 Deployed Oct 24, 2026 by teamleaderleo via publish the merge tree #5441
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