Skip to content

cmux NEXT: a banner with Show for a tab an agent marked - #24345

Closed
teamleaderleo wants to merge 68 commits into
feat-cmux-nextfrom
sp-attn-e
Closed

teamleaderleo wants to merge 68 commits into
feat-cmux-nextfrom
sp-attn-e

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-10-22:

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)

Leo-ask: ask-12231fbe5e

This is the fourth slice of "needs you here", after #24286 (daemon mark and CLI), #24311 (blue dot and ring) and #24336 (Needs you item and Go to What Needs Me). When an agent marks a tab with cmux attention request --tab T --reason R, the app posts one system banner per request:

  • Title: "Workspace › Tab", by titles, never ids.
  • Subtitle: "Needs you".
  • Body: the agent's reason.

Show (or a click on the banner) goes to the tab through the same Go to that Needs you and the palette use (AgentPaneAttentionTabs.open, then revealTab). Posting the banner moves no focus.

  • The banner follows notifications.* the way an agent notification does: desktop mode, muted workspaces, quiet hours and sound (NotificationPolicy).
  • A mark that was made before this launch posts nothing.
  • When an agent sends a new request on a tab that is already marked, the old banner is withdrawn and a new one posts.
  • When the mark clears (the agent clears it, the page changes, the tab closes), its banner is withdrawn.
  • AttentionTabsWatch (from cmux NEXT: Go to What Needs Me, and marked tabs in Needs you #24336) drives this. Nothing polls.

This depends on #24336, and its commits are in this branch. After #24336 lands, this diff is 154 lines plus translations for the two strings ("Needs you", "Show").

Changelog

Added: A system notification with a Show button when an agent needs you in a tab.

Tests

Tests/CmuxNextAppTests/AttentionBannerTests.swift covers:

  • One banner per request. None for marks made before launch. A new request replaces the banner. A cleared mark withdraws it.
  • The banner id names only its tab.
  • Show goes to the tab through Go to, and posting moves nothing.
  • The category has a foreground Show action.

Observed / Not run

  • Observed:
    • cmux-ci compile-check --app passed at 3890390.
    • prepush-gate reported no new violations.
  • Not run here: the Swift test suite, which runs in PR CI. A live banner was not captured: CI minis run as automation launches, which never create the notification center.

Agent session: cosmic-gray

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Posts a system notification with a Show button when an agent marks a tab as needing you (cmux attention request), so a request reaches you beyond the tab list and sidebar dot.

The banner titles the tab by its workspace and tab titles (never ids), shows "Needs you", and carries the agent's reason. Show or a click goes to the tab through the same jump Needs you and the palette use; posting moves no focus. Marked tabs are keyed by a 16-hex digest of their machine and tab id, so rows, jumps, and banner policy read the machine that owns the tab — a forked machine sharing a tab id never shows or hides another's, a Go to whose workspace id this Mac's workspace also has (a cloned machine) refuses it, and Show opens the tab only while that banner's request is still a live mark, so a banner from an earlier launch or one a newer request replaced opens nothing.

Banners follow notifications.* like agent notifications — desktop mode, quiet hours, and sound, with workspace mutes keyed by the owning machine so a cloned id's settings never cross machines — and are driven by AttentionTabsWatch, so nothing polls. A new request on an already-marked tab replaces its banner; a cleared mark, navigation, or tab close withdraws it, and an open palette page drops or adds its row as the marks change. Marks made before this launch post nothing. attention.goTo is a focus action, so an agent-origin cmux action run attention.goTo refuses unless focus was requested, and a Go to from a marked tab's row (chat.attention.open, now on the page host allowlist) spends the pane's one-use user gesture, so page script alone cannot show a tab.

Changelog
Added: A system notification with a Show button when an agent needs you in a tab.

Bug Fixes

  • A click or key in a Cloud or SSH tab now hides its ring only on the machine that owns the tab, and a mark with a malformed at_ms is no mark.
  • A key in another machine's terminal no longer clears a local workspace's manual Mark as Unread when their tabs share an id.
  • A mark posts only once its machine's live tree and current session snapshot arrive; a request arriving as a reconnect delta is retained through readiness and posts when eligible even if the lifecycle already saw it as unready, and a replaced or replayed store re-baselines without silencing ready machines.
  • A request during the typing quiet period stays silent, keyed by machine and tab so another machine's cloned tab never quiets it.
  • AppServices now owns the watch, so releasing the services cancels its observation loop.

Written for commit 4f1f974. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 5 commits October 22, 2026 00:59
… why

tab-attention-v1 (the daemon half is #24286): the tab record's
extra.attention {reason, at_ms} becomes TabModel.attention, and
showsUnread reads it, so the tab's blue dot, the screen bar, the sidebar
tab list and the pane's blue ring all show it with no new drawing. The
workspace row gets its manual dot and shows the reason as its text line.
Going into the pane (a click or a key) or Dismiss Highlight hides the
ring; the dot stays until the agent clears the mark, the page changes or
the tab closes, and a new request rings again. Mark as Read on the tab
also drops the mark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16037-16c2-7a73-b063-2e37ed40b9c4&host=cosmic-gray
A tab an agent marked with `cmux attention request` (tab-attention-v1) now
shows in two places, each by the agent's reason, the workspace and the tab
title, never an id:

- Needs you: a `kind: "tab"` item. AgentPaneAttentionTabs pushes the marked
  tabs to every agent page (`attentionTabs` host event); its Go to calls
  `chat.attention.open {tabId}`, which shows only a listed tab through the
  App's user jump (revealTab). No answers and no side question.
- The palette's Go to What Needs Me (`attention.goTo`): a page of the marked
  tabs, newest first; Return goes through the same Go to. No default key.

AttentionTabsWatch observes the store and updates the list; nothing polls.
Strings localized in every catalog locale.

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)"

Leo-ask: ask-12231fbe5e

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16037-16c2-7a73-b063-2e37ed40b9c4&host=cosmic-gray
When an agent marks a tab with `cmux attention request` (tab-attention-v1),
the app posts one system banner per request: "Workspace › Tab", "Needs you",
the agent's reason. Show (or a click) goes to the tab through the same Go to
as Needs you and the palette; posting it moves nothing. It follows
notifications.* like an agent's notification (desktop mode, muted
workspaces, quiet hours, sound), marks made before launch post nothing, and
a cleared mark takes its banner back.

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)"

