Block's Buzz: AI agents with their own keys, and one table that can't be split

225,000 lines of Rust. 1,880 merged pull requests. A release every single day. And the project is under five months old. Buzz is a self-hostable team workspace from Block where an AI agent is a member with its own cryptographic key — not a bot with an API token bolted on. It's built as a Nostr relay, so every message, reaction, workflow step, review approval and git event is a signed event in one append-only log. This is a mostly positive review. CI genuinely runs its 3,576 tests, the dependency policy is enforced, and 1,880 pull requests are merged against 350 open. That is a well-run project and the video says so. It also has an events table that can only ever be one partition, message ordering that trusts a client-supplied timestamp to within fifteen minutes, and no path to erasure at all. All three are cited to file and line below. ━━━ CHAPTERS ━━━ 0:00 What Block built 0:39 The idea, in plain terms 1:44 The health check that cannot fail 2:09 Nostr, briefly 2:27 Is it well run? 3:12 How I checked all this 3:39 Architecture, and that 404 4:20 Three things I would fix 6:59 Where the docs and the code disagree 7:43 Four things I got wrong 8:08 Verdict ━━━ THE PROJECT ━━━ Repo: https://github.com/block/buzz Vision: https://github.com/block/buzz/blob/ma... Architecture: https://github.com/block/buzz/blob/ma... Nostr protocol: https://github.com/nostr-protocol/nips ━━━ SOURCES — EVERY CLAIM, CITED ━━━ Host-header community binding — crates/buzz-relay/src/tenant.rs:1-16 The documented liveness check — deploy/compose/README.md:54 Fresh-install domain — deploy/compose/.env.example:9-10 MAXVALUE catch-all partition — migrations/0001_initial_schema.sql:251-252 Partition manager runs at boot — crates/buzz-relay/src/main.rs:173 42P17 overlap handled, correctly — crates/buzz-db/src/partition.rs:135-147 No repair path — grep for DETACH / SPLIT / DROP events_p returns 0 hits Unbounded COUNT query — crates/buzz-db/src/event.rs:598-737 ...and the row limit deliberately removed — crates/buzz-relay/src/handlers/count.rs:245 15-minute client-signed ordering — crates/buzz-relay/src/handlers/ingest.rs:1506 NIP-42 uses 60 seconds — crates/buzz-auth/src/nip42.rs:35 received_at exists but never orders — migrations/0001_initial_schema.sql:228 Last-write-wins authority — crates/buzz-db/src/lib.rs:3355-3357 Soft delete everywhere — crates/buzz-db/src/event.rs:797-844 Media has no delete verb — crates/buzz-media/src/auth.rs:12-19 Audit log has no delete path — crates/buzz-audit/src/lib.rs:3-18 Admin plane is GET-only — crates/buzz-relay/src/api/admin/mod.rs:407-428 Privacy policy config — .env.example:231-233 Redis limiter covers reads — crates/buzz-relay/src/connection.rs:599-602 ...which the docs deny — ARCHITECTURE.md:390 NIP-09 handled but unadvertised — crates/buzz-relay/src/nip11.rs:15 Tests genuinely run in CI — .github/workflows/ci.yml Dependency policy gate — .github/workflows/ci.yml:840 ━━━ FIGURES (GitHub API, 26 July 2026) ━━━ 11,772 stars, 929 forks, 62 watchers 243 open issues, 350 open PRs, 1,880 merged PRs — a ratio of 5.4 to 1 Created 6 March 2026. 1,827 commits in 52 weeks, 1,453 of them in the last 12 46 contributors, busiest at 29% of commits. Daily releases, reviewed at v0.4.26 225,377 lines of Rust, 26 crates, 3,576 test functions, 24 migrations ━━━ WHAT I DID NOT DO ━━━ The install probe ran the documented docker-compose quickstart inside a throwaway container, off the public ghcr.io image. I did not sign in to anything, did not give the project any credentials, and did not run it on my own machine. I did not reproduce the partition problem on a long-running instance. That finding is read from the schema, the partition manager and the absence of any repair path — not from a filled table. ━━━ CORRECTIONS ━━━ Four things I initially flagged turned out to be wrong on a closer read, and they're in the video at 7:43. Anything else wrong here gets a pinned comment and a note in this description.