Repository navigation
cmux NEXT: add palette and context-menu UI inspector entry points - #24707
Conversation
|
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)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base e540d21; does not block Tour of |
|
Found 14 test failures on Blacksmith runners: Failures
...and 4 more test failures. View all on Blacksmith: run 40053851262, run 40053851348
|
|
Bead |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40054969923 at 7f8d0ed failed: cmux-next Release compile (Xcode 26). |
|
Shipped in:
|
…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>
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>
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>
…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>
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.
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.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
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 Elementis searchable in the command palette only when Labs is enabled; the existingagent toggle-ui-pointerCLI/MCP action remains unbound by default and keeps its toggle behavior.Inspect Elementon 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.Inspect Elementrow 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 inAgentPaneRequest+SafeDescription.swiftandAgentPaneFilePut.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
Need help on this PR? Tag
@codesmith-botwith 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.Inspect Elementon 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.Written for commit 312a77b. Summary will update on new commits.