Repository navigation
fix(activity): show one live bubble for Solo follow-ups - #2876
johnmatthewtennant wants to merge 21 commits into
Conversation
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
|
🤖 Design review (Design Reviewer agent, head b5a10ce) Looks good from a design standpoint. A follow-up in a Solo chat no longer adds a second Activity row or a misleading "Thread" label, and real thread work still gets its own row. No must-fix issues. Optional: with two requests in flight, one row and one Stop button now cover both. The PR says Stop goes to the request shown. If the other request keeps running after you press Stop, the row comes back and Stop feels like it didn't work. Worth confirming that Stop ends everything that row stands for. Not checked: I didn't run the app. I judged from the diff and screenshot, and didn't check several agents in one Solo chat or keyboard use in the popover. |
|
🤖 I traced the Stop dispatch at this head. The request ID selects its runtime stopper; it is not limited to cancelling one presentation row. Claude’s stopper interrupts the shared conversation session, and messages folded into the running turn end together (runtime, turn interruption). There is a distinction for work queued for a later turn, such as a Codex request using another model: the existing contract leaves that queued request intact (regression coverage). I am retaining that existing current-turn Stop behavior rather than expanding this presentation fix into queue cancellation. This is a source-and-existing-test assessment; John’s acceptance did not separately confirm the optional Stop exercise. |
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 One minor scope-label defect remains in mixed Solo/thread activity.
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Preserve the live-indicator and Solo grouping help descriptions. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Verify the live bubble owns the working cue, then exercise grouped Solo Stop controls through the host fallback with Agent Activity disabled. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Keep observed reply-thread destinations and transcript origins. Treat mixed channel and thread roots as aggregate channel work when no Stop control is available. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord’s automated source review via Wes’s account, with independent Rocket, Mantis and Groot coverage.
Reviewed head 9f8b74f4a54f5ea5beb47c814a5c34d9fd05801d against target/merge-base 1f6e1087003bb70f71e1248c0264182fdfd35c28.
One navigation regression is detailed inline: selecting the explicitly channel-scoped Solo row loses the direct transcript opening when that agent also has thread work.
Source-only review of the diff, relevant callers/lifecycle, tests, PR description and screenshot. No tests, builds, app or browser/native workflows were run; the reported browser passes and pending native verification remain unverified by this review. Stop continues to target the current turn under the existing contract; queued future-turn cancellation is outside this change.
Keep explicit channel scope through the Activity chooser while leaving aggregate mixed-work navigation inferred. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord’s automated source follow-up via Wes’s account, with independent Rocket, Mantis and Groot coverage.
The prior P2 in #2876 (comment) is addressed at 8ecece6e48e248b7ebe39351b902fbabf3746a94. The selected Solo row now retains its explicit channel scope through the transcript-opening decision, then normalizes it at the navigation boundary. The added component cases cover profile-capable mixed Solo/thread work and preserve aggregate navigation when no individual work row is selected.
No new actionable findings in the correction or its affected callers. Compared the follow-up against previously reviewed 9f8b74f4a54f5ea5beb47c814a5c34d9fd05801d; target and merge-base remain 1f6e1087003bb70f71e1248c0264182fdfd35c28. Prior grouping/Stop coverage is retained.
Source-only: no tests, builds, apps or browser/native workflows were run. Reported test passes and native acceptance remain unverified by this review. The unchanged PR description and byte-identical screenshot retain the prior public-material inspection.
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 One minor scope/status inconsistency remains; the earlier scope-label and transcript-dispatch findings are resolved.
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord automated source review via Wes’s account, with independent Rocket, Mantis and Groot coverage.
Follow-up reviewed at 158a51b23866a1f49877a0273f1df8f97af31ce6 against target/merge-base 1f6e1087003bb70f71e1248c0264182fdfd35c28, focusing on the changes since 8ecece6e48e248b7ebe39351b902fbabf3746a94 and retaining the prior grouping/navigation review.
No new actionable findings. The observed-thread scope fix aligns in-flow local Stop selection with status: the waiting Solo request owns the channel row, while the observed thread retains its own control. The added mounted regression distinguishes those targets. The existing subscription and Stop lifecycle retain the captured request when visible roots change; explicit thread and aggregate views preserve their previous behavior. The prior transcript-navigation P2 remains resolved in source.
Source-only: we did not run tests, builds, the app, or browser/native interactions. Reported test passes and runtime focus behavior remain unverified. The public description and previously inspected screenshot are unchanged.
kazemek21
left a comment
There was a problem hiding this comment.
Kyle reviewed the PR and the Nexus review-tracker notes and approved with the non-blocking comment below.
Posted by Codex (gpt-6.1-sol) on behalf of kylez
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Preserve request ownership, the shared activity snapshot and observed thread roots. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Preserve real navigation roots for plugin wakes alongside continuous Solo grouping. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Preserve grouped Solo follow-up guidance alongside native tool cancellation and sent-write limitations. Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Co-authored-by: Leona <223be3431f004b70add8b6504a977b2da75f6fa73fb3ef2fa0ddae86f8643409@buzz.block.builderlab.xyz> Signed-off-by: John Tennant <jtennant@block.xyz>
Why
Solo follow-ups can show the same agent working beneath several messages at once. The fallback Activity chooser also lists those requests separately, with repeated Stop buttons and misleading Thread labels for one continuous conversation.
What
Show one live message bubble per agent for local Solo work. The newest working request owns it, or the newest waiting request when none is working. Keep request failures and actual thread work separate. The fallback chooser uses the same request for its label and Stop target, grouping Solo requests into one agent row with channel-scoped navigation.
Validation
The browser journey sends a follow-up while the first request remains active. Before the correction it finds two live bubbles; afterward it finds one. It hands over the follow-up, checks that its step owns the single bubble, then disables Agent Activity and verifies that the fallback shows that same step. Keyboard Stop ends the displayed follow-up and leaves the older request available. Regressions fail before the ownership correction for both working and waiting request ties. Component regressions cover queued follow-ups, transfer to the newer working request, other agents, failures and separate threads.
Chromium exercises the production app and broker with disposable identities and a controlled runtime. Native verification and current-head WebKit CI remain pending.
Screenshots
Before: two live bubbles for Solo follow-ups.
After: one live bubble.
Fallback with Agent Activity disabled: one row and Stop control.