### News
- **0:00 Marmot v2: protocol redraft, native clients, archived Flutter app**
The marmot-protocol organization opened darkmatter for a v2 protocol draft and OpenMLS-backed CGKA engine, plus darkmatter-ios and darkmatter-android native clients. The original Flutter Whitenoise is archived as whitenoise-archive while MDK remains the deployed implementation until the draft converges. MIP-01 monolithic group data splits into versioned app components, and cgka-engine separates transport and persistence from the MLS state machine with Tamarin convergence proofs.
- **5:17 Chama v2–v3.1: standalone P2P escrow updates**
Chama shipped seventeen releases from v2.0.0 through v3.1.0 with holder-only Shamir share encryption, arbiter substitution, global community routing, dispute-deadline arbitration, and v3.0.0 end-to-end trade notifications. v3.1.0 redraws the trade room around a Reserved → Locked → Settled spine and adds per-seller storefronts for curated swaps, loanbooks, and bills without BTCPay or Zaprite.
- **7:52 Coracle Hosting: paid relay service + open-source Caravel stack**
Hodlbod announced Coracle Hosting on June 3, a paid community-relay service powered by open-source Caravel billing and zooid multi-relay runtime, with recurring Lightning via NWC or card, optional LiveKit and Blossom integration, and planned Flotilla deep integration for managed infrastructure.
### Releases
- **9:16 Angor v0.2.29–v0.2.30: mainnet default + funding test**
Angor v0.2.30 flips the default network to mainnet in PR #893, with mobile create-project flow in PR #889. v0.2.29 adds a 3-user UAT funding test over 10 rounds in PR #881 and an Angor CLI and MCP server plan in PR #792.
- **10:13 Sprout v0.3.15: ephemeral channel TTL refresh + ACP slash commands**
Sprout v0.3.15 extends ephemeral channel TTL on unarchive in PR #902, adds mobile custom emojis in PR #906, fixes multi-word display name and NIP-27 mention extraction in PR #905, and forwards slash commands to ACP connectors in PR #919.
- **11:03 Wisp v1.1.1: Spark wallet integration + nsec paste guard**
Wisp v1.1.1 adds Spark wallet Connect UI in PR #548, a system-wide nsec1 paste guard, QR-scan login with watch-only mode in PR #552, zap messages as mini-posts in PR #559, and web-of-trust thread reply filtering in PR #583.
- **12:21 Nostria v3.1.46: notification rework**
Nostria v3.1.46 reworks the notification counter to count only new notifications since the last view, fixing badge inflation when scrolling loads older items. v3.1.45 fixed a split-payment bug for Lightning and QR payments.
- **12:52 nospeak 1.1.3: ICE restart failover**
nospeak v1.1.3 adds ICE restart on FAILED state for 1-on-1 voice calls, letting WebRTC renegotiate candidates after transient NAT or network changes, and keeps the Android screen on during video calls.
### Project Updates
- **13:22 Amethyst: NIP-32 / NIP-F4 / Tor track (41 PRs)**
Amethyst merged 41 PRs without a release tag, continuing NIP-32 hashtag labeling, NIP-F4 podcast screen, music playlists, Tor self-heal, ephemeral anonymous upload signers, and onchain zaps from last week's unreleased queue.
- **13:55 Damus: relay tracking from OK messages**
Damus merged PR #3786 adding successful OK messages to the post-relay list so relays that acknowledge without delivering events remain visible, plus Profile View fixes in PR #3796 and the v1.17 changelog in PR #3725.
- **14:21 Shopstr: NIP-34 dual-publishing**
Shopstr announced its shopstr repo on ngit as a NIP-34 git collaboration path alongside the primary GitHub development surface, following Mostro as the second major marketplace to dual-publish.
- **14:48 Hermes-Marmot: AI agent gateway over MLS**
hermes-marmot connects the Hermes Agent to Marmot groups via mdk-python, letting users DM an AI agent from any kind 445 MLS client including White Noise, with npub allowlist access control and NIP-59 gift-wrap unwrapping for inbound messages.
### NIP Updates
- **15:47 NIP-67 EOSE completeness hint (PR #2317) — Merged**
PR #2317 adds NIP-67 extending EOSE with an optional `"finish"` third element so relays can signal all stored matches were delivered versus hitting an internal cap.
- **16:43 NIP-50 autocomplete extension (PR #2357) — Merged**
PR #2357 adds `autocomplete:true/false` tokens to NIP-50 search queries so relays can switch between prefix matching for typeahead UIs and full-text scoring.
- **17:32 NIP-GART: emergency alerts + encrypted location broadcasts (PR #2374) — Open**
PR #2374 proposes a privacy-preserving wire format for emergency alerts and location broadcasts to trusted recipient groups, hiding sender identity, membership, and payload from relay operators while keeping events replay-safe and signature-verifiable.
- **18:50 NIP-46 logout method (PR #2373) — Open**
PR #2373 by hzrd149 adds a `logout` method to NIP-46 so clients can explicitly end bunker sessions instead of waiting for timeout.
- **19:46 NIP-95: hybrid relay P2P proposal — Open**
A long-form NIP-95 hybrid relay-P2P specification circulated as a kind 30023 post defining WebRTC direct client connections for live messaging while relays handle stored-event retrieval and offline delivery, not yet filed as a nostr-protocol/nips pull request.
- **20:22 NIP-44 v3: Clave ports the spec (second signer) — Open**
Clave landed an independent NIP-44 v3 port with HKDF, ECDH, padding, and v3-context-aware approval prompts with sensitivity tiers, joining Amber v6.2.0 as a second production signer before the NIPs PR merges.
### NIP Deep Dives
- **21:14 NIP deep dive: NIP-67 (EOSE Completeness Hint)**
NIP-67 fixes silent data loss when clients use `received < limit` heuristics against cap-enforcing relays and eliminates mandatory wasted pagination round trips when a filter matches exactly the relay cap. `["EOSE", "", "finish"]` means complete delivery; a bare EOSE from a NIP-67-advertising relay means more events remain.
- **23:28 NIP deep dive: NIP-50 (Search + autocomplete extension)**
NIP-50 defines the `search` filter field with relay-specific semantics. PR #2357 elevates `autocomplete:true` from relay-private dialect to spec-blessed token for prefix matching on titles and profile typeahead, with graceful fallback when relays treat the token as literal search text.