feat(desktop): auto-enable huddle transcription for agents - #3180
Draft
johnmatthewtennant wants to merge 9 commits into
Draft
feat(desktop): auto-enable huddle transcription for agents#3180johnmatthewtennant wants to merge 9 commits into
johnmatthewtennant wants to merge 9 commits into
Conversation
johnmatthewtennant
marked this pull request as ready for review
July 27, 2026 19:18
johnmatthewtennant
force-pushed
the
jtennant/auto-transcribe-agent-huddles
branch
from
July 27, 2026 19:51
67b4842 to
55a674c
Compare
johnmatthewtennant
marked this pull request as draft
July 27, 2026 19:53
johnmatthewtennant
force-pushed
the
jtennant/auto-transcribe-agent-huddles
branch
4 times, most recently
from
July 28, 2026 14:45
9e14c31 to
7b152da
Compare
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
Signed-off-by: John Tennant <jtennant@squareup.com>
johnmatthewtennant
force-pushed
the
jtennant/auto-transcribe-agent-huddles
branch
from
July 28, 2026 19:31
7b152da to
2ff30f3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Agents in Buzz huddles need voice transcription so they can receive and act on spoken conversation. Transcription previously depended on a user enabling it manually, including when an agent was already present when the huddle started.
The huddle participant role is authoritative. A participant is treated as an agent only when membership identifies it with the
botrole or the existing agent identity model identifies the DM participant as an agent.Live staging validation also exposed two enrollment defects. Starting a huddle from an agent DM did not enroll the agent, and manually adding an agent who was already an active parent-channel member produced a role-mutation warning after ephemeral enrollment had succeeded. Dictation and transcription worked after selecting the correct input device, so this PR does not change the speech-to-text model path.
Summary
Automatically enable Buzz voice transcription once when the first agent is present in a huddle, including initial membership hydration and reconnects.
Explicit user control remains authoritative. If a user enables or disables transcription, reconnects and UI remounts preserve that choice. When the last agent leaves, Buzz leaves the current transcription state unchanged.
Starting a huddle from an agent DM now enrolls that agent automatically. Adding an agent who is already active in the parent channel preserves the existing role and completes without a warning.
Changes
Related issue
N/A.
Screenshots
Not applicable. This changes huddle behavior without adding a new visual surface.
Reviewer-reproducible examples
Live red reproduction on the published Desktop settings and streaming build, PR #3257 at
93602d9e013684d716d80d14ed8d1ee87a986b6f:Added to huddle, but parent channel failed: relay returned 400 Bad Request: invalid: only owners/admins may change an active member's role.Deterministic green reproduction from a fresh checkout of this branch:
Observed output:
The huddle spec verifies authoritative initial agent hydration, one explicit OFF command, remount persistence, unchanged state after last-agent removal, a newer event winning over delayed hydration, agent-DM start payload enrollment, and an idempotent parent-membership result closing the add-agent dialog without a warning. The profile scenarios verify owned agents expose the huddle action and the start payload includes the agent pubkey.
Remaining live branch smoke:
BlackHole 2chinput.The staging reproduction confirmed that dictation works with the correct input device. The remaining smoke validates this branch's native app, live relay membership, and audio-device integration together.
Testing
Run against head
2ff30f3d87af50624a718595037d4a5fd909fc2b:All commands passed. After rebasing onto current main, the persona-sync integration spec passed 2/2, the huddle smoke spec passed 4/4, and the four focused profile/mention scenarios passed 4/4. The huddle E2E spec had also passed three consecutive runs after its mocked event channel was made deterministic.
just desktop-tauri-testused the repository-owned sidecar setup and ran 1,838 tests. It reported 1,812 passed, 14 ignored, and 12 failed because the restricted local environment denied local socket binds. None touched huddle code.The existing Builderbot, Kalvin, and minimize-diff reviews found no actionable issues at
481a73dbc88708b3af6e76ac0cb9df3027c8cf04. Dead Code found no issues on the rebased implementation head. Timeless Comments identified the membership-refresh comment as under-documenting its auto-enable side effect; the comment was corrected, and the final selective rerun found zero issues on2ff30f3d87af50624a718595037d4a5fd909fc2b.