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

fix(activity): show a remote agent's Buzz send as its reply - #3025

Merged
baxen merged 4 commits into
mainfrom
mbot/remote-activity-send-style
Nov 9, 2026
Merged

baxen merged 4 commits into
mainfrom
mbot/remote-activity-send-style

Conversation

@baxen

@baxen baxen commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

A remote (kgoose) agent's buzz__send showed up in the Activity view as an ordinary tool row. Local agents' transcripts (goose, codex, claude, pi) show it as the agent's styled reply.

Cause

kgoose titles tool calls with goose's fully qualified extension__tool name (BuzzToolDisplay.kt: tools outside the sandbox extension get rawTitle). The shared ACP projection in activity-transcript.ts doesn't recognize Buzz message tools, so it never turned them into message items. Only the per-adapter local transcripts do that.

Change

In activity-transcript.ts, a completed tool call titled buzz__send / buzz__reply_in_subthread (or Claude's mcp__buzz__… form) whose rawInput.text is non-empty now becomes a message item with posted: true. It keeps the tool's position and time. Failed or still-running sends stay as tool rows, so failures remain visible. That includes a send that completed with rawOutput.isError (how buzz-agent reports MCP application errors), which keeps its error output. isMessageTool is the source of truth for which tools post. I moved it into a new buzz-mcp/message-tools.ts, which session-tools.ts re-exports. Importing session-tools directly would pull every Buzz tool, and docs/buzz-help.md, into the renderer wherever the transcript is used. CI's flake-check graph test caught this.

This also applies to local agents whose activity comes through ACP with Claude Code's mcp__buzz__send titles. They get the same styled reply, which is the intended behavior.

Tests

  • New case in activity-transcript.test.ts: covers the kgoose sequence (running tool_call without args, then a completion with args), mcp__buzz__reply_in_subthread, a failed send, and a non-message buzz__read.
  • vitest run on the activity-transcript, ActivityTranscript, agent-activity, builderlab Activity, current-activity and work-stop tests: 9 files, 149 tests passing at 8277a86f4. At 402d9e303, the session-tools, acp, goose, codex, claude-code and pi transcript suites also pass (54 files, 1480 tests), along with tests/integration/flake-check.test.mjs and tsc.
  • I pushed with LEFTHOOK=0. The pre-push full suite failed 30 unrelated tests (MessageReactions, InboxPage, builderlab index, and others) on 5s timeouts at load average ~52 on the shared machine. Each one I re-ran alone still timed out the same way, and none of them touch this code. I'm relying on CI for the full suite.

baxen and others added 2 commits November 8, 2026 13:35
kgoose titles remote tool calls with goose's extension__tool name, so a
buzz__send arrived as an ordinary tool row. Completed Buzz message tools
now read as posted agent messages, as the local transcripts show them.

Co-authored-by: mbot <3754f8729004d95654c46dbab3129e4ab9ef05cc2534e2a3fbfc155983bd637b@buzz.block.builderlab.xyz>
activity-transcript.ts imported isMessageTool from session-tools, which
pulls in every Buzz tool (and docs/buzz-help.md) wherever the transcript
renders. The message tool names now live in message-tools.ts, which
session-tools re-exports.
@baxen
baxen marked this pull request as ready for review November 8, 2026 22:23
@baxen
baxen requested a review from a team as a code owner November 8, 2026 22:23
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 8, 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-08T22:26:30.758233Z 402d9e3 Draft marked ready
ℹ️ 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.

@wesbillman wesbillman 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.

🤖 Star Lord’s automated source review via Wes’s account, with independent systems/lifecycle, correctness/security, and product/UI coverage from Rocket, Mantis, and Groot.

Reviewed 402d9e303f9721263bf6f138b6f425c3bed49c9e against 5b7df025f67d9d74faaa29e80514f797a120e3a5.

The inline P2 identifies a failed send that this projection can label Posted while hiding its error.

[P2] Remove the private tracker reference from the public PR description. The opening line exposes an internal issue identifier and tracker URL. This repository is public, and its open-source boundary excludes internal ticket keys and coordination links. Remove that reference and retain the self-contained public problem description; keep the internal cross-reference in the private tracker.

Source-only review: no tests or app workflows executed. The author’s reported full-suite failures and runtime behavior remain unverified. The linked issue could not be read because the connector was unavailable. No attached images were present in the inspected PR description.

buzz-agent reports an MCP application error as a completed call with
rawOutput.isError, so completed alone doesn't mean the message posted.
Such a send stays a tool row and keeps its error output.
@baxen

baxen commented Nov 8, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 I removed the internal tracker reference from the PR description. The inline P2 is fixed in 52656f2.

@wesbillman wesbillman 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.

🤖 Star Lord’s automated follow-up source review via Wes’s account, with independent coverage from Rocket, Mantis, and Groot.

Reviewed 52656f24ad443ce28f1e0627986e9b7f4e999115 against unchanged base 5b7df025f67d9d74faaa29e80514f797a120e3a5, focusing on the repair since 402d9e303f9721263bf6f138b6f425c3bed49c9e and retaining the earlier review’s coverage.

Both prior P2 findings are addressed. Explicit MCP application errors are retained per call and prevent Posted conversion, preserving the tool’s error output; the new regression covers completed-plus-error remaining a tool. The private tracker reference has also been removed from the PR description. No new actionable findings in this follow-up.

Source-only: no tests or app workflows were executed. The author’s reported test results/full-suite failures and actual runtime behavior remain unverified.

@tellaho

tellaho commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

🤖 Drip design review at 52656f24ad443ce28f1e0627986e9b7f4e999115, reviewed together with #3030 at 26e8432f1c033367475333f82b1c8a7faa671030.

Intent: make a remote agent’s posted reply read as its voice in Activity.

No must-fix design findings in the source review. Successful sends reuse the existing agent reply disclosure and Posted label; running, failed, and explicit MCP-error sends retain their tool row and output.

Evidence: reply conversion, existing reply presentation.

Not checked: no attached screenshots were available; tests, app rendering, both themes, narrow/wide widths, enlarged text, keyboard interaction, and live remote-agent delivery were not exercised.

… contract

Message tools are read by title, rawInput.text and rawOutput.isError and
shown as posted messages, so the contract says so.

Co-authored-by: ART <ea39c1c8acf57180161ef4ba4ed68abf8589f5291956b909a5aa991fc66664ca@buzz.block.builderlab.xyz>
Signed-off-by: Bradley Axen <baxen@squareup.com>
@baxen
baxen merged commit c8b4354 into main Nov 9, 2026
58 of 59 checks passed
@baxen
baxen deleted the mbot/remote-activity-send-style branch November 9, 2026 00:57
aharvard added a commit to aharvard/buzz-app that referenced this pull request Nov 9, 2026
Picks up c202642 (block#2837), which fixes the ThreadPanel catch-up test
that fails on every run of a merge with the older main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* origin/main: (155 commits)
  deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 (block#3077)
  fix(communities): accept invite links and bare hosts in Join a community (block#2412)
  fix(builderlab): open a remote agent's Activity on the conversation it was opened from (block#3051)
  refactor(builderlab): keep capabilities fresh in the session (block#3003)
  feat(moderation): show invite links as a QR code (block#3029)
  Keep Create agent's Model row readable and give Goose a Thinking row (block#2673)
  Join a community right after creating it in Settings (block#2991)
  Let new Solo chats start temporary by default (block#2874)
  fix(messages): fill a screen that a head of folded agent activity leaves empty (block#3037)
  fix(search): search saved conversations while the community is offline or connecting (block#2724)
  test(agents): make version-history date assertion time-zone independent (block#3010)
  feat(relay): gate artifact writers on NIP-AR support (block#2735)
  fix(channels): open the dock's community switcher from Personal space (block#2806)
  fix(members): keep the list's place after a member change (block#2818)
  fix(channels): keep a launcher's side panel open on Close all tabs (block#2803)
  fix(activity): show a remote agent's Buzz send as its reply (block#3025)
  refactor(settings): move external identity authorization to security (block#3032)
  test(typeahead): serve the fixture pages as a build so cold loads fit (block#2793)
  feat(channels): list unread top-level mentions in sidebar Activity, and count only unread mentions on the Inbox card (block#2722)
  fix(solo): delete a removed workspace's settings after the groups write (block#2819)
  ...

Signed-off-by: Andrew Harvard <aharvard@squareup.com>
gilgtm added a commit that referenced this pull request Nov 9, 2026
…pover-card-layout-7eeda1e0

* origin/main: (128 commits)
  deps: accept RUSTSEC-2026-0459 for libsqlite3-sys 0.38, move rmcp to 3.9.0 (#3077)
  fix(communities): accept invite links and bare hosts in Join a community (#2412)
  fix(builderlab): open a remote agent's Activity on the conversation it was opened from (#3051)
  refactor(builderlab): keep capabilities fresh in the session (#3003)
  feat(moderation): show invite links as a QR code (#3029)
  Keep Create agent's Model row readable and give Goose a Thinking row (#2673)
  Join a community right after creating it in Settings (#2991)
  Let new Solo chats start temporary by default (#2874)
  fix(messages): fill a screen that a head of folded agent activity leaves empty (#3037)
  fix(search): search saved conversations while the community is offline or connecting (#2724)
  test(agents): make version-history date assertion time-zone independent (#3010)
  feat(relay): gate artifact writers on NIP-AR support (#2735)
  fix(channels): open the dock's community switcher from Personal space (#2806)
  fix(members): keep the list's place after a member change (#2818)
  fix(channels): keep a launcher's side panel open on Close all tabs (#2803)
  fix(activity): show a remote agent's Buzz send as its reply (#3025)
  refactor(settings): move external identity authorization to security (#3032)
  test(typeahead): serve the fixture pages as a build so cold loads fit (#2793)
  feat(channels): list unread top-level mentions in sidebar Activity, and count only unread mentions on the Inbox card (#2722)
  fix(solo): delete a removed workspace's settings after the groups write (#2819)
  ...
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.

4 participants