cmux NEXT sidebar: hover preview tab rows show where they run, model, command and page paths
Leo, 2026-11-01, on the sidebar workspace hover preview: "local or nonlocal is probably useful to see in the hover previews", and "these are not informative enough nor look very good. there's no symbols, not much metadata, nothing. we can do stuff" (rows read "github.com / github.com" and "New Tab / Tab").
Spec: leo-workspace design/sidebar.md (Hover previews; "Show execution location in the workspace hover preview"; "Agent-session metadata must carry information").
What changes
Each tab row's second line in the workspace hover preview now carries real facts, in this order when the tab has them: running command, place, model, state, machine, last activity.
- Machine: each agent chat and terminal row says where it runs: "This Mac", "Cloud", or the machine's name. This comes from the sidebar's existing machine section (
SidebarMachine.kind, the same source as the card's Cloud/remote host row). A remote terminal names its own session. Browser and New Tab rows stay unchanged and name no machine. - Agent rows: the model name (acpmux turn detail,
AgentTurnStateStore). The harness icon, running subagents, state and time stay as they were. - Terminal rows: the running program (the row's existing
processreading, shown only while a command runs). - Pages: host and path (
github.com/manaflow-ai/cmux/pull/12), or only the path when the title already is the host. A page whose record names no favicon (a restored tab that never loaded) asks for the site's/favicon.icothrough the existing favicon store, so it shows the site's icon and not a bare globe. - No repeats: no part repeats the row's title or another part ("" under "", "github.com" under "github.com"). A row with no fact shows its title alone, so there is no "Tab" under "New Tab".
No layout, row height, tokens or popover structure change. Rows still use the card's icon and text columns, Typography.caption and secondary ink.
Gallery
WorkspaceHoverCardGallery.tabRowCards adds "Tab rows" cards on this Mac and on another machine, in four variants: machine on every line (chosen), only another machine named, machine in the trailing column, and the old place · state · time line. The chosen variant answers Leo's ask directly, so a local row reads "This Mac" too. namesLocalMachine switches to the remote-only variant if this turns out noisy.
Tests
- New
WorkspaceTabHoverCardRichRowsTests: machine words for local, Cloud, SSH and server; a remote terminal's own machine; the remote-only variant; the agent line with its model; the terminal command; no repeated title; no kind word under New Tab; page path and site favicon parsing. WorkspaceHoverCardGridTests: a blank page now has no detail line.
Observed / Not run
- Fleet compile-check of the app at the head, plus the hover card suites (
WorkspaceTabHoverCardRichRowsTests,WorkspaceTabHoverCardTests,WorkspaceHoverCardGridTests,WorkspaceHoverHostIdentityTests,WorkspaceHoverCardRunningWorkTests) throughpackage-test-lane.sh suite. Results are in the comments below. - Not run: a native capture. Leo will try the build.
Changelog
- Changed: Sidebar hover preview tab rows show where each chat or terminal runs (This Mac or the machine's name), plus the chat's model, the running command, and page paths and site icons.
Risk: normal. Display-only change to the hover card's text and the favicon address fallback.
Agent session: agent session
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Makes the workspace hover preview's tab rows informative: each agent chat and terminal row now shows where it runs (This Mac, Cloud, or the machine's name), agent rows add their model, terminals their running command, and pages their host, path, and site icon. Rows never repeat the title or another fact, and a row with nothing to say shows its title alone — no bare "Tab" under "New Tab".
- Remote terminals name their own session rather than the workspace machine; browser and New Tab rows name no machine.
- Pages show only their path when the title already is the host; restored pages that never loaded fall back to the site's
/favicon.ico, except loopback hosts, whose icon is never guessed. - No layout, row height, or tokens change; display-only, plus the favicon fallback.
Tests
- Adds
WorkspaceTabHoverCardRichRowsTestscovering machine words, remote terminal sessions, agent model, terminal command, page paths, no repeated title, and loopback favicon exclusion. - Updates
WorkspaceHoverCardGridTestsso a blank page now has no detail line.