Skip to content

feat(cli): add 'buzz agents set-directory' kind:10100 directory publisher - #5878

Open
kevine-pixel wants to merge 3 commits into
block:mainfrom
kevine-pixel:feat/agents-set-directory
Open

feat(cli): add 'buzz agents set-directory' kind:10100 directory publisher#5878
kevine-pixel wants to merge 3 commits into
block:mainfrom
kevine-pixel:feat/agents-set-directory

Conversation

@kevine-pixel

Copy link
Copy Markdown

Summary

  • Adds buzz agents set-directory — a publisher for the kind:10100 agent directory record. Addresses the publisher gap in #5681 mention gate requires kind:10100 fields that nothing publishes — relay-hosted agents are un-mentionable #5869: since fix(desktop): enforce agent mention authorization at send boundaries #5681, the desktop admits a non-managed agent into mention autocomplete/send only when its 10100 content carries channel_ids and respond_to, but the only existing 10100 publisher (buzz channels set-add-policy) writes just {"channel_add_policy": …} — and, because kind:10100 is replaceable, clobbers any richer record. Relay-hosted agents were therefore structurally un-mentionable.
  • The command read-merges the existing record so unrelated fields — notably channel_add_policy, which the relay's handle_agent_profile ingest requires — survive a republish.
  • --name defaults from the identity's own kind:0 display_name/name; --channels-from-membership derives channel_ids from the identity's kind:39002 memberships; --no-channels supports DM-only agents; --respond-to owner-only|allowlist|anyone with --allow <PUBKEY> for allowlists (validated 64-hex, normalized lowercase).
  • The NIP-OA auth tag is injected by the existing sign_event path, unchanged.

Validation

  • Unit tests: merge preserves unrelated fields (channel_add_policy, unknown keys) and overwrites stale directory fields without touching a customized agent_type; subcommand stability guards updated.
  • cargo clippy / cargo fmt clean; full buzz-cli test suite passes (345).
  • Live-validated: 24 production relay-hosted agents republished their records with this command (each signing with its own identity + auth tag); the desktop fix(desktop): enforce agent mention authorization at send boundaries #5681 mention gate then admitted them, confirmed end-to-end by the community owner. The 3 DM-only agents published --no-channels records.

Related: #5869 (publisher gap — this PR), #5870 (directory inspection UI, separate).

🤖 Generated with Claude Code

kevine-pixel and others added 3 commits August 14, 2026 10:50
Clients gating agent mentions on kind:10100 directory evidence (block#5681)
need channel_ids and respond_to in the record content, but the only
existing publisher (channels set-add-policy) writes just
channel_add_policy — and, because 10100 is replaceable, clobbers any
richer record. Relay-hosted agents were therefore un-mentionable.

The new subcommand read-merges the existing record (preserving
channel_add_policy and unknown fields), fills name from the identity's
kind:0 when omitted, and can derive channel_ids from the identity's
own kind:39002 memberships.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: kevin echeverri <kevin.e@fs1inc.com>
…agents

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: kevin echeverri <kevin.e@fs1inc.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: kevin echeverri <kevin.e@fs1inc.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.

1 participant