From 6c1412b7c909de6ad6b66743209d09cc93d55b67 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 20:55:39 +0000 Subject: [PATCH 1/2] docs(changelog): fold post-2026-07-24 work into v1.13.0 notes Adds the BOLT12 payments & zaps (NIP-B1) work, the Buzz Agent Work board / workflow runner, Concord message editing, the Blossom gallery + importer, Cashu P2PK-token claiming, NWC NIP-44/deep-link/notify improvements, wider NIP-50 search indexing, and the geode release pipeline + pluggable event store, plus assorted fixes. Credits dergigi. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_017hmbpUJPxrsN4m85Kwemcw --- docs/changelog/v1.13.00.md | 76 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/docs/changelog/v1.13.00.md b/docs/changelog/v1.13.00.md index fafdcab6ee..a30d951753 100644 --- a/docs/changelog/v1.13.00.md +++ b/docs/changelog/v1.13.00.md @@ -36,6 +36,9 @@ Highlights: confirm-then-pay for paid servers. - Adds **Podcasting 2.0**: shows, episodes, chapters, transcripts, person credits, and per-minute value-for-value Lightning splits. +- Adds **BOLT12 payments and zaps (NIP-B1)**: pay a profile's published BOLT12 + offer, and send self-verifying zaps through a compatible NWC wallet — counted + and shown right alongside Lightning zaps. - Repaints the app around **your chosen accent color**, with font and size options that flow through buttons, badges, and highlights. - Adds **proof-of-work (NIP-13)** publishing and **negentropy (NIP-77)** sync. @@ -106,6 +109,9 @@ Highlights: channel. - Surfaces Concord replies and reactions on the Notifications tab with a community pill. +- Lets authors edit their own channel messages (kind 3302): latest-wins and + non-destructive, so reactions and replies stay attached, and only the original + author's edits take effect. ### Git Collaboration (NIP-34) @@ -170,6 +176,20 @@ Highlights: - Discovers workspaces and DMs via the relay's own kinds, imports workspace channels from a relay in "Find groups", and routes Tor workspaces to clearnet when needed. +- Adds a shared **Agent Work board**: any channel member files a task, upvotes + to reprioritize it, and watches the workspace's agent carry it to a pull + request — folding jobs that ship directly and gated workflow runs into one + board grouped by Needs approval / Working / Up next / Shipped. +- Approves or denies a gated run in place — an "Approve & open PR" step that + authorizes a push and PR but never merges or deploys — with a confirm step, + an approver and workflow-definition picker, and Buzz Agent Persona editors for + model, provider, and runtime. +- Asks before adding you to a channel someone else put you in (Accept / Ignore / + Leave), and narrates channel changes as plain-language system lines ("Bob + added Alice", topic, visibility, and TTL changes, and more). +- Notifies the requester when their agent job finishes or fails, and lets a + self-hosted geode relay be the private Buzz workspace via a member-and-agent + membership policy. ### Notifications @@ -228,13 +248,39 @@ Highlights: - Adds per-episode reactions and NIP-22 comments, a Podcast Bookmarks screen, and value-for-value Lightning splits paid per-minute during real playback. +### BOLT12 Payments & Zaps (NIP-B1) + +- Adds BOLT12 zaps: self-verifying kind-9736 events that prove a real BOLT12 + Lightning payment, carrying a settlement proof instead of relying on an LNURL + receipt. They fold into the same zap total and reactions row as Lightning zaps + — with anonymous and receiptless (pay-only) variants — and only + cryptographically verified proofs count toward the total. +- Publishes and edits your own BOLT12 offer list (kind 10058) from an in-app + editor; the list is cached, kept live, and restored across restarts. +- Pays a recipient's published offer: hand it to an external wallet as a + `bitcoin:?lno=` (BIP21) intent, or pay in-app over a NWC wallet that supports + it. +- Sends zaps over NWC — with new `pay`/`receive` methods + (nostr-wallet-connect/nwc#2) — preferring BOLT12 over Lightning when the + recipient offers it and the wallet supports it, and falling back to a Lightning + zap otherwise. +- Verifies payer proofs cryptographically (payment-hash preimage, invoice and + proof signatures, and BOLT12 merkle reconstruction of selectively disclosed + fields), dimming and not counting a proof that can't be bound to the offer. + ### Wallet & Payments - Adds a Cashu wallet setup wizard: find-or-create with cross-relay discovery, mint suggestions, and a CashuMints screen; the wallet auto-publishes on mint add/remove. +- Claims P2PK-locked Cashu tokens (NUT-11): matches the lock against your wallet + or identity key, redeems all-or-nothing, and gives a clear error when a token + is locked to a key this wallet can't sign for. - Adds a setting to hide the on-chain (Bitcoin) wallet, including from zap buttons. +- Prefers NIP-44 encryption for NWC when the wallet advertises it, adds a NWC-07 + deep-link pairing helper, and posts a tray notification for incoming non-zap + Lightning payments. - Adds a data-usage screen with stat tiles, a trend chart, proportion bars, and a live memory card. @@ -249,6 +295,10 @@ Highlights: - Adds a Blossom media file manager: browse and manage stored blobs with per-file controls, mirror and `/media` toggles, an app-level "Sync all" with progress, and BUD-07 confirm-then-pay mirroring for paid servers. +- Extends the Blossom manager with a gallery grid (video thumbnails and a + full-screen zoomable viewer), a per-file detail sheet, and an importer that + copies blobs from other Blossom servers into yours — falling back to a verified + download-and-reupload when a target has no `/mirror`. - Redesigns the Media Servers screen as a single auto-saving canvas with a reorderable priority list and cached health probes. - Redesigns the bottom-bar setup with a live preview, drag-to-reorder, and real @@ -335,6 +385,14 @@ Highlights: atoms/splits, relay discovery, code snippet, ecash mint, activity, Git diff/status, and more) into shared commons so Desktop and Android render identically. +- Sends pictures in minichat thread replies (encrypted in Concord, plaintext in + public chats), resolves @-mentions in the minichat composer and tray + quick-replies, and adds `p` tags for people cited in kind 9/11/1111 and Buzz + stream messages so mentions notify and resolve. +- Stops the inline audio player from painting over the note below it, and marks + every room type read from the Messages "mark as read" action. +- Fixes numeric HTML entities in link-preview meta tags, and routes kind-39005 by + tag shape so Buzz thread summaries no longer parse as NIP-29 pin lists. - Shortens over-long translated strings across 23 locales and fixes duplicate and CDATA translation issues. @@ -379,6 +437,12 @@ Highlights: the working tree, and `grasp list`/`set` (GRASP server list, kind 10317). - Adds `amy buzz` for block/buzz workspaces (channels, DMs, invite-link redemption), verified against a live Buzz relay. +- Turns `amy` into the Buzz workflow/agent runner: `buzz agent serve`/`up`/ + `doctor` run gated or parallel-backlog agents in isolated git worktrees that + open PRs, and `buzz workflow trigger`/`run`/`approve`/`deny` drive the human + approval gate. +- Adds `amy bolt12` (NIP-B1): decode offers and payer proofs, verify a zap, + get/set a kind-10058 offer list, and a two-step intent → zap send. - Adds the `amy cashu` wallet (NIP-60/61): wallet lifecycle, balance, mint, receive/send (LN / token / nutzap), and maintenance. - Adds `amy admin` (NIP-86 relay moderation) and `amy serve` (run a relay by @@ -420,6 +484,12 @@ Highlights: attestation, NIP-AM agent turn metrics, personas/teams/managed agents, streams, DMs, forums, presence, and moderation), verified against vectors generated by Buzz's own Rust reference. +- Adds the BOLT12 zaps protocol layer (NIP-B1): kind-9736 zaps, kind-9737 zap + intents, kind-10058 offer lists, full spec validation, and a payer-proof + verifier with BOLT12 merkle reconstruction; NWC gains `pay`/`receive` methods. +- Widens NIP-50 search indexing to more event kinds and tag-borne text, and + indexes only the public petname and summary on contact cards (kind 30382), + never the encrypted fields. ## Geode (standalone relay) @@ -440,6 +510,11 @@ Highlights: - Enables a combined tag+kind+pubkey index, a cost-based filesystem-driver pick, and runtime index materialization, with new tag∩author and driver-selection relayBench shapes. +- Ships a release pipeline: a GHCR Docker image, `.deb`/`.rpm` packages with a + bundled JRE and systemd unit, a portable jlink'd tarball, and a Homebrew + formula, plus `--version`/`--help` and a boot smoke test in CI. +- Lets operators pick any Quartz `IEventStore` backend via `[database].backend` + — SQLite (default), filesystem, or a custom store loaded by class name. ## Build & Documentation @@ -463,6 +538,7 @@ Highlights: - @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 - roguehashrate - LubuSeb +- dergigi ## Translations From 9df51641eaa3fe4adac5c2ece82c4b8073c31ce2 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 21:06:24 +0000 Subject: [PATCH 2/2] docs(changelog): split v1.13.0 fold-in notes into shorter sentences Break the newly added BOLT12, Buzz Agent Work board, Blossom, Cashu, NWC, search-indexing, and geode bullets into short verb-first sentences, removing em-dash run-ons to match the changelog house style. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_017hmbpUJPxrsN4m85Kwemcw --- docs/changelog/v1.13.00.md | 96 +++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/changelog/v1.13.00.md b/docs/changelog/v1.13.00.md index a30d951753..57beedf5bd 100644 --- a/docs/changelog/v1.13.00.md +++ b/docs/changelog/v1.13.00.md @@ -36,9 +36,9 @@ Highlights: confirm-then-pay for paid servers. - Adds **Podcasting 2.0**: shows, episodes, chapters, transcripts, person credits, and per-minute value-for-value Lightning splits. -- Adds **BOLT12 payments and zaps (NIP-B1)**: pay a profile's published BOLT12 - offer, and send self-verifying zaps through a compatible NWC wallet — counted - and shown right alongside Lightning zaps. +- Adds **BOLT12 payments and zaps (NIP-B1)**. Pay a profile's published BOLT12 + offer. Send self-verifying zaps through a compatible NWC wallet, counted and + shown alongside Lightning zaps. - Repaints the app around **your chosen accent color**, with font and size options that flow through buttons, badges, and highlights. - Adds **proof-of-work (NIP-13)** publishing and **negentropy (NIP-77)** sync. @@ -109,9 +109,9 @@ Highlights: channel. - Surfaces Concord replies and reactions on the Notifications tab with a community pill. -- Lets authors edit their own channel messages (kind 3302): latest-wins and - non-destructive, so reactions and replies stay attached, and only the original - author's edits take effect. +- Lets authors edit their own channel messages (kind 3302). Latest edit wins, + and it is non-destructive, so reactions and replies stay attached. Only the + original author's edits take effect. ### Git Collaboration (NIP-34) @@ -176,18 +176,18 @@ Highlights: - Discovers workspaces and DMs via the relay's own kinds, imports workspace channels from a relay in "Find groups", and routes Tor workspaces to clearnet when needed. -- Adds a shared **Agent Work board**: any channel member files a task, upvotes +- Adds a shared **Agent Work board**. Any channel member files a task, upvotes to reprioritize it, and watches the workspace's agent carry it to a pull - request — folding jobs that ship directly and gated workflow runs into one - board grouped by Needs approval / Working / Up next / Shipped. -- Approves or denies a gated run in place — an "Approve & open PR" step that - authorizes a push and PR but never merges or deploys — with a confirm step, - an approver and workflow-definition picker, and Buzz Agent Persona editors for + request. Jobs that ship directly and gated workflow runs fold into one board, + grouped by Needs approval / Working / Up next / Shipped. +- Approves or denies a gated run in place. The "Approve & open PR" step + authorizes a push and PR, but never merges or deploys. Adds a confirm step, an + approver and workflow-definition picker, and Buzz Agent Persona editors for model, provider, and runtime. - Asks before adding you to a channel someone else put you in (Accept / Ignore / - Leave), and narrates channel changes as plain-language system lines ("Bob - added Alice", topic, visibility, and TTL changes, and more). -- Notifies the requester when their agent job finishes or fails, and lets a + Leave). Narrates channel changes as plain-language system lines: "Bob added + Alice", topic, visibility, and TTL changes, and more. +- Notifies the requester when their agent job finishes or fails. Lets a self-hosted geode relay be the private Buzz workspace via a member-and-agent membership policy. @@ -251,35 +251,35 @@ Highlights: ### BOLT12 Payments & Zaps (NIP-B1) - Adds BOLT12 zaps: self-verifying kind-9736 events that prove a real BOLT12 - Lightning payment, carrying a settlement proof instead of relying on an LNURL - receipt. They fold into the same zap total and reactions row as Lightning zaps - — with anonymous and receiptless (pay-only) variants — and only - cryptographically verified proofs count toward the total. + Lightning payment. They carry a settlement proof instead of relying on an + LNURL receipt. They fold into the same zap total and reactions row as Lightning + zaps, with anonymous and receiptless (pay-only) variants. Only cryptographically + verified proofs count toward the total. - Publishes and edits your own BOLT12 offer list (kind 10058) from an in-app - editor; the list is cached, kept live, and restored across restarts. -- Pays a recipient's published offer: hand it to an external wallet as a + editor. The list is cached, kept live, and restored across restarts. +- Pays a recipient's published offer. Hand it to an external wallet as a `bitcoin:?lno=` (BIP21) intent, or pay in-app over a NWC wallet that supports it. -- Sends zaps over NWC — with new `pay`/`receive` methods - (nostr-wallet-connect/nwc#2) — preferring BOLT12 over Lightning when the - recipient offers it and the wallet supports it, and falling back to a Lightning - zap otherwise. -- Verifies payer proofs cryptographically (payment-hash preimage, invoice and +- Sends zaps over NWC, using the new `pay`/`receive` methods + (nostr-wallet-connect/nwc#2). Prefers BOLT12 over Lightning when the recipient + offers it and the wallet supports it, and falls back to a Lightning zap + otherwise. +- Verifies payer proofs cryptographically: payment-hash preimage, invoice and proof signatures, and BOLT12 merkle reconstruction of selectively disclosed - fields), dimming and not counting a proof that can't be bound to the offer. + fields. Dims and does not count a proof that can't be bound to the offer. ### Wallet & Payments - Adds a Cashu wallet setup wizard: find-or-create with cross-relay discovery, mint suggestions, and a CashuMints screen; the wallet auto-publishes on mint add/remove. -- Claims P2PK-locked Cashu tokens (NUT-11): matches the lock against your wallet - or identity key, redeems all-or-nothing, and gives a clear error when a token +- Claims P2PK-locked Cashu tokens (NUT-11). Matches the lock against your wallet + or identity key, and redeems all-or-nothing. Gives a clear error when a token is locked to a key this wallet can't sign for. - Adds a setting to hide the on-chain (Bitcoin) wallet, including from zap buttons. -- Prefers NIP-44 encryption for NWC when the wallet advertises it, adds a NWC-07 - deep-link pairing helper, and posts a tray notification for incoming non-zap +- Prefers NIP-44 encryption for NWC when the wallet advertises it. Adds a NWC-07 + deep-link pairing helper. Posts a tray notification for incoming non-zap Lightning payments. - Adds a data-usage screen with stat tiles, a trend chart, proportion bars, and a live memory card. @@ -296,8 +296,8 @@ Highlights: controls, mirror and `/media` toggles, an app-level "Sync all" with progress, and BUD-07 confirm-then-pay mirroring for paid servers. - Extends the Blossom manager with a gallery grid (video thumbnails and a - full-screen zoomable viewer), a per-file detail sheet, and an importer that - copies blobs from other Blossom servers into yours — falling back to a verified + full-screen zoomable viewer) and a per-file detail sheet. Adds an importer that + copies blobs from other Blossom servers into yours. Falls back to a verified download-and-reupload when a target has no `/mirror`. - Redesigns the Media Servers screen as a single auto-saving canvas with a reorderable priority list and cached health probes. @@ -386,13 +386,13 @@ Highlights: diff/status, and more) into shared commons so Desktop and Android render identically. - Sends pictures in minichat thread replies (encrypted in Concord, plaintext in - public chats), resolves @-mentions in the minichat composer and tray - quick-replies, and adds `p` tags for people cited in kind 9/11/1111 and Buzz - stream messages so mentions notify and resolve. -- Stops the inline audio player from painting over the note below it, and marks + public chats). Resolves @-mentions in the minichat composer and tray + quick-replies. Adds `p` tags for people cited in kind 9/11/1111 and Buzz stream + messages, so mentions notify and resolve. +- Stops the inline audio player from painting over the note below it. Marks every room type read from the Messages "mark as read" action. -- Fixes numeric HTML entities in link-preview meta tags, and routes kind-39005 by - tag shape so Buzz thread summaries no longer parse as NIP-29 pin lists. +- Fixes numeric HTML entities in link-preview meta tags. Routes kind-39005 by tag + shape, so Buzz thread summaries no longer parse as NIP-29 pin lists. - Shortens over-long translated strings across 23 locales and fixes duplicate and CDATA translation issues. @@ -437,9 +437,9 @@ Highlights: the working tree, and `grasp list`/`set` (GRASP server list, kind 10317). - Adds `amy buzz` for block/buzz workspaces (channels, DMs, invite-link redemption), verified against a live Buzz relay. -- Turns `amy` into the Buzz workflow/agent runner: `buzz agent serve`/`up`/ +- Turns `amy` into the Buzz workflow/agent runner. `buzz agent serve`/`up`/ `doctor` run gated or parallel-backlog agents in isolated git worktrees that - open PRs, and `buzz workflow trigger`/`run`/`approve`/`deny` drive the human + open PRs. `buzz workflow trigger`/`run`/`approve`/`deny` drive the human approval gate. - Adds `amy bolt12` (NIP-B1): decode offers and payer proofs, verify a zap, get/set a kind-10058 offer list, and a two-step intent → zap send. @@ -486,10 +486,10 @@ Highlights: Buzz's own Rust reference. - Adds the BOLT12 zaps protocol layer (NIP-B1): kind-9736 zaps, kind-9737 zap intents, kind-10058 offer lists, full spec validation, and a payer-proof - verifier with BOLT12 merkle reconstruction; NWC gains `pay`/`receive` methods. -- Widens NIP-50 search indexing to more event kinds and tag-borne text, and - indexes only the public petname and summary on contact cards (kind 30382), - never the encrypted fields. + verifier with BOLT12 merkle reconstruction. NWC gains `pay`/`receive` methods. +- Widens NIP-50 search indexing to more event kinds and tag-borne text. Indexes + only the public petname and summary on contact cards (kind 30382), never the + encrypted fields. ## Geode (standalone relay) @@ -512,9 +512,9 @@ Highlights: relayBench shapes. - Ships a release pipeline: a GHCR Docker image, `.deb`/`.rpm` packages with a bundled JRE and systemd unit, a portable jlink'd tarball, and a Homebrew - formula, plus `--version`/`--help` and a boot smoke test in CI. -- Lets operators pick any Quartz `IEventStore` backend via `[database].backend` - — SQLite (default), filesystem, or a custom store loaded by class name. + formula. Adds `--version`/`--help` and a boot smoke test in CI. +- Lets operators pick any Quartz `IEventStore` backend via `[database].backend`: + SQLite (default), filesystem, or a custom store loaded by class name. ## Build & Documentation