Skip to content

Add remote agent owner attestation fn to host service - #532

Merged
loganj merged 2 commits into
mainfrom
jsib-261002-remote-agent-attestation
Oct 2, 2026
Merged

loganj merged 2 commits into
mainfrom
jsib-261002-remote-agent-attestation

Conversation

@jsibbison-square

@jsibbison-square jsibbison-square commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Why: Remote services generate agent keys outside Buzz's local agent-creation flow and need a way to get a nip-oa proof via a plugin to register the owner with the agent.

What: Expose identity_prepare_remote_agent_authorization and ctx.host.prepareRemoteAgentAuthorization(agentPubkey, signal?) so the signed-in owner can prepare a reusable NIP-OA tag for such a key without creating a local agent or selecting a community.

The result is ["auth", ownerPubkey, "", signature], signed over the NIP-OA domain and exact agent pubkey. The native identity owner and pinned development-broker identity each reject wrong-owner, malformed and self-attestation requests. Native IPC remains restricted to the main WebView, and the host reuses nativeIdentityEnabled() to select the same identity policy as the rest of the app. Cancellation discards late results; an issued proof remains reusable. The caller owns submitting the proof and signing the final agent event.

Scope is native identity/IPC wiring, the host service, one development-broker endpoint, colocated tests. Beekeeper consumers, deployment, registration and UI are excluded.

Out of scope:

  • There is discussion of triggering a confirm popup when this function is called so the owner can check permit the creation of nip-0a for an agent. That is out of scope for now and added after this pr is merged if desired.

Validation:

  • Manually tested local agent creation still works
  • bin/pnpm exec vitest run src/features/host/service.test.ts dev/relay-broker-api.test.mjs src/features/identity/identity.test.tsx: 118 passed, including browser routing with the live flag unset, shared identity policy, and real host → HTTP broker → cryptographic verification without a community or upstream requests.
  • bin/cargo test -p buzz-foundation --locked identity::tests: 10 passed, including production IPC → identity signer → signature verification with fixture keys.
  • bin/cargo test -p buzz-foundation --locked native_command_permissions_allow_only_main_webview: passed, covering main, guest and remote-origin permissions.
  • Required hooks passed: security scan and destination policy, staged formatting/lint, TypeScript and related unit tests, design checks, and workspace Clippy (--locked --all-targets -- -D warnings).
  • Independent agent review: 9.2/10 on the foundation change; follow-up review of the shared identity policy and test refinements found no blockers.
  • No browser cases added or removed. Protocol, cancellation and permission contracts use localized service/native tests.

Signed-off-by: Jarrod Sibbison <jsibbison@squareup.com>
Signed-off-by: Jarrod Sibbison <jsibbison@squareup.com>
@jsibbison-square
jsibbison-square marked this pull request as ready for review October 2, 2026 10:18
@jsibbison-square jsibbison-square changed the title Add remote agent owner attestation foundation Add remote agent owner attestation fn to host service Oct 2, 2026

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

No changes requested. The owner/key binding, native IPC permissions, broker identity routing and late-result cancellation are consistent with this proof-only scope.

Star Lord automated source review via Wes’s account; head 0d2625fc3bdd60a26630f654d7de46aa2f57814d / base 75e6dc396431f188901b671975a9d4d3ae9f5599. Source-only: I ran no tests or app; hosted CI and DCO passed at this head, but Windows validation was skipped and attended native/remote-agent workflow acceptance remains unverified.

@loganj
loganj merged commit 6be39fd into main Oct 2, 2026
22 checks passed
@loganj
loganj deleted the jsib-261002-remote-agent-attestation branch October 2, 2026 18:00
johnmatthewtennant pushed a commit that referenced this pull request Oct 2, 2026
* origin/main: (21 commits)
  Add remote agent owner attestation fn to host service (#532)
  fix(build): pin Rust 1.98.1 to unblock macOS 27 agent builds (#529)
  main fix: Pi model test ETXTBSY flake (#513)
  fix(composer): remove phantom text-field focus outlines (#519)
  fix(relay): use writer reads for channel confirmations (#501)
  feat(channels): unify header actions and inline details editing (#487)
  Show app-managed agents working in the sidebar (#539)
  Add recoverable hosted community deletion (#403)
  Add verified Inbox evidence and exact edit closure (#495)
  Animate Buzz startup through initial content readiness (#534)
  Polish profile avatar picker and custom colors (#533)
  Add Send to channel for authored thread replies (#531)
  Allow plugins to send managed-agent registration events (kind 30177) (#535)
  Fix Pi and Goose environment overrides (#517)
  feat(ui): Switch shared icons to Tabler (#523)
  Improve message media contrast and thumbnail fill (#521)
  Document unified inventory and verify focused import and compact-row acceptance (#293)
  fix(ux): clarify Pi installation and setup errors (#511)
  Count unread replies only in conversations you are part of (#471)
  Animate the terminal welcome with a compact hex wordmark (#508)
  ...

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
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