Leo-ask: ask-12231fbe5e

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16037-16c2-7a73-b063-2e37ed40b9c4&host=cosmic-gray
@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 4f1f974: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24345 -f ref=sp-attn-e -f platform=macos -f backend_mode=local

Gallery before/after for 4f1f974: 16 states rendered, 0 images differ, 2284 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 40928870152 -R manaflow-ai/cmux -n gallery-advisory-24345-4f1f97407e3153e35e2b658209eca2909bf176e5 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.chat-width/standard Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/standard Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/wide-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/wide-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/no-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/no-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-floats/scrolled-to-end Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-floats/scrolled-to-end Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-floats/composer-grown Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-floats/composer-grown Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/shipped Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/shipped Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/two-thirds Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/two-thirds Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/half-tucked Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/half-tucked Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/before Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/before Apple System Colors unchanged 0% own App.tsx
agent-pane.copy-controls/output Apple System Colors Light unchanged 0% own App.tsx
agent-pane.copy-controls/output Apple System Colors unchanged 0% own App.tsx
agent-pane.docked-chat/new-chat Apple System Colors Light unchanged 0% own App.tsx
agent-pane.docked-chat/new-chat Apple System Colors unchanged 0% own App.tsx
agent-pane.docked-chat/after-turn Apple System Colors Light unchanged 0% own App.tsx
agent-pane.docked-chat/after-turn Apple System Colors unchanged 0% own App.tsx
agent-pane.docked-chat/working Apple System Colors Light unchanged 0% own App.tsx
agent-pane.docked-chat/working Apple System Colors unchanged 0% own App.tsx

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards.

