Repository navigation
Sidebar: a workspace hover preview lists its tabs, each one click away (carry #28139) - #28897
Conversation
Leo, 2026-10-24: "default just only show the inner tabs on hover and be able to go to and focus them when hovering ovre workspaces." Reuse the current tab state and folder projection, pinned-row lookup, and Lawrence's one-pixel sidebar hover placement. Preserve the richer card behind an off-default setting. Sidebar-Look: default just only show the inner tabs on hover and be able to go to and focus them when hovering ovre workspaces. Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Fleet settings export job 7d423c7c3850d3db326334ac at 64efd77 passed all 9 export tests. Includes the regenerated default snapshot requested for the hover setting; no generated files were hand-edited. Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Use the paired theme so the capture driver picks the matching light and dark palette instead of recording the last light step twice. Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
The keyboard fixture now establishes a real window, target hit and matching key event before checking consumption. The interaction tour focuses its created workspace before adding another tab. Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
The current default dwell is 1300 ms; give it two seconds before targeting the interactive card. Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Bind release activation to the tab ID captured on mouse-down and clear that identity when a reusable row is configured for new content. Add a regression for press, replacement and release. Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-585d2523f6018bb56480
Carry the inner-tab interaction from #24785, preserving workspace status, prompts, timeline and custom content. Compare three combined-card variants and bound overflow within the tab list. Sidebar-Look: Leo: "and also why dont we have the rex thing yet of being abel to access the individual tabs in a workspace on its hover preview the best of both worlds thing" Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: Leo: "and also why dont we have the rex thing yet of being abel to access the individual tabs in a workspace on its hover preview the best of both worlds thing" Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: Rex-style tabs first, details behind one click Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-9d89b5685bb17a5e172b
…-hover-tabs # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextDesign/HoverCards/HoverCardCoordinator.swift # Packages/macOS/CmuxNext/Sources/CmuxNextDesign/HoverCards/HoverCardSource.swift # plans/cmux-next/sidebar-owner.md
Bugbot needs on-demand usage enabledBugbot 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. |
|
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)
Default changesThis pull request changes 3 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
…bar owner Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
|
Review (codex, router-review): SHIP at a0430b2 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 2. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at a0430b2 Visual verdict: Both supplied after screenshots pass in light and dark; no visible clipping or excessive controls.
AppKit tests could not run on this Linux host. The changed localization and tour JSON files parse successfully. Follow-ups:
|
Its key pass-through test skips without a window server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
|
Review (codex gpt-6-astra high, router-review): BLOCK at 713358d BLOCK at 713358d Visual verdict: after images show the intended compact tabs-first card; no visual blocker.
|
…re never monitored The card's event monitor matches presses only (now named monitoredEvents), so an accepted press's mouse-up goes to the control's own tracking loop and cannot dismiss the card. Pins that against the review finding at 713358d. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
|
On the BLOCK at 713358d (#28897 (comment)): the card's event monitor never sees a mouse-up. Its mask is f86a6ae names that mask |
|
Review (codex, router-review): SHIP at f86a6ae Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 2. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at f86a6ae Visual verdict: Both light and dark after screenshots are readable, with no visible clipping or redundant controls.
AppKit tests could not run in this Linux box. The changed JSON files parse successfully. Follow-ups:
|
…rs its highlight or its card (#37201) * test(sidebar): moving around the selected row and onto its card never hides, moves or unhovers it Red on base: the interactive workspace card's window takes the mouse over its clear band, which lies over the trailing part of the hovered row, so the list sees the pointer leave its row and the card hides under a pointer still on the row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a7568197607c3cdfb81 * fix(hover cards): an interactive card's window takes the mouse only on the card, not over the row beside it Leo 2026-11-06: "when you're moving your cursor around the sort of highlighted workspace, it flickers still. Like this was a problem from before." Since #28897 the workspace card is interactive, and its window (the card plus a ~50 pt clear band for the shadow and slide) took mouse events over the trailing part of the hovered row and the rows beside it. The list's tracking area saw the pointer leave while it moved over its row (the row hover went off and on), and moves in the band reached no source, so the card hid after the reshow window and reshowed when the pointer moved back. Off the card the window now ignores the mouse; the move onto the card hands it over. handleMonitoredEvent moves to HoverCardCoordinator+Pointer.swift with the new updateCardMouse so the coordinator file does not grow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a7568197607c3cdfb81 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Carries #28139 (its owner lane went idle about six hours ago mid-step; all of its commits are kept with their authorship) onto current
feat-cmux-next.Leo, verbatim, 2026-10-30: “i still dont see the hover previews being like rex with multiple tabs being clickable”
Earlier asks this answers, verbatim: “and also why dont we have the rex thing yet of being abel to access the individual tabs in a workspace on its hover preview the best of both worlds thing” and (2026-10-24) “default just only show the inner tabs on hover and be able to go to and focus them when hovering ovre workspaces … wouldnt first prompt/input needing/whatever MAYBE be nice...? idk tho. we can tuck that behind toggle”.
Change
A workspace's hover preview in the sidebar lists that workspace's tabs, and each one is a click away: clicking a tab row focuses that workspace and that tab. The card opens tabs-first; status, prompts, history, usage and custom content stay available behind one "Show details" toggle. Overflowing tabs expand inside the same bounded scroll area with "Show more". Arrow keys move through tabs only while the pointer is on the card; keys on the workspace row still go to the focused terminal. Spec: leo-workspace
design/sidebar.md(Hover previews; the tab list was listed there as cmux#24785, which this carries).Carry work on top of #28139: merged
feat-cmux-next; the conflicts were inHoverCardBody/HoverCardCoordinator(base addedcornerRadius, this PR addedinteractive; both kept and passed through toHoverCardPanel.present) andplans/cmux-next/sidebar-owner.md(both sections kept).Screenshots
Fleet captures (2x, cmux-mac-mini via capture-host, the hover-card gallery's synthetic data), cropped to the card. Before is base
b93dcfbc826d, after is this head.Before, the card had no tabs at all: status, facts, PR and resources only. After, the chosen default opens tabs-first; each row is one tab (kind icon, name, folder, its status dot or spinner) and clicking it focuses that tab. "Show 3 more" expands the list in place; "Show details" brings back the status, facts, PR and resources.
The full gallery, with the three other placements we compared (tabs after status, tabs below title with details open, compact tabs below details): light, dark.
I viewed the after images (both crops and the full gallery, light and dark) before marking this ready. pr-media upload through
cmux-ci capture --prfailed from this agent host (glaeda's broker refuses the contents API read, #28265), so the images went up withscripts/pr-media.pydirectly.Validation
Pending at the head: fleet app compile, the hover-card suites (
WorkspaceTabHoverCardTestsand the nine adapted hover suites), independent review.Risk: hover-card event routing. The card now takes mouse events, so the focused terminal must keep its keys while the pointer rests on the workspace row (covered by
WorkspaceTabHoverCardTests).Size: about 1,250 lines, most of it the 21-locale strings for the details toggle and the regression tests; the list, its click routing and the toggle are one interaction and don't land usefully apart.
Agent session: agent session