From ecc6155a590587ed6381eecca5987341b1eb866b Mon Sep 17 00:00:00 2001 From: axlrod Date: Fri, 14 Aug 2026 05:06:56 +0100 Subject: [PATCH] docs: sharpen W1 clear-when for our owner-only config A 2026-08-13 comment on block/buzz#2987 traces relayAgentIsSharedWithUser and shows respond_to: owner-only can never be mentionable regardless of whether #2987 lands, because the eligibility check has no owner field to compare against. The actual fix for our config is #5484 (sources NIP-OA ownership from kind:0 so owner-only has something to compare), plus #5483 for the directory to read kind:10100 at all. Both open, not merged. --- docs/upstream-watch.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/upstream-watch.md b/docs/upstream-watch.md index 7350f59..5f46fcf 100644 --- a/docs/upstream-watch.md +++ b/docs/upstream-watch.md @@ -18,7 +18,7 @@ this file is that nobody has to rediscover *why* a line of config is there. | ID | Workaround | Watch | Clear when | |---|---|---|---| -| W1 | Agent publishes `kind:0` only, so it is mentionable but unbadged | [#2987](https://github.com/block/buzz/issues/2987), [#3277](https://github.com/block/buzz/issues/3277) | `shouldHideAgentFromMentions` reaches its invocability branch | +| W1 | Agent publishes `kind:0` only, so it is mentionable but unbadged | [#2987](https://github.com/block/buzz/issues/2987), [#3277](https://github.com/block/buzz/issues/3277), [#5484](https://github.com/block/buzz/pull/5484), [#5483](https://github.com/block/buzz/pull/5483) | For our `owner-only` config specifically: #5484 merges (adds owner comparison to `relayAgentIsSharedWithUser`) and #5483 merges (directory reads `kind:10100` in addition to `kind:30177`) | | W5 | Relay runs from the upstream container image, not built from source | not filed | Upstream publishes the frontend assets, or a source build produces the web surface | | W6 | Postgres needs `enableTCPIP` + a loopback `trust` rule | gated on W5 | The relay no longer runs in a container | @@ -33,6 +33,23 @@ unreachable ([#2987](https://github.com/block/buzz/issues/2987), open). So a headless agent publishes `kind:0` only. It appears as an ordinary member: unbadged, but mentionable and fully functional. That is what this module assumes. +**#2987 landing is not sufficient for our config.** A 2026-08-13 comment on that issue +traced `relayAgentIsSharedWithUser` (`desktop/src/features/agents/lib/agentAutocompleteEligibility.ts`) +and found it has exactly two paths that return true: `allowlist` with a matching pubkey, or +`anyone` with a shared channel. `respond_to: "owner-only"` - what `agent.env` sets here - +falls through to `false` unconditionally, for every viewer including the owner, because +neither `RelayAgentInfo` nor `RelayAgent` carries an owner field to compare against. Fixing +the invocability branch (#2987's stated Clear when) does not touch this: `owner-only` would +still never be offered in @-mention autocomplete. + +[#5484](https://github.com/block/buzz/pull/5484) is the actual fix - it sources verified +NIP-OA ownership from `kind:0` profiles so `owner-only` has an owner to compare against. +[#5483](https://github.com/block/buzz/pull/5483) matters too: it reads the union of +`kind:10100` and `kind:30177` for the directory, which is the other half of "publishing +kind:10100 helps a headless seat" - without it, publishing 10100 populates a directory +Desktop's own mention picker still doesn't consult for external agents. Both are open, not +yet merged, as of this writing. + Two things that look like solutions and are not: - `buzz agents draft-create` does not register an existing identity - it proposes a *new*