Repository navigation
cmux NEXT: Go to What Needs Me, and marked tabs in Needs you - #24336
teamleaderleo wants to merge 12 commits into
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)
Probably yours: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by web and size checks: green Default changesThis pull request changes 16 defaults at
Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Regenerate the snapshot with Gallery before/after for
States
Pick other states with a |
|
Found 16 test failures on Blacksmith runners: Failures
...and 6 more test failures. View all on Blacksmith
|
|
Bead |
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. |
|
Orphaned: no activity for 13 h, and no lane holds a lease on it. The orphan sweep could not merge |
|
|
|
|
|
|
|
Held for dogfooding: this PR is stacked on #24311 and so includes its left-sidebar change: a workspace row gets the unread dot for a tab an agent marked, and the row's notification line shows the mark's reason. It stays open with #24311 until that change has been dogfooded. Its own changes do not touch the sidebar. |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (independent gpt-6-astra high, fast mode): SHIP at ed8f930
Relaying the completed independent review of the full diff: no blocking defects found. Machine scoping, stale-generation checks, gesture gating, and attention-clear rollback are coherent. Source-only review; the reviewer ran no tools, builds, or tests.
This records the existing review for the defaults guard; it does not clear the Swift or sidebar dogfood HOLD.
|
Base evidence for the two gallery-health states. They fail on base I ran
These are not slow renders close to a budget. The play's This PR's run had no base comparison because it rendered merge #27194 doesn't affect these states. It changes 🤖 Generated with Claude Code Agent session: agent session |
|
Review (codex gpt-6-astra high, next-review): BLOCK at cecd056
|
|
Review (codex gpt-6-astra high, router-review): BLOCK at afa9a4e BLOCK
|
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. |
|
Review (codex, router-review): SHIP at 491a602 SHIP
Validation note: Runtime tests were unavailable because Bun and Xcode are not installed in the review box. |
|
Review (codex gpt-6-astra high, router-review): BLOCK at 4b0cc7f BLOCK Visual verdict: Viewed all four after captures. The normal light/dark windows render, but both attention-palette captures are blank/off-screen.
|
Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-a64a83ed5bedfaa842cb
|
Conflict wave: not merged. Both #24336 and #24345 (stacked) have an open BLOCK on their own code, so a merge with feat does not make them landable: #24336's "Go to What Needs Me" palette renders off-screen in the captures (review at 4b0cc7f), and #24345's AgentPageProvider passes |
|
Awareness note from an agent lane that does not own this PR; it is not a review or a request to take the PR over. Carried to #32215: this branch merged with current feat-cmux-next, conflicts resolved, original commits and authorship kept. The owner session has been idle since 2026-11-01, and the broker refused to move the claim, so I couldn't push here. That PR goes through an exact-head review and lands. This PR stays open for its owner to close. |
|
Superseded by #32213: it landed this PR's Go to What Needs Me ( |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
HOLD: Current palette captures are blank; replace and visually verify them before landing.
Leo, 2026-10-22:
Leo-ask: ask-12231fbe5e
Third slice of "needs you here". #24286 adds the daemon mark (
cmux attention request --tab T --reason R,tab.update {attention}). #24311 draws it with the existing blue unread dot and ring. This PR adds two ways to get to a marked tab from anywhere:kind: "tab"item. It shows the agent's reason, then the workspace and tab titles (never an id). Go to shows that tab. A marked tab offers no answers and no Ask about this, because it belongs to no chat.AgentPaneAttentionTabspushes[{kind, tabId, reason, workspaceTitle, tabTitle, atMs}]to every agent page as theattentionTabshost event, at load, at handshake and on every change.chat.attention.open {tabId}. It shows only a tab the page was listed, through the user jumprevealTab.attention.goTo). A page of the marked tabs, newest first. Return goes through the same Go to. It has no default key, so it takes no Ghostty-reserved key. It is also in the Window menu.AttentionTabsWatchobserves the daemon store across every connected machine and updates the list. Nothing polls; it reads only the marked tabs' titles. A mark never moves focus: only the person's Go to or Return does.The attention projection, navigation, machine-scoped clear behavior, and regression tests stay together because they share the same mark lifecycle. Most additional lines are localized strings and tests.
The webview diff stays inside the item data and its row:
model.ts,useNeedsYou.ts, the row inNeedsYou.tsx, plus a gallery variant. It does not touchneedsYou.css, so it does not collide with #24068's popover restyle. The branch is reconciled with the current base recorded below.Changelog
Added: Go to What Needs Me in the command palette, and tabs an agent marked for you in the Needs you list.
Tests
Tests/CmuxNextAgentPaneTests/AgentPaneAttentionTabsTests.swift:chat.attention.opendecodes and refuses malformed params.Tests/CmuxNextAppTests/AttentionTabsTests.swift:webviews/test/agent-pane-needs-you-tabs.test.tsx:tabitem.chat.attention.openonly.agent-pane.needs-youvariantmarked-tab.Validation and remaining work
Observed PR head:
4b0cc7fb1af0be03f8cebb102530cc4ee7531c4f, based onf8bd6ac189bc193a2b66ce3eea1c13db91b8f791; merged prerequisite #27497 is included.chat.attention.open, retaining empty-session tab items and avoiding fallback chat selection.4b0cc7fb1af0be03f8cebb102530cc4ee7531c4f: both palette captures were blank. An earlier SHIP at491a6027does not cover this head.Real before/after attention palette capture
The current head was captured on the fleet at 2x in a clean fixture. It creates a workspace, marks its current tab with “Confirm demo access,” opens the command palette, searches “What Needs Me,” and opens the marked tab page. The driver accepted every step and the privacy scan passed, but visual inspection found both palette images blank; these images are failed evidence.
Capture
steps-3842a30fea-2xat491a60270189(fleet build, capture mini, text checked for private data)Viewed after image: yes
Visual verdict: BLOCK — both palette captures are blank and do not prove the marked-tab layout.
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Tabs an agent marked for you (
cmux attention request) now appear in the Needs you list and in a new Go to What Needs Me palette command, so you can reach them from anywhere. Both paths go throughchat.attention.open {tabId}, which shows only a tab the page listed, andAttentionTabsWatchkeeps the lists current by observing the daemon store across connected machines without polling.New Features
tabitem in Needs you: it shows the agent's reason, then the workspace and tab titles, never an id, and offers no answers or Ask about this.attention.goTo) lists the marked tabs newest first, has no default key, and is in the Window menu.Bug Fixes
Written for commit dad7e40. Summary will update on new commits.
Agent session: agent session