CI failed on 4f1f97407e (run 40944591601 attempt 1): 1 code, 1 unknown.

Job Verdict Why
web / react-apps-base-check (2) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs MarkdownMath.test.tsx keeps shell command dollar signs as plain text without dropping content: failed (job)
  • seen on other PRs queuedMessages.test.ts each agent message is a received-card row, in the queue's order, with its promptId: failed (job)
  • seen on other PRs chiefLook.test.tsx search renders Bubble Style in the Look card: failed (job)
  • seen on other PRs rowSummary.test.tsx no description line on any Settings page is over 60 characters, in any language: failed (job)
  • seen on other PRs rowSummary.test.tsx every schema summary fits 60 characters in every language: failed (job)
  • seen on other PRs themePane.test.tsx the Theme page draws each theme key once, in one card, with no second App Theme group: failed (job)
  • seen on other PRs agent-pane-pending-steer.test.tsx Send now on a waiting steer asks queue_edit send_now for its promptId, and goes once it is read: failed (job)
  • seen on other PRs bare-ref-repo.test.tsx an agent's message: its own address names the repository of its bare #N: failed (job)
Matched log lines
web / react-apps-base-check (2): (fail) keeps shell command dollar signs as plain text without dropping content [4.15ms]

Not re-run automatically: web / react-apps-base-check (2), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: web / Web status; base red: the same failure on the base 2289f95; does not block
red: web / react-apps-base-check (1); no finished base run on 2289f95 to compare; do not merge until green; see lane-rules
red: web / react-apps-base-check (2); no finished base run on 2289f95 to compare; do not merge until green; see lane-rules
red: web / react-apps-check; base red: the same failure on the base 2289f95; does not block

Default changes

