镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Show single-agent Stop on the activity bubble - #3140

Merged
klopez4212 merged 5 commits into
mainfrom
kennylopez-agent-activity-hover
Nov 10, 2026
Merged

klopez4212 merged 5 commits into
mainfrom
kennylopez-agent-activity-hover

Conversation

@klopez4212

@klopez4212 klopez4212 commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

A single working agent currently repeats its activity in a hover popup. Its existing bubble now opens Activity directly. Stop overlays the right side on hover or keyboard focus, with the activity text fading out beneath it. The resting text uses the full bubble width and revealing Stop does not resize the bubble. Touch keeps Stop visible. Multiple agents retain their individual activity/Stop rows in the shared popup.

The existing stop handler, pending feedback, error/retry controls and focus handoff remain in use.

Validation: current-head typecheck, design checks, push hooks and 63 activity component tests pass. Focused Stop-to-summary handoffs in both directions and the pending accessible name failed before the fix and pass afterward; focus elsewhere stays unchanged. Browser validation: 28 journeys passed in the two affected Chromium/WebKit files; the two Stop journeys initially failed on a rounded-corner hover target, then passed using the named activity region. Full local Vitest passes: 1,039 files / 20,186 tests (8 files / 23 tests skipped). Hosted CI is running. The WebKit flake check exposed an empty-thread test focus race; 28d8723 waits for the composer focus handoff before keyboard Activity navigation. That journey passed 10 repetitions in each engine (20 total); push hooks pass.

No browser cases added or removed. The Stop regression now checks representative app wiring, keyboard activation, pointer hit testing and stable bubble width with semantic targets. Its screenshot/theme/viewport matrix was removed; the existing attached acceptance screenshots remain separate evidence from the earlier overlay iteration. Other browser journeys retain multi-agent, navigation, density and retirement coverage.

Try one working agent: hover/focus its activity bubble, use Stop, or click the activity text to open Activity. With several agents, verify the hover list still offers individual controls. Native-host, physical touch-device and human visual acceptance remain unverified.

Screenshots from the app with fixture data:

Theme Resting Hover
Light Resting, light Hover, light
Dark Resting, dark Hover, dark

Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
@klopez4212
klopez4212 marked this pull request as ready for review November 9, 2026 21:42
@klopez4212
klopez4212 requested a review from a team as a code owner November 9, 2026 21:42
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T23:29:39.606462Z 6e295bd New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 74f6daa396

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tulsi-builder tulsi-builder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 AI-agent review (BasilBot). For a single agent, opening Activity directly and showing Stop inline cuts out a step, which is a nice simplification. I agree with Codex's focus finding (replied on that thread). Two smaller notes are inline.

}
@media (hover: hover) and (pointer: fine) {
.inlineStop {
opacity: 0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 The hidden Stop still takes up its width when the bubble is at rest. opacity: 0 hides the button but keeps its space, and the bubble is sized to its content. So with one agent working and no hover, the pill seems to end in a blank area about the width of a Stop button. That avoids a jump when Stop appears, which may be the intent. But the screenshots only show the hover and focus states. Could you add a resting-state screenshot so design can decide between the empty tail and a small reflow on hover? (For example, width: 0 / overflow: hidden until revealed, or letting it overlay the trailing edge.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Resolved by 6a9e73f: Stop now overlays the trailing edge, so the resting bubble no longer reserves its width.

Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
Signed-off-by: klopez4212 <klopez4212@gmail.com>

@tulsi-builder tulsi-builder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 AI-agent re-review (BasilBot) of 6a9e73f. The overlay fixes the blank tail, and thanks for the resting-state screenshots. One new design question is inline. The focus finding and the "Stopping…" announcement from the previous round are both still open at this commit (noted on their threads).

.overlayContent {
mask-image: none;
}
:hover > .inlineStop,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Design question: Stop now appears right where people click to open Activity. The whole bubble opens Activity, and the right part of it turns into Stop the instant the pointer enters, with no delay or fade. Someone heading for the bubble's right side to open Activity can end up interrupting the agent's run instead. Before, Stop lived in a separate popup row, so this risk didn't exist. Two related notes:

  • With a short status (for example, just the avatar and "Working"), the 6rem Stop area plus the fade covers most of the bubble on hover, so the status disappears exactly when you're looking at it.
  • Some small options: a short reveal delay or fade-in, so a click that lands right as the pointer arrives still opens Activity; or keeping Stop's container from covering the text when the bubble is narrow.

I'm not calling this a blocker. Flagging it for design sign-off, since accidentally stopping an agent costs the user its in-progress work.

@baxen baxen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 AI-agent review (ART, for @baxen). I'm approving on the assumption that the points below get fixed before merge. Opening Activity directly for one agent and putting Stop inline is a good simplification. The shared Stop action also removes the copy that was in the popup.

Please fix

  1. Focus is lost in both directions of the one-to-several change. This adds to the Codex and BasilBot thread. When going from one agent to two with focus on the inline Stop, the button unmounts and focus falls to the page. Going from two agents to one, the popup closes, and its final focus now points at the new wrapper, which can't take focus. Moving focus to the activity bubble before either swap would fix both cases. A test that focuses "Stop Blossom" before the second agent starts would cover it.
  2. The spoken label ignores a pending stop. The bubble shows "Stopping…", but the label still announces the normal status. Agrees with the inline note.
  3. Give the new wrapper its own class. It currently reuses the bubble button's class so it inherits the bubble rules. Three more rules then undo padding and gap on the wrapper and move them onto the inner button. One of those undo rules only wins because it comes later in the file. A wrapper class of its own would remove the overrides and the order dependence. In the same area, the hover rule for showing Stop isn't limited to this component. It should be scoped to the controls container.
  4. Keep the Stop browser test focused on behavior. It now runs light/dark × two widths and writes screenshots on every run. That's acceptance evidence living inside a regression test. Several checks also find elements by walking up to parent elements, so they break if the page structure changes. Please move the screenshots out and target elements by role or label.

Separately: the earlier note about the hidden Stop leaving an empty tail at rest doesn't apply to the latest commit, because Stop now overlays the text instead of taking space.

klopez4212 and others added 2 commits November 9, 2026 15:22
Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
@klopez4212

klopez4212 commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor Author

🤖 Addressed all four required items in a23f432 and 6e295bd:

  • Focus transfers from removed inline Stop/popup controls to the surviving activity button in both one-to-several transitions. Regression failed before the fix; passes now, with a separate no-focus-theft check.
  • Pending Stop is included in the accessible name; fail-then-pass regression added.
  • The wrapper has its own class, with no button-reset overrides; reveal selectors are scoped to the overlay container.
  • The Stop browser case uses named region/button targets and retains keyboard dispatch, pointer hit testing and stable-width checks. Removed its screenshot/theme/viewport matrix; existing acceptance screenshots stay in the PR description.

63 component tests and push hooks pass. The two browser files passed 28 cases, with the two Stop cases passing on rerun after correcting their semantic hover target. Full local Vitest also passed: 1,039 files / 20,186 tests (8 files / 23 tests skipped). Hosted CI is running. The two matching inline blocker threads are resolved. The optional hover design question remains separate.

— Terp

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e295bd44f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/buzz-help.md
alongside current step details when available. With Reduce Motion enabled,
the dots stay still. Open the live indicator or expand recorded work to view
the agent’s activity or **Stop** the running request. The live indicator
the dots stay still. For one agent, click the live activity bubble to open

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add the required DCO sign-off

When this commit is submitted in a PR, the hosted DCO check will fail because the commit message has no Signed-off-by trailer. Recreate the commit with the required sign-off before submission.

AGENTS.md reference: AGENTS.md:L272-L278

Useful? React with 👍 / 👎.

Co-authored-by: Terp <5856f6900e8e0a4e0ea1f4f8d2ee33e4753d2119bc122f94ecafc660b46c0511@buzz.block.builderlab.xyz>
Signed-off-by: klopez4212 <klopez4212@gmail.com>
@klopez4212
klopez4212 merged commit 9596cd3 into main Nov 10, 2026
135 of 137 checks passed
@klopez4212
klopez4212 deleted the kennylopez-agent-activity-hover branch November 10, 2026 03:09
gilgtm added a commit that referenced this pull request Nov 10, 2026
…nt-progress-rows

* origin/main: (53 commits)
  fix(search): make Command F search the Bestie conversation (#3084)
  fix(plugins): keep failed update checks on the plugin's Settings row instead of a toast (#3088)
  Show single-agent Stop on the activity bubble (#3140)
  fix: support explicit hosted browser origins (#3149)
  fix: keep Codex tool namespace descriptions bounded (#3128)
  fix(messages): show "New messages" in channels longer than one page (#3071)
  Keep shared agent guidance generic (#3134)
  fix(typing): a thread reply also ends the agent's channel-level typing (#3148)
  Stream protected evidence across agent runtimes (#2882)
  feat(identity): consolidate key and account controls (#3069)
  Add portrait-colored foil and animated agent card reveal (#3144)
  NEXUS-4190: Disclose unavailable saved Solo choices (#2544)
  docs: mark the plugin API as preview and say which parts are steady (#3129)
  Open the app with a saved key; check the account's key in the background (#3064)
  fix(federated-identity): name only communities that require NIP-FI as affected by a switch (#3072)
  feat(pairing): signed in with Builderlab, say to get the app instead of pairing (#3039)
  Show Add agent button on shared agent previews (#3131)
  NEXUS-4224: Preserve peer unread intent during automatic reads (#2641)
  fix(plugins): review a pinned link to an installed plugin's source as an update (#3024)
  perf(profiles): resume verified-profile batches after a planned renewal (#2293)
  ...

Signed-off-by: Gil Birman <gil@squareup.com>

# Conflicts:
#	docs/buzz-help.md
damienrj added a commit that referenced this pull request Nov 10, 2026
…rminal-font-picker

* 'main' of https://github.com/block/buzz-app: (168 commits)
  Unify Membership sharing and live roster updates (#3147)
  fix(activity): show one working cue per agent request (#3166)
  Introduce opt-in first-agent setup (#2804)
  fix(codex): drop the security-review sign-in prompt from harness defaults (#3188)
  feat(releases): publish desktop download manifest (#3154)
  fix(mcp): preserve current attachments across edits (#2937)
  fix(agents): call the Claude and Codex first-run download "the integration" (#3165)
  chore(goose): bump bundled goose-acp to v1.58.1 (#3161)
  Revert "ci: use larger GitHub runners for Rust and browser journeys (#3090)" (#3180)
  Show Goose's unset thinking level as Default, not Off (#3124)
  ci(release): publish stable and beta desktop releases from v tags (#3150)
  fix(messages): end the New messages hold when no repair can sample (#3169)
  fix(search): make Command F search the Bestie conversation (#3084)
  fix(plugins): keep failed update checks on the plugin's Settings row instead of a toast (#3088)
  Show single-agent Stop on the activity bubble (#3140)
  fix: support explicit hosted browser origins (#3149)
  fix: keep Codex tool namespace descriptions bounded (#3128)
  fix(messages): show "New messages" in channels longer than one page (#3071)
  Keep shared agent guidance generic (#3134)
  fix(typing): a thread reply also ends the agent's channel-level typing (#3148)
  ...

Signed-off-by: damienrj <damien@squareup.com>

# Conflicts:
#	src-tauri/Cargo.toml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants