block / block/buzz

buzz-acp: reconcile kind 10100 profiles for manually hosted agents

Open
#5,928 1 comment 2 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

### Summary

Desktop 0.5.12+ correctly fails closed when a remote agent lacks a current kind `10100` directory profile, but manually hosted `buzz-acp` identities never publish that event. After upgrading Desktop, those agents disappear from mention autocomplete and typed `@name` text is sent without a `p` tag, so the harness cannot wake.

### Reproduction

1. Provision a headless agent using relay membership, channel bot membership, a kind `0` profile, and `buzz-acp`.
2. Do not publish kind `10100` (the legacy/manual provisioning path).
3. In Desktop 0.5.14, type the agent name in a channel composer.
4. The agent is absent from autocomplete; literal text is signed without its recipient tag.

Relay membership, channel membership, profile lookup, relay ingestion, and harness delivery all remain healthy. Explicit CLI sends with `--mention ` still wake the agent.

### Confirmed compatibility details

- Publishing a complete kind `10100` restores Desktop autocomplete and signed-recipient delivery without restarting Desktop.
- For `respond_to=allowlist`, the public `respond_to_allowlist` must include the configured owner even though `buzz-acp` admits the owner implicitly at runtime. Desktop evaluates the directory allowlist literally.
- Runtime `owner-only` must likewise be projected to an equivalent one-owner public allowlist for remote directory admission.
- Replaceable profiles must be reconciled as complete documents. Publishing only `channel_add_policy` can erase the fields Desktop needs.

### Proposed fix

Have `buzz-acp` reconcile its complete kind `10100` profile at startup after channel discovery: preserve unknown fields, publish actual channel names/IDs and effective response policy, include the implicit owner, retain or explicitly configure `channel_add_policy`, skip unchanged profiles, and keep failures non-fatal.

This was reproduced against Desktop 0.5.14 after the mention authorization hardening in #5681, and verified with a live headless canary.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.