This pull request changes 19 defaults at 9cc3b7bf9d47 (what everyone gets without configuring anything):

  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:id: (none) -> "8c2eb0eea80ab38023b8d63807b71d3b2265f0cb2f0d3ceb4357818c0721b7c3"
  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:needsFocus: (none) -> "d293a918651a0fc51f5b29b1c97ae855e19886d2015ee263de228c7efe878ca3"
  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:needsFocus#: (none) -> "505e48e63991f10702bf92bed0dcae38ab67cda69136d0241a8cf126da389773"
  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:nothing: (none) -> "0d000b8c0501ccc4a7ad1c15df6f95fc5e7f633022a1f5bd0a6819b3fca24637"
  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:nothing#: (none) -> "3192a9af5700c4accbc542aa8bc8c5e68d4a5552e924f9b661163310ee9e1b7b"
  • tunable-source.CmuxNextAgentPane/AttentionPalettePage.swift:pageID: (none) -> "d883bc36e62652cfed17612efba8dc70354e76b73ceedaa3d49a0ff17cbee661"
  • tunable-source.CmuxNextAgentPane/AttentionTabsWatch.swift:key: (none) -> "eda951b3275e346acb42d70849c4f954f86787446aa30d46d3e2266c38076e6f"
  • tunable-source.CmuxNextAgentPane/AttentionTabsWatch.swift:locate: (none) -> "ee6a08dbf0c057f8992d8b4789ecccd3d10c0ef1349c0b6cb04d93d23666b49e"
  • tunable-source.CmuxNextAgentPane/AttentionTabsWatch.swift:machineDigest: (none) -> "8563f3cf53a16c52bfb094c200c84f2f87c9ef0d085ea03e4e58bbe538c85a26"
  • tunable-source.CmuxNextApp/AppActions.swift:bind: "9760ef56c3a4aa1c335bdeafcd9602897769726ec3636742c0b75877d47f367a" -> "c005cc04cc7aafdcbc312b12816df3e5749439604734b2c07cf0a6e0fc741edd"
  • tunable-source.CmuxNextApp/AppActions.swift:bindAttentionPalette: (none) -> "bcc842707f7a3b8358abd251f8f1dcf1d9cbd786020db35cbb11eed6a86f23ae"
  • tunable-source.CmuxNextApp/Control/DebugWindowSnapshot.swift:captureAsync: "99a80ceb7c309a0c16500f8063d61cdfe7c75682dbb377d300af8c0bb9155d46" -> "17e312ae09e3aca7a52382cab5e539e65c36f50ef8152bc111879055524d27e7"
  • tunable-source.CmuxNextApp/Focus/DebugPaletteCapture.swift:capture: (none) -> "e1e8506762513bd02bc6d44c0b0981c9bc59d40ea5798e26f3ca000816e4ef5c"
  • tunable-source.CmuxNextApp/Focus/DebugPaletteCapture.swift:capture#: (none) -> "1b69f9bf30ca43008b10045a4425d5f815662134bb9e619cd3984682d6ac221d"
  • tunable-source.CmuxNextApp/Focus/DebugPaletteCapture.swift:windowImage: (none) -> "3d059baef38f99e15106ecafa09569e4d19af0d712fdc11409e3c5ac1790794b"
  • tunable-source.CmuxNextApp/Handlers/NotificationSettingsHandlers.swift:bind: "f455aadc95941a368604951fa289536864c1d413c6921092b352f7ae317f0441" -> "2189298d56c7a41ef5c09ae40288ecd505764e2cb4f07fd5e6889d1e2e93bc70"
  • tunable-source.CmuxNextDaemon/State/TabAttention.swift:validRequestID: (none) -> "d45aac3280bdb59dc7dec89eb63b517a5c9a722bfcc54129042e3f4fa2c99ebc"
  • tunable-source.CmuxNextSettings/NotificationWorkspaceKey.swift:qualified: (none) -> "b041e1f9433d747528c6c9ee95ac10734f0b90f16d1df50b0c825335d5bf5397"
  • tunable-source.CmuxNextSettings/NotificationWorkspaceKey.swift:settingsKey: (none) -> "c7d3b05c74efcee5c66dd1edeb33a55dcf7ecdc8dc0c744a8bb5a57c4674f025"

Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Review (<reviewer>): SHIP at 9cc3b7bf9d470d1e0d8e6328c864e418bede3a93, from a member, not a self-review (the newest verdict naming the head decides; a later BLOCK beats an earlier SHIP), or with an approving review on this commit from @lawrencecchen or @austinywang (the call owners in .github/defaults-call-owners.json, never the author). A receipt posted as a review re-runs this check; after a plain comment, re-run it. The needs a call label alone does not pass, and a new push needs a new receipt.

Regenerate the snapshot with python3 scripts/ci/defaults_guard.py snapshot.

@github-actions github-actions Bot added risk:high Risk tier (docs/ci/risk-tiers.md) and removed risk:normal Risk tier (docs/ci/risk-tiers.md) labels Oct 22, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Found 7 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpebplfx02/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmptrx5u6_n/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-vdmg8 created for this PR by the cmux coordinator.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 13 h, and no lane holds a lease on it. The orphan sweep could not merge feat-cmux-next in: conflicts in webviews/src/agent-session/acpmux/needsYou/NeedsYou.tsx. Listed for a lane to resolve.

