Skip to content

fix(desktop): ingest remote-owned channel agents - #4964

Open
cmyk wants to merge 5 commits into
block:mainfrom
Peakhunter:fix/remote-owned-channel-agent-ingestion-current
Open

fix(desktop): ingest remote-owned channel agents#4964
cmyk wants to merge 5 commits into
block:mainfrom
Peakhunter:fix/remote-owned-channel-agent-ingestion-current

Conversation

@cmyk

@cmyk cmyk commented Aug 5, 2026

Copy link
Copy Markdown

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.

Hermes native Buzz Gateway (option 3)
  ├─ ordinary signed Buzz messages
  └─ encrypted owner-only Activity events
                    │
                    ▼
              Buzz relay
                    │
                    ▼
              Buzz Desktop
       Activity · profile Channels · tray Recent

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 @Hermes autocomplete/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

  • ingest observer events from remote-owned agents discovered through authoritative channel membership, while requiring an agent profile owned by the current user
  • batch and cache profile hydration so large member sets stay within relay query limits
  • show authoritative channel membership in remote-agent profiles and hydrate human-readable names in the macOS tray's Recent section
  • keep the native tray payload narrow by removing the agent pubkey after the frontend resolves the display label
  • cover ownership filtering, query chunking, channel projection, tray hydration, and the live profile flow with regression tests

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:
Screenshot 2026-08-05 at 21 43 18 Remote-owned-agent ingestion:tray PR profile pane hermes channles

After — authoritative Channel Members shows the human owner and Hermes:
Screenshot 2026-08-05 at 21 47 01 Remote-owned-agent ingestion:tray PR Channel members

After — Hermes activity reaches the Activity pane and executes the terminal tool:
Screenshot 2026-08-05 at 22 07 11 Remote-owned-agent ingestion:tray PR activity

After — the channel receives the exact terminal result:
Screenshot 2026-08-05 at 22 14 41 Remote-owned-agent ingestion:tray PR channel response

After — the macOS menu-bar Recent section shows Hermes rather than a pubkey fallback:
Remote-owned-agent ingestion:tray PR Menu bar showing recent Hermes

Validation

Current-upstream candidate: a847f38886e9db0829470847ab593a39ddb87d33

  • pnpm --dir desktop test — 4,363 passed
  • pnpm --dir desktop typecheck
  • Biome check on all changed Desktop files
  • pnpm --dir desktop check:file-sizes
  • pnpm --dir desktop build:e2e
  • focused Playwright profile regression — 1 passed
  • git diff --check origin/main...HEAD
  • DCO trailers present on all five commits
  • added-line credential scan — clean

Manual 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 current main at ccdaa161; 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.

cmyk and others added 5 commits August 5, 2026 20:55
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>
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.

2 participants