Skip to content

docs: note that addressable channel events scope by d, not h - #4103

Merged
tlongwell-block merged 1 commit into
block:mainfrom
TanskiSzymon:docs/channel-tag-scoping
Aug 1, 2026
Merged

docs: note that addressable channel events scope by d, not h#4103
tlongwell-block merged 1 commit into
block:mainfrom
TanskiSzymon:docs/channel-tag-scoping

Conversation

@TanskiSzymon

Copy link
Copy Markdown
Contributor

The channel scoping note in AGENTS.md reads as universal:

Channel scoping: Channels use h tags (NIP-29 group tag), not e tags.
Filters and queries must scope to h tags when operating within a channel.

It holds for events inside a channel, but not for the addressable events that
describe one. kind:39000, kind:39001 and kind:39002 carry the channel id in
their d tag, which is what get_channels already reads.

Taking the existing wording at face value while working on kind:39002 produces
an empty result rather than an error, since those events do carry h tags in
other flows, so the mistake is quiet and costs a debugging cycle. Came up while
working on #4023.

Four lines, no behaviour change.

The channel scoping rule reads as universal, but it holds only for events
inside a channel. Addressable events that describe a channel (kind:39000,
39001, 39002) carry the channel id in their `d` tag, which is what
`get_channels` already relies on.

Reading the existing wording as covering kind:39002 costs a debugging cycle:
membership events do have `h` tags in some flows, so the mistake produces an
empty result rather than an error.

Signed-off-by: Szymon Tanski <szymontanski8@gmail.com>
@TanskiSzymon
TanskiSzymon requested a review from a team as a code owner August 1, 2026 12:02

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

Verified against the emitted NIP-29 discovery event shapes and channel lookup paths: kinds 39000/39001/39002 are parameterized-replaceable, carry the channel UUID in d, and get_channels discovers membership via kind 39002 #p then extracts d. The clarification is accurate.

@tlongwell-block

Copy link
Copy Markdown
Collaborator

Thanks for the contribution, @TanskiSzymon!

