From 394cdb8abe1890666d31cec5f6682288c939443e Mon Sep 17 00:00:00 2001 From: Vinay Potluri Date: Mon, 3 Aug 2026 23:15:28 -0700 Subject: [PATCH] docs(README): Improve Documentation for better readability Signed-off-by: Vinay Potluri --- NOSTR.md | 2 +- README.md | 2 +- docs/multi-tenant-relay.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/NOSTR.md b/NOSTR.md index cce70f2f77..494a09090e 100644 --- a/NOSTR.md +++ b/NOSTR.md @@ -54,7 +54,7 @@ PGPASSWORD=buzz_dev psql -h localhost -U buzz -d buzz -c \ | **Add user (kind:9000)** | ✅ | Open: any user, subject to target's `channel_add_policy` (`owner_only`/`nobody` can block). Private: owner/admin only. Self-add bypasses agent policy but not private-channel auth. | | **Remove user (kind:9001)** | ✅ | Self-remove allowed (with last-owner guard). Removing others: owner/admin only. | | **Edit group metadata (kind:9002)** | ✅ | `name`/`about` tags: owner/admin. `topic`/`purpose` tags: any member. | -| **Admin delete event (kind:9005)** | ✅ | Event author can always delete own. Otherwise owner/admin required. Target must be in same channel. | +| **Admin delete event (kind:9005 - REVIEW)** | ✅ | Event author can always delete their own event. Otherwise owner/admin required. Target must be in same channel. | | **Group deletion (kind:9008)** | ✅ | Owner only. | | **Leave group (kind:9022)** | ✅ | Any member. Last-owner guard prevents orphaned groups. | | **Group metadata (kind:39000)** | ✅ | Relay-signed; always `d`, `name`, `closed` tags; `about` only if description non-empty; `private` if applicable; `hidden` for DM channels | diff --git a/README.md b/README.md index 56439f00bc..6fff7e38fa 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ See [here](https://engineering.block.xyz/blog/run-your-own-buzz-relay) for detai Don't build from source, and don't use the OSS release — use the internal build. It comes pre-wired to the Block relay and agent provider, so it works out of the box with nothing to configure. -Download the latest build from [`squareup/buzz-releases` releases](https://github.com/squareup/buzz-releases/releases/latest) and install it. +Download the latest build from the [`squareup/buzz-releases`](https://github.com/squareup/buzz-releases/releases/latest) releases page and install it. ### I want to build & run from source diff --git a/docs/multi-tenant-relay.md b/docs/multi-tenant-relay.md index 85de728b12..9d563ab469 100644 --- a/docs/multi-tenant-relay.md +++ b/docs/multi-tenant-relay.md @@ -7,7 +7,7 @@ This document specifies the data and authorization model that lets one shared Postgres instance, served by N stateless relay processes, host M independent **communities** without one community observing or acting on another, and gives -a formal proof of its safety properties. It proves two families of property: +a formal proof of its safety properties. It proves two families of properties: **isolation** — a community is *non-interfering* with every other community across the relay's logical interface (query results, authorization decisions, emitted errors, and audit-chain contents) — and **authorization soundness** — no @@ -443,7 +443,7 @@ predicate fail closed rather than leak (Theorem I4). at `:84-86` references this obligation as "P3." P-RESOLVE is the load-bearing *application* assumption for channel-bearing events -and P-RESOLVE-HOST is its channel-less counterpart — together the fence the +and P-RESOLVE-HOST is its channel-less counterpart — together they fence the `h`-tag and claimed-community adversary cannot circumvent. A-RLS-1..5 are the load-bearing *backstop*. @@ -478,7 +478,7 @@ load-bearing *backstop*. - **I5 (Admission fence).** Channel membership and channel-less read capability exist only for actors admitted to *that* community. The NIP-43 allowlist is the `admittedMembers` relation keyed on `(community, actor)`; `AddMembership` and - every channel-less read are gated on `IsAdmitted(c, a)`, and `Inv_AdmissionFence` + every channel-less read is gated on `IsAdmitted(c, a)`, and `Inv_AdmissionFence` quantifies over every membership *and* every recorded channel-less read, requiring same-community admission on both — the channel-less branch additionally binding `HostCommunity[host] = community`, so the host axis is fenced here too.