teamleaderleo and others added 2 commits October 22, 2026 19:40
Regenerated on the fleet (scripts/cmux-next/regenerate-action-exports.sh,
steps 3ee6d476 and c491d7ee) and with web/scripts/export-docs-shortcuts.ts.
They also pick up the base's stale entries for home.*Conversation* and
neverHibernateSite. The defaults snapshot is bot-only (#21946), so it is left
to the base autofix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16037-16c2-7a73-b063-2e37ed40b9c4&host=cosmic-gray
teamleaderleo and others added 3 commits October 22, 2026 19:59
# Conflicts:
#	plans/cmux-next/actions.md
#	webviews/src/agent-session/acpmux/needsYou/NeedsYou.tsx
Fleet step df753c55 (regenerate-action-exports.sh at 1c2a8dc); action-surfaces.json
and the docs shortcuts were already fresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16037-16c2-7a73-b063-2e37ed40b9c4&host=cosmic-gray
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 17 of 18 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (independent Astra high): SHIP at 4f1f974

Independent whole-diff static review at high effort with fast mode found no introduced blocking defects after integration of base 2289f95. Reviewed snapshot-time baselines, reconnect/coalesced deltas, replay/store replacement, pending clears, machine/request-bound routing, gesture gating, mute/sound migration, Quiet After Typing, and observation ownership. The base Dock badge cancellation path is preserved; catalogs retain version 1.0.

Exact-head fleet compile/tests are separate pending evidence. Native system-banner capture remains blocked by the display capture route. Both structural dogfood and Swift dependency HOLDs remain; this receipt does not authorize merging while held.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra, router-review): BLOCK at 9cc3b7b

BLOCK at 9cc3b7b

Visual verdict: no images supplied (range review); the visual verdict must come separately

  1. [P1] [blocking] AgentPageProvider.swift:43 — chat.attention.open appears twice in the array passed to Dictionary(uniqueKeysWithValues:) (also at line 36). Swift traps on duplicate keys, so the first shared-host agent page call—including its handshake—crashes the application. Tests accessing AgentPageOps.all also crash. Remove one occurrence.

Static inspection confirmed the duplicate. Swift and Bun were unavailable, so test suites could not run.

exit=1

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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.


At current head 9cc3b7bf9d470d1e0d8e6328c864e418bede3a93, the exact-head Astra review is BLOCK: AgentPageProvider.swift includes chat.attention.open twice in the Dictionary(uniqueKeysWithValues:) input, which traps on duplicate keys during the first shared-host agent page call and in AgentPageOps.all tests. Remove the duplicate, rerun the affected checks (including the defaults guard), and obtain a fresh exact-head review.

1 similar comment
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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.


At current head 9cc3b7bf9d470d1e0d8e6328c864e418bede3a93, the exact-head Astra review is BLOCK: AgentPageProvider.swift includes chat.attention.open twice in the Dictionary(uniqueKeysWithValues:) input, which traps on duplicate keys during the first shared-host agent page call and in AgentPageOps.all tests. Remove the duplicate, rerun the affected checks (including the defaults guard), and obtain a fresh exact-head review.

@lawrencecchen

Copy link
Copy Markdown
Contributor

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 chat.attention.open twice into Dictionary(uniqueKeysWithValues:), which traps (review at 9cc3b7b). These need the owner's fix first. I pushed nothing.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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 on #32213: the original commits with their authorship, merged with current feat-cmux-next, and the duplicate chat.attention.open (the BLOCK at 9cc3b7b) removed. This PR stays its owner's to close.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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.


Landed through its carry #32213 as c9835aa (SHIP at e9e3a94, gpt-6.1-sol xhigh). Follow-ups: #32308. This PR stays its owner's to close.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #32213 (cmux NEXT: a banner with Show for a tab an agent marked, carry of #24345), which is already on feat-cmux-next. Closing as superseded.

This branch was previously deployed

4 inactive (1 outdated) deployments
artifacts — 9cc3b7bf Deployed Oct 31, 2026 by teamleaderleo via add the Windows daemon to the tree #86027
sentry-dsyms — 9cc3b7bf Deployed Oct 31, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #86027
ci-routing-agent — 9cc3b7bf Deployed Oct 31, 2026 by teamleaderleo via cmux-tui tree preflight #86027
cmux-tui-merge-tree — 714bad73 Deployed Oct 23, 2026 by teamleaderleo via publish the merge tree #5195
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants