fix(desktop): ingest remote-owned channel agents - #4964
Open
cmyk wants to merge 5 commits into
Open
Conversation
Signed-off-by: Schrödinger’s Cat <62413+cmyk@users.noreply.github.com>
Signed-off-by: Reinhold <310554180+reinhold-ph@users.noreply.github.com>
Signed-off-by: Reinhold <310554180+reinhold-ph@users.noreply.github.com>
Signed-off-by: Reinhold <310554180+reinhold-ph@users.noreply.github.com>
Signed-off-by: Reinhold <310554180+reinhold-ph@users.noreply.github.com>
19 tasks
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.
What this fixes
Hermes supports Buzz through its documented integration option 3: the native Buzz Gateway platform. In that setup Hermes runs remotely as a normal Hermes Gateway — not as a process launched or managed by Buzz Desktop. This keeps Hermes's full tools, memory, sessions, skills, approvals, and cron behaviour while letting people talk to it from Buzz.
That remote architecture exposed a gap in Buzz Desktop. The Gateway identity could join a channel, exchange messages, and publish encrypted Activity, but Desktop primarily recognized agents from its local managed-agent list or relay directory. A remote-owned Gateway agent could therefore work in the channel while still being omitted from observer ingestion and its profile Channels section, and completed tray activity could fall back to Agent .
This PR is the Buzz Desktop part of the end-to-end integration. It discovers agent candidates from authoritative channel membership, but trusts them only when their relay profile says they are an agent and names the current Buzz user as owner. It then includes that verified remote-owned agent in Activity ingestion, profile channel projection, and tray-name hydration—without pretending that Desktop manages the remote Hermes process.
Companion work
The complete path spans three components:
Related but not a dependency of this ingestion fix: merged #4913, allow shared agent mentions, supplies the channel-authorized
@Hermesautocomplete/mention path used during live acceptance. The older competing mention implementation #4602 is superseded by #4913.The native Gateway's broader messaging reliability work is tracked separately in Hermes PRs NousResearch/hermes-agent#74823 (newly joined channel discovery) and NousResearch/hermes-agent#75049 (active-thread mention policy). Those improve option-3 operation but are not code dependencies of this Desktop patch.
Summary
Related Issue
N/A — no matching open issue found.
Before & After Screenshots
Before: a remote-owned channel agent could be absent from observer ingestion and its profile Channels section; completed tray activity could retain an
Agent <pubkey>fallback.After — remote-owned Hermes profile lists its authoritative channels:

After — authoritative Channel Members shows the human owner and Hermes:

After — Hermes activity reaches the Activity pane and executes the terminal tool:

After — the channel receives the exact terminal result:

After — the macOS menu-bar Recent section shows

Hermesrather than a pubkey fallback:Validation
Current-upstream candidate:
a847f38886e9db0829470847ab593a39ddb87d33pnpm --dir desktop test— 4,363 passedpnpm --dir desktop typecheckpnpm --dir desktop check:file-sizespnpm --dir desktop build:e2egit diff --check origin/main...HEADManual UI acceptance used acceptance-only SHA
2508b4f3, which combined the then-current version of this patch with the separate mention-autocomplete candidate. The screenshots above exercise only this PR's remote-agent ingestion, profile, Activity, channel-response, and tray behavior. This candidate was rebased through currentmainatccdaa161; its stable aggregate patch ID exactly matches the reviewed candidate, and upstream changed none of this patch's ten touched paths. After the docs-only rebase, the 21 focused unit tests, typecheck, Biome, file-size gate, diff check, and focused Playwright regression were rerun successfully.