Skip to content

docs: fix stale kind count, quick-start numbering, and empty Further Reading - #2613

Merged
tlongwell-block merged 1 commit into
block:mainfrom
SeanGearin:docs-stale-counts-fixes
Aug 1, 2026
Merged

docs: fix stale kind count, quick-start numbering, and empty Further Reading#2613
tlongwell-block merged 1 commit into
block:mainfrom
SeanGearin:docs-stale-counts-fixes

Conversation

@SeanGearin

Copy link
Copy Markdown
Contributor

Problem

Three small documentation defects, each verified against the code at 06e3d82:

  1. ARCHITECTURE.md (Event Kinds section) says buzz-core defines "all 81 kinds". The registry has grown: ALL_KINDS in crates/buzz-core/src/kind.rs now has 127 entries (all unique values). The sentence also says every kind is pub const KIND_*, but registry entries such as RELAY_ADMIN_ADD_MEMBER do not use that prefix.

  2. NOSTR.md Quick Start numbers its steps 1, 2, 3, 5 — there is no step 4. PR refactor: consolidate infra management into justfile + add mobile-dev #797 (2a03851) collapsed the old steps 1-4 (dropping the separate "Start infrastructure" step) into 1-3, but the final "Connect any NIP-29 + NIP-42 client" comment kept its old number 5.

  3. NOSTR.md "Further Reading" is an empty heading — the section's only content (a link to crates/buzz-proxy/README.md) was removed in PR Multi-tenant Buzz relay: community_id as a server-resolved key (comprehensive rewrite) #1321 (14fba21) along with the proxy crate itself, leaving a dangling header as the last line of the file.

Fix

  1. Reworded the ARCHITECTURE.md sentence to defer to crates/buzz-core/src/kind.rs as the source of truth, with the current count (127) as an explicit "at the time of writing" snapshot, so the sentence stays truthful as kinds are added. Also removed the incorrect KIND_*-naming claim.
  2. Renumbered the final quick-start step 5 → 4.
  3. Populated Further Reading with three durable links: the upstream nostr-protocol/nips repo, this repo's docs/nips/ extension documents, and ARCHITECTURE.md.

Docs-only; no code changes, no build impact.

Verification (each claim ~30 seconds)

  • Kind count: python3 -c "import re; s=open('crates/buzz-core/src/kind.rs').read(); m=re.search(r'ALL_KINDS: &\[u32\] = &\[(.*?)\];', s, re.S); print(len([e for e in m.group(1).split(',') if e.strip()]))" → 127. All 127 values are distinct. Non-KIND_* entry example: RELAY_ADMIN_ADD_MEMBER (kind.rs, in ALL_KINDS).
  • Missing step: grep -n '^# [0-9]' NOSTR.md on main shows # 1., # 2., # 3., # 5. in the Quick Start block; git show 2a038515 -- NOSTR.md shows the renumbering that orphaned step 5.
  • Empty section: tail -1 NOSTR.md on main is ## Further Reading with nothing after it; git log -S'buzz-proxy/README' --oneline -- NOSTR.md shows the content removal in 14fba21 (Multi-tenant Buzz relay: community_id as a server-resolved key (comprehensive rewrite) #1321).

Links

@SeanGearin
SeanGearin requested a review from a team as a code owner July 23, 2026 20:13
…Reading

Signed-off-by: Sean Gearin <sgearin@gmail.com>
@SeanGearin
SeanGearin force-pushed the docs-stale-counts-fixes branch from 95ed234 to a0cabf7 Compare July 23, 2026 20:20
@tlongwell-block

Copy link
Copy Markdown
Collaborator

Thanks for the contribution, @SeanGearin!

