Repository navigation
fix(activity): group Solo follow-ups under one agent row - #2876
johnmatthewtennant wants to merge 9 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.
Problem
When no message bubble owns the working indicator, the Activity popover can show separate rows and Stop buttons for follow-ups sent to the same agent in a Solo chat. It also treats their triggering messages as threads, although they belong to one continuous conversation.
Solution
Group top-level Solo requests into one live row per agent, retaining its current step and Stop control. Their destination and scope are the channel conversation. Actual thread work retains separate rows and controls. A message’s live bubble continues to suppress the trailing indicator.
Validation
Before the fix, two concurrent Solo requests produced two Stop rows and a message ID reported as a thread. The browser journey sends a follow-up while the first request remains active, verifies that live bubbles suppress the trailing cue, then disables Agent Activity through Settings to exercise the host fallback. It shows one row without a Thread label and sends keyboard Stop to the displayed request. Chromium and WebKit pass in both themes at narrow and desktop widths. Component coverage also checks mixed Solo and actual-thread scope and navigation.
The browser exercises the production app, broker and activity stores with disposable relay identities and a controlled agent runtime. Native human verification of the corrected mixed-work label remains pending.
Screenshots