@tlongwell-block
tlongwell-block merged commit 3d7712c into block:main Aug 1, 2026
3 checks passed
tlongwell-block pushed a commit to Kampe/buzz that referenced this pull request Aug 1, 2026
* origin/main: (98 commits)
  docs: note that addressable channel events scope by d, not h (block#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (block#2613)
  fix(desktop): keep thread-open affordance in archived channels (block#4012)
  docs: add one-click Railway deploy for a hosted relay (block#2733)
  fix(desktop): point Oh My Pi preset at omp.sh (block#3516)
  fix(mesh): stop restarting a busy or loading shared-compute node (block#3909)
  fix(desktop): preserve first huddle speech (block#3962)
  feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNGs with optional NIP-44 lock (block#3278)
  fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events (block#3999)
  feat(relay): accept kind:30621 multi-repo projects at ingest (block#3171)
  fix(release): preserve main in desktop PR body (block#3979)
  chore(release): release Buzz Desktop version 0.5.3 (block#3972)
  fix(release): require exact-head approval for desktop tags (block#3973)
  fix(release): make desktop tagging squash-safe (block#3965)
  Revert "chore(release): release Buzz Desktop version 0.5.3" (block#3960)
  docs(nips): add single-coordinate manual-unread override layer and verification model to NIP-RS (block#2864)
  chore(release): release Buzz Desktop version 0.5.3
  fix(release): make immutable desktop release operable (block#3943)
  feat(desktop): import local Pocket voices (block#3259)
  fix(desktop): open profiles from avatars (block#3751)
  ...

Signed-off-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@buzz.block.builderlab.xyz>
joahg added a commit to joahg/buzz-dev-mode that referenced this pull request Aug 1, 2026
…-style

* origin/main:
  fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (block#3998)
  docs: note that addressable channel events scope by d, not h (block#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (block#2613)
  fix(desktop): keep thread-open affordance in archived channels (block#4012)

Signed-off-by: Joah Gerstenberg <joah@squareup.com>
tellaho added a commit that referenced this pull request Aug 1, 2026
* origin/main: (24 commits)
  perf(relay): serve relay-membership checks from the read replica (#4124)
  chore(deps): bump nostr-relay-pool for RUSTSEC-2026-0224 (#4139)
  docs(nostr): document #h requirement for live reaction subscriptions (#3487)
  docs(chart): fix ArgoCD example for native OCI sources (full artifact repoURL + path) (#3426)
  docs(readme): clarify which release asset to download per platform (#3481)
  fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (#3998)
  docs: note that addressable channel events scope by d, not h (#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (#2613)
  fix(desktop): keep thread-open affordance in archived channels (#4012)
  docs: add one-click Railway deploy for a hosted relay (#2733)
  fix(desktop): point Oh My Pi preset at omp.sh (#3516)
  fix(mesh): stop restarting a busy or loading shared-compute node (#3909)
  fix(desktop): preserve first huddle speech (#3962)
  feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNGs with optional NIP-44 lock (#3278)
  fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events (#3999)
  feat(relay): accept kind:30621 multi-repo projects at ingest (#3171)
  fix(release): preserve main in desktop PR body (#3979)
  chore(release): release Buzz Desktop version 0.5.3 (#3972)
  fix(release): require exact-head approval for desktop tags (#3973)
  fix(release): make desktop tagging squash-safe (#3965)
  ...

Signed-off-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@buzz.block.builderlab.xyz>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
tellaho added a commit that referenced this pull request Aug 1, 2026
…onfig

* origin/main:
  perf(relay): serve relay-membership checks from the read replica (#4124)
  chore(deps): bump nostr-relay-pool for RUSTSEC-2026-0224 (#4139)
  docs(nostr): document #h requirement for live reaction subscriptions (#3487)
  docs(chart): fix ArgoCD example for native OCI sources (full artifact repoURL + path) (#3426)
  docs(readme): clarify which release asset to download per platform (#3481)
  fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (#3998)
  docs: note that addressable channel events scope by d, not h (#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (#2613)
  fix(desktop): keep thread-open affordance in archived channels (#4012)
  docs: add one-click Railway deploy for a hosted relay (#2733)
  fix(desktop): point Oh My Pi preset at omp.sh (#3516)
  fix(mesh): stop restarting a busy or loading shared-compute node (#3909)
  fix(desktop): preserve first huddle speech (#3962)
  feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNGs with optional NIP-44 lock (#3278)
  fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events (#3999)
  feat(relay): accept kind:30621 multi-repo projects at ingest (#3171)
  fix(release): preserve main in desktop PR body (#3979)
  chore(release): release Buzz Desktop version 0.5.3 (#3972)
  fix(release): require exact-head approval for desktop tags (#3973)
  fix(release): make desktop tagging squash-safe (#3965)

Signed-off-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@buzz.block.builderlab.xyz>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
tellaho added a commit that referenced this pull request Aug 2, 2026
- Incorporate upstream desktop changes required by the pre-push overlap guard
- Preserve the link preview thumbnail stabilization work on the updated base

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>

* origin/main: (26 commits)
  docs: formal spec for remote agents and their management (#3748)
  fix(nip-oa): accept raw Nostr tag form in parse_json_array (#4203)
  perf(relay): serve relay-membership checks from the read replica (#4124)
  chore(deps): bump nostr-relay-pool for RUSTSEC-2026-0224 (#4139)
  docs(nostr): document #h requirement for live reaction subscriptions (#3487)
  docs(chart): fix ArgoCD example for native OCI sources (full artifact repoURL + path) (#3426)
  docs(readme): clarify which release asset to download per platform (#3481)
  fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (#3998)
  docs: note that addressable channel events scope by d, not h (#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (#2613)
  fix(desktop): keep thread-open affordance in archived channels (#4012)
  docs: add one-click Railway deploy for a hosted relay (#2733)
  fix(desktop): point Oh My Pi preset at omp.sh (#3516)
  fix(mesh): stop restarting a busy or loading shared-compute node (#3909)
  fix(desktop): preserve first huddle speech (#3962)
  feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNGs with optional NIP-44 lock (#3278)
  fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events (#3999)
  feat(relay): accept kind:30621 multi-repo projects at ingest (#3171)
  fix(release): preserve main in desktop PR body (#3979)
  chore(release): release Buzz Desktop version 0.5.3 (#3972)
  ...

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
kaalph pushed a commit to kaalph/buzz that referenced this pull request Aug 21, 2026
- Incorporate upstream desktop changes required by the pre-push overlap guard
- Preserve the link preview thumbnail stabilization work on the updated base

Co-authored-by: Taylor Ho <taylorkmho@gmail.com>

* origin/main: (26 commits)
  docs: formal spec for remote agents and their management (block#3748)
  fix(nip-oa): accept raw Nostr tag form in parse_json_array (block#4203)
  perf(relay): serve relay-membership checks from the read replica (block#4124)
  chore(deps): bump nostr-relay-pool for RUSTSEC-2026-0224 (block#4139)
  docs(nostr): document #h requirement for live reaction subscriptions (block#3487)
  docs(chart): fix ArgoCD example for native OCI sources (full artifact repoURL + path) (block#3426)
  docs(readme): clarify which release asset to download per platform (block#3481)
  fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (block#3998)
  docs: note that addressable channel events scope by d, not h (block#4103)
  docs: fix stale kind count, quick-start numbering, and empty Further Reading (block#2613)
  fix(desktop): keep thread-open affordance in archived channels (block#4012)
  docs: add one-click Railway deploy for a hosted relay (block#2733)
  fix(desktop): point Oh My Pi preset at omp.sh (block#3516)
  fix(mesh): stop restarting a busy or loading shared-compute node (block#3909)
  fix(desktop): preserve first huddle speech (block#3962)
  feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNGs with optional NIP-44 lock (block#3278)
  fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events (block#3999)
  feat(relay): accept kind:30621 multi-repo projects at ingest (block#3171)
  fix(release): preserve main in desktop PR body (block#3979)
  chore(release): release Buzz Desktop version 0.5.3 (block#3972)
  ...

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
BradGroux pushed a commit to BradGroux/buzz that referenced this pull request Aug 23, 2026
)

The channel scoping note in `AGENTS.md` reads as universal:

> **Channel scoping**: Channels use `h` tags (NIP-29 group tag), not `e`
tags.
> Filters and queries must scope to `h` tags when operating within a
channel.

It holds for events inside a channel, but not for the addressable events
that
describe one. kind:39000, kind:39001 and kind:39002 carry the channel id
in
their `d` tag, which is what `get_channels` already reads.

Taking the existing wording at face value while working on kind:39002
produces
an empty result rather than an error, since those events do carry `h`
tags in
other flows, so the mistake is quiet and costs a debugging cycle. Came
up while
working on block#4023.

Four lines, no behaviour change.

Signed-off-by: Szymon Tanski <szymontanski8@gmail.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