@tlongwell-block
tlongwell-block merged commit 909a3b2 into block:main Aug 1, 2026
19 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>
munirad7s added a commit to munirad7s/buzz that referenced this pull request Aug 1, 2026
* fix(desktop): keep thread-open affordance in archived channels (block#4012)

## Problem

Threaded replies "disappeared" from archived Buzz channels: the **"N
replies →"** summary row and the huddle-started **"View thread"** button
vanished, so existing threads were unreachable from the channel
timeline. The thread data was intact — this was a UI gate, not data
loss.

## Root cause

A single `onReply` prop drove two distinct affordances:
- the **compose** affordances (hover "Reply" button, inline reply
target), and
- the **view** affordances ("N replies →" summary row, huddle "View
thread").

`ChannelPane` nulls `onReply` on archived channels to keep them
read-only. That correctly hid composing — but also hid the view
affordances, since they keyed off the same prop.

## Fix

Two independent props, one per concern:

- **`onReply`** drives the compose affordances and is gated on
`archivedAt` — nulled on archived channels, so no new replies can be
started.
- **`onOpenThread`** drives the view affordances and is passed
regardless of archived state, threaded `ChannelPane → MessageTimeline →
TimelineMessageList → MessageRow`.

Opening a thread on an archived channel is read-only: the thread panel's
composer is independently gated via `isComposerDisabled` (includes
`archivedAt !== null`, `ChannelPane.tsx:318`).

### Before
<img width="811" height="794" alt="Screenshot 2026-07-31 at 20 26 00"
src="https://github.com/user-attachments/assets/670d9db4-30da-4c6d-97dc-275b5dbebca8"
/>

### After
<img width="873" height="791" alt="Screenshot 2026-07-31 at 20 28 04"
src="https://github.com/user-attachments/assets/88525231-2539-4eb3-8117-8e58a0cb3855"
/>

## Validation

- `pnpm typecheck` clean
- biome lint clean on touched files
- full `pnpm test` suite green (3885 tests)
- pre-push `branch-skew` / `desktop-check` / `desktop-test` hooks passed

Signed-off-by: Trey Wood <treyw@squareup.com>
Co-authored-by: npub14h0tw3uj7jm77qfxcwn6um2s5h55l0klrt2w9srzp3m3yvjc0mpsjsuk6e <addeb74792f4b7ef0126c3a7ae6d50a5e94fbedf1ad4e2c0620c771232587ec3@buzz.block.builderlab.xyz>

* docs: fix stale kind count, quick-start numbering, and empty Further Reading (block#2613)

## Problem

Three small documentation defects, each verified against the code at
06e3d82:

1. **ARCHITECTURE.md (Event Kinds section)** says `buzz-core` defines
"all 81 kinds". The registry has grown: `ALL_KINDS` in
`crates/buzz-core/src/kind.rs` now has **127** entries (all unique
values). The sentence also says every kind is `pub const KIND_*`, but
registry entries such as `RELAY_ADMIN_ADD_MEMBER` do not use that
prefix.

2. **NOSTR.md Quick Start** numbers its steps 1, 2, 3, 5 — there is no
step 4. PR block#797 (2a03851) collapsed the old steps 1-4 (dropping the
separate "Start infrastructure" step) into 1-3, but the final "Connect
any NIP-29 + NIP-42 client" comment kept its old number 5.

3. **NOSTR.md "Further Reading"** is an empty heading — the section's
only content (a link to `crates/buzz-proxy/README.md`) was removed in PR
block#1321 (14fba21) along with the proxy crate itself, leaving a dangling
header as the last line of the file.

## Fix

1. Reworded the ARCHITECTURE.md sentence to defer to
`crates/buzz-core/src/kind.rs` as the source of truth, with the current
count (127) as an explicit "at the time of writing" snapshot, so the
sentence stays truthful as kinds are added. Also removed the incorrect
`KIND_*`-naming claim.
2. Renumbered the final quick-start step 5 → 4.
3. Populated Further Reading with three durable links: the upstream
nostr-protocol/nips repo, this repo's `docs/nips/` extension documents,
and `ARCHITECTURE.md`.

Docs-only; no code changes, no build impact.

## Verification (each claim ~30 seconds)

- Kind count: `python3 -c "import re;
s=open('crates/buzz-core/src/kind.rs').read(); m=re.search(r'ALL_KINDS:
&\[u32\] = &\[(.*?)\];', s, re.S); print(len([e for e in
m.group(1).split(',') if e.strip()]))"` → 127. All 127 values are
distinct. Non-`KIND_*` entry example: `RELAY_ADMIN_ADD_MEMBER` (kind.rs,
in `ALL_KINDS`).
- Missing step: `grep -n '^# [0-9]' NOSTR.md` on main shows `# 1.`, `#
2.`, `# 3.`, `# 5.` in the Quick Start block; `git show 2a03851 --
NOSTR.md` shows the renumbering that orphaned step 5.
- Empty section: `tail -1 NOSTR.md` on main is `## Further Reading` with
nothing after it; `git log -S'buzz-proxy/README' --oneline -- NOSTR.md`
shows the content removal in 14fba21 (block#1321).

## Links

- `crates/buzz-core/src/kind.rs` — `ALL_KINDS` registry (source of truth
for the count)
- PR block#797 / 2a03851 — introduced the step-numbering gap
- PR block#1321 / 14fba21 — emptied the Further Reading section

Signed-off-by: Sean Gearin <sgearin@gmail.com>
Co-authored-by: Sean Gearin <sgearin@gmail.com>

* docs: note that addressable channel events scope by d, not h (block#4103)

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>

* Nest-MCP war still unbenutzt: Vault + n8n verdrahtet, Approval-Loch gefixt (#3)

---------

Signed-off-by: Trey Wood <treyw@squareup.com>
Signed-off-by: Sean Gearin <sgearin@gmail.com>
Signed-off-by: Szymon Tanski <szymontanski8@gmail.com>
Co-authored-by: Trey Wood <edwinjwood3rd@gmail.com>
Co-authored-by: npub14h0tw3uj7jm77qfxcwn6um2s5h55l0klrt2w9srzp3m3yvjc0mpsjsuk6e <addeb74792f4b7ef0126c3a7ae6d50a5e94fbedf1ad4e2c0620c771232587ec3@buzz.block.builderlab.xyz>
Co-authored-by: Sean Gearin <sean@indistinct.ai>
Co-authored-by: Sean Gearin <sgearin@gmail.com>
Co-authored-by: Tansky <108231030+TanskiSzymon@users.noreply.github.com>
munirad7s added a commit to munirad7s/buzz that referenced this pull request Aug 1, 2026
* fix(desktop): keep thread-open affordance in archived channels (block#4012)

## Problem

Threaded replies "disappeared" from archived Buzz channels: the **"N
replies →"** summary row and the huddle-started **"View thread"** button
vanished, so existing threads were unreachable from the channel
timeline. The thread data was intact — this was a UI gate, not data
loss.

## Root cause

A single `onReply` prop drove two distinct affordances:
- the **compose** affordances (hover "Reply" button, inline reply
target), and
- the **view** affordances ("N replies →" summary row, huddle "View
thread").

`ChannelPane` nulls `onReply` on archived channels to keep them
read-only. That correctly hid composing — but also hid the view
affordances, since they keyed off the same prop.

## Fix

Two independent props, one per concern:

- **`onReply`** drives the compose affordances and is gated on
`archivedAt` — nulled on archived channels, so no new replies can be
started.
- **`onOpenThread`** drives the view affordances and is passed
regardless of archived state, threaded `ChannelPane → MessageTimeline →
TimelineMessageList → MessageRow`.

Opening a thread on an archived channel is read-only: the thread panel's
composer is independently gated via `isComposerDisabled` (includes
`archivedAt !== null`, `ChannelPane.tsx:318`).

### Before
<img width="811" height="794" alt="Screenshot 2026-07-31 at 20 26 00"
src="https://github.com/user-attachments/assets/670d9db4-30da-4c6d-97dc-275b5dbebca8"
/>

### After
<img width="873" height="791" alt="Screenshot 2026-07-31 at 20 28 04"
src="https://github.com/user-attachments/assets/88525231-2539-4eb3-8117-8e58a0cb3855"
/>

## Validation

- `pnpm typecheck` clean
- biome lint clean on touched files
- full `pnpm test` suite green (3885 tests)
- pre-push `branch-skew` / `desktop-check` / `desktop-test` hooks passed

Signed-off-by: Trey Wood <treyw@squareup.com>
Co-authored-by: npub14h0tw3uj7jm77qfxcwn6um2s5h55l0klrt2w9srzp3m3yvjc0mpsjsuk6e <addeb74792f4b7ef0126c3a7ae6d50a5e94fbedf1ad4e2c0620c771232587ec3@buzz.block.builderlab.xyz>

* docs: fix stale kind count, quick-start numbering, and empty Further Reading (block#2613)

## Problem

Three small documentation defects, each verified against the code at
06e3d82:

1. **ARCHITECTURE.md (Event Kinds section)** says `buzz-core` defines
"all 81 kinds". The registry has grown: `ALL_KINDS` in
`crates/buzz-core/src/kind.rs` now has **127** entries (all unique
values). The sentence also says every kind is `pub const KIND_*`, but
registry entries such as `RELAY_ADMIN_ADD_MEMBER` do not use that
prefix.

2. **NOSTR.md Quick Start** numbers its steps 1, 2, 3, 5 — there is no
step 4. PR block#797 (2a03851) collapsed the old steps 1-4 (dropping the
separate "Start infrastructure" step) into 1-3, but the final "Connect
any NIP-29 + NIP-42 client" comment kept its old number 5.

3. **NOSTR.md "Further Reading"** is an empty heading — the section's
only content (a link to `crates/buzz-proxy/README.md`) was removed in PR
block#1321 (14fba21) along with the proxy crate itself, leaving a dangling
header as the last line of the file.

## Fix

1. Reworded the ARCHITECTURE.md sentence to defer to
`crates/buzz-core/src/kind.rs` as the source of truth, with the current
count (127) as an explicit "at the time of writing" snapshot, so the
sentence stays truthful as kinds are added. Also removed the incorrect
`KIND_*`-naming claim.
2. Renumbered the final quick-start step 5 → 4.
3. Populated Further Reading with three durable links: the upstream
nostr-protocol/nips repo, this repo's `docs/nips/` extension documents,
and `ARCHITECTURE.md`.

Docs-only; no code changes, no build impact.

## Verification (each claim ~30 seconds)

- Kind count: `python3 -c "import re;
s=open('crates/buzz-core/src/kind.rs').read(); m=re.search(r'ALL_KINDS:
&\[u32\] = &\[(.*?)\];', s, re.S); print(len([e for e in
m.group(1).split(',') if e.strip()]))"` → 127. All 127 values are
distinct. Non-`KIND_*` entry example: `RELAY_ADMIN_ADD_MEMBER` (kind.rs,
in `ALL_KINDS`).
- Missing step: `grep -n '^# [0-9]' NOSTR.md` on main shows `# 1.`, `#
2.`, `# 3.`, `# 5.` in the Quick Start block; `git show 2a03851 --
NOSTR.md` shows the renumbering that orphaned step 5.
- Empty section: `tail -1 NOSTR.md` on main is `## Further Reading` with
nothing after it; `git log -S'buzz-proxy/README' --oneline -- NOSTR.md`
shows the content removal in 14fba21 (block#1321).

## Links

- `crates/buzz-core/src/kind.rs` — `ALL_KINDS` registry (source of truth
for the count)
- PR block#797 / 2a03851 — introduced the step-numbering gap
- PR block#1321 / 14fba21 — emptied the Further Reading section

Signed-off-by: Sean Gearin <sgearin@gmail.com>
Co-authored-by: Sean Gearin <sgearin@gmail.com>

* docs: note that addressable channel events scope by d, not h (block#4103)

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>

* Werkzeugbestand steht jeden Morgen im Brief statt nur auf Zuruf (#59)

---------

Signed-off-by: Trey Wood <treyw@squareup.com>
Signed-off-by: Sean Gearin <sgearin@gmail.com>
Signed-off-by: Szymon Tanski <szymontanski8@gmail.com>
Co-authored-by: Trey Wood <edwinjwood3rd@gmail.com>
Co-authored-by: npub14h0tw3uj7jm77qfxcwn6um2s5h55l0klrt2w9srzp3m3yvjc0mpsjsuk6e <addeb74792f4b7ef0126c3a7ae6d50a5e94fbedf1ad4e2c0620c771232587ec3@buzz.block.builderlab.xyz>
Co-authored-by: Sean Gearin <sean@indistinct.ai>
Co-authored-by: Sean Gearin <sgearin@gmail.com>
Co-authored-by: Tansky <108231030+TanskiSzymon@users.noreply.github.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