Repository navigation
cmux NEXT: a tab an agent needs you in shows the blue dot, the ring and why (tab-attention-v1) - #24311
cmux NEXT: a tab an agent needs you in shows the blue dot, the ring and why (tab-attention-v1)#24311teamleaderleo wants to merge 31 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)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 5889445; does not block |
This comment has been minimized.
This comment has been minimized.
|
Bead |
|
Orphaned: no activity for 14 h, and no lane holds a lease on it. Adopted by the orphan sweep: merged |
|
|
|
Held for dogfooding: this PR changes the left sidebar. #24336 (Needs you tab items and Go to What Needs Me) and #24345 (the Show banner) are stacked on this branch, so they carry this sidebar change too and are held with it. |
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. |
|
|
|
|
|
|
|
|
|
|
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 xhigh, correctness first): SHIP at 675e761
The workspace-owner guard fixes the previous clearing bug. The observation assertion fixes the previous observer-coverage finding. No new correctness blocker found in the attention handling or Chromium/top-page routing. No builds or tests run. Independent review by a different model (Codex gpt-6.1-sol at xhigh on cmux16, diff-only, read-only sandbox). It confirmed that the earlier BLOCK at 9e85b9e is fixed (typing in a remote terminal no longer clears a workspace mark here; the ring redraw is observed). The should-fix items stay open. The remote test calls the workspace helper rather than noteTyping or noteMouseDown, because those need a real key window. The lastKeystroke-by-tab-id item predates this PR. Fleet: the TabAttention, AgentTurnRing and four UnreadRing suites pass at a head that contains this one (cmux-ci step sp-attn-e-suite-2bd9a64), and the app compiles. This PR stays held for dogfooding (it changes the left sidebar); see the HOLD line in the body. |
|
|
|
Owned by an agent session · session |
|
Orphaned: no activity for 54 h, and no lane holds a lease on it. The orphan sweep could not merge |
82bda77 to
652a1e4
Compare
f19b6fd to
d841668
Compare
|
Found 8 test failures on Blacksmith runners: Failures
|
Integrate the shared native request-ID contract from 9171431 and cecd056 while retaining machine-scoped dismissal state and client-local attention generation. Clear only the captured owner token and require the capability on the actual sending connection after handoff. Regressions cover coalesced same-clock replacements, stale native mouse release, and legacy transport refusal. Fleet runtime validation is pending the backend-containing integration tree from #27497; no runtime result is claimed. Static verification: nine checks pass; unchanged localization inputs exceed existing debt. Swift #26809 and structural dogfood holds remain.
|
Review (codex gpt-6-astra high, next-review): BLOCK at c27c81c
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo-ask: ask-12231fbe5e
Leo: "idk where things are man i dont see anything other than the current workspace which is you and you have a cmux next github brwoser tab open (we need to have cmux expose this harder if it isn't already/hve better instructions)"
Slice B of the "needs you here" surface: the app shows a tab an agent marked. The daemon half is #24286 (
tab.update {attention},cmux attention request|clear, tab-attention-v1), and this PR lands after it: the bundled-daemon capability check needs that daemon. The palette command and Needs you list item come in slice C, the agent instructions in #24299.What changes
extra.attention {reason, at_ms}becomesTabModel.attention(TabAttention, CmuxNextDaemon).TabModel.showsUnreadreads it, so the existing blue treatment shows it everywhereshowsUnreadis read. There is no new dot and no new drawing code:at_ms) rings again.tab.update {attention: null}, when the daemon has tab-attention-v1).notifications.attention.showOnSidebar = falsehides it like any unread.Tests
TabAttentionTests(CmuxNextAppTests):showsUnreadfollows the record;Fleet compile-check at 2ae8268:
compile check app: passed.Final-head UI capture (built at 5cbebfc; final 3847668 changes only test-fixture scheduling): the fleet build launched, created and focused an Attention workspace, and issued
attention request --tab current --reason "Confirm GitHub access". The sidebar shows the blue attention dot on the workspace and tab in both themes.Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
A tab an agent marked "needs you here" shows the existing unread dot and ring, and its workspace row says why. The daemon half lands here too, with the
tab-attention-v1and guardedtab-attention-request-id-v1capabilities.extra.attention {reason, at_ms, request_id}becomesTabModel.attention;showsUnreadreads it, so the tab dot, screen bar, sidebar list, and pane ring all show the mark with no new drawing.at_msmust be a whole nonnegative number andrequest_ida strict 32-character lowercase hex owner token; malformed values are no mark.request_id, which the daemon uses as a monotonic identity it persists across clears and tab close — it refuses a mismatched or malformed guard, a clock step backwards or two requests in the same millisecond still ring as new, and a delayed clear never matches a later request. The capability check runs on the sending connection after handoff, not an earlier store handshake.notifications.attention.showOnSidebar = falsehides it like any unread.Written for commit c27c81c. Summary will update on new commits.