Script
Here is today's Block Buzz Git Updates for Friday August 14th. Buzz Desktop has shipped a major performance fix for Huddles, its voice collaboration feature. Today’s merge isolates live speaker-level data from the app-wide Huddle context. Previously, audio level updates arrived 20 times per second, and each one could trigger re-renders across the whole application—even during silence. In a measured one-person huddle, that meant roughly 41 Channel Screen renders per second. The new design confines those rapid updates to the small set of components that actually display audio meters, cutting the observed rendering load dramatically and helping prevent delayed message hydration and stalled thread panels. [1]
Another important desktop change reduces unnecessary relay traffic. Buzz had subscribed to presence heartbeats for every identity available through the relay—about 2,700 events a minute in one live measurement, accounting for more than 70 percent of readable traffic. The desktop now requests presence only for authors attached to actively viewed queries. It carefully keeps the previous subscription alive until a replacement is confirmed, avoiding gaps during changing views or failed relay connections. That should lower bandwidth, parsing, and IPC overhead without weakening the existing REST-based recovery path. [2]
On mobile, Buzz merged a broad interface and responsiveness polish pass today. Profiles gain poster-first animated avatars that users can tap to control; direct-message headers and agent recipient behavior are being aligned more closely with desktop. The update also improves titled sheets, status editing, and batched relay reads for smoother review builds. Separately, a targeted scroll fix lets a new drag immediately interrupt the channel list’s momentum scrolling, including from transparent screen areas. [3]
Yesterday’s infrastructure work also fixed a serious scale boundary for large channels. Relay member rosters were silently capped at 1,000 people, which could hide channels from later members and break their administrative permissions. Buzz now returns complete rosters and chunks database indexing work to safely handle large snapshots. [4]
The broader pattern is efficient scale: Buzz is moving work closer to where it is needed—whether that means rendering only affected UI, subscribing only to relevant identities, or processing every legitimate member in growing communities. Thank you for listening to Block Buzz Git Updates from The Daily FM. See you tomorrow! [5]
- block/buzz: development activity
...ce. - `HuddleProvider` wraps the entire main app and its context value was an inline object literal — never memoized. Every level tick minted a new context identity, re-rendering **every** `useHuddle()` consumer, including `ChannelScreen` and message rows. **Measured (A/B, silent one-participant huddle, same channel/state):** ~41 sustained ChannelScreen renders/sec unsuppressed vs ~4/sec with only the speaker-level setState suppressed — the 20 Hz path is ~90% of the load. Receipts: `driver-render-counter-unsuppressed.jsonl` / `-suppressed.jsonl` on the rig, verified independently. The same main-thread churn starves the relay client's 16 ms event-flush timer, which is the delayed/bursty message hydration and thread-panel stalls seen alongside the lag. ## Fix (minimal, no behavior change for meters) 1. **Split the high-frequency fields** (`micLevel`, `activeSpeakers`...
- block/buzz: development activity
...able traffic, from approximately 1,300 distinct fleet identities. Most are discarded only after WebSocket, Tauri IPC, and JS parsing. This change applies normal Nostr author filtering at relay fan-out, before those costs. It deliberately does not introduce a relay digest protocol or client-side event batching; relevant-author traffic should be small after scoping, and the existing signed-delta/REST-TTL model remains intact. ## Correctness model - active query observers are the demand source; inactive cached queries retain no authors - replacement opens before old closes and is promoted only after EOSE - timeout/CLOSED rejects and closes the candidate while preserving the last good subscription - rapid A→B→C and A→B→A chur… Files: desktop/src/features/presence/hooks.ts (+40/-29), desktop/src/features/presence/lib/presence.test.mjs (+17/-0), desktop/src/features/pres...
- block/buzz: development activity
..., desktop/src/shared/constants/kinds.ts (+1/-0) #5401 Polish mobile profiles, DMs, and sheets (merged 2026-08-14) ## Summary - add poster-first, tap-to-toggle animated avatars on profile surfaces while preserving transparent/static behavior elsewhere - align mobile DM headers, membership actions, and invisible agent recipient addressing with established desktop semantics - polish titled sheets and status editing, preserve native iOS sheet corners, and batch relay reads to improve review-build responsiveness ## Snapshots <table> <tr> <th>Profile avatar</th> <th>Agent DM header and composer</th> </tr> <tr> <td><img src="https://raw.githubusercontent.com/block/buzz/e8de7495451dbe1a393ab43c5e204ca7425f2ba5/pr-5401--profile-avatar.png" width="360" alt="Mobile profile settings with animated avatar surface"></td> <td><img src="https://raw.githubuserc... - block/buzz: development activity
...truncating at 1,000 members - chunk `event_mentions` inserts inside one transaction so large kind `39002` snapshots remain discoverable by every `p` tag - add a targeted `buzz-admin reconcile-channels --channel <uuid>` force-republish path for stale discovery snapshots - cover a 1,501-member roster, 11,000-tag mention index, and kind `39002` tag construction past member 1,000 ## Why The relay builds NIP-29 discovery and several authorization decisions from `get_members()`, but that helper silently returned only the first 1,000 active members. Desktop then counted the truncated kind `39002` event, while late members could be rejected by roster-scanning member actions. Removing the roster cap exposes PostgreSQL's 65,535 bind-parameter ceiling in mention indexing, so the insert is chunked transactionally to preserve all-or-nothing indexing. The existing reconcilers o...
- block/buzz: development activity
...), desktop/src/features/home/ui/InboxMessageRow.tsx (+4/-1), desktop/tests/e2e/inbox-edit.spec.ts (+78/-1) #5681 fix(desktop): enforce agent mention authorization at send boundaries (merged 2026-08-13) ## Summary - allow channel-member remote/headless agents only with current kind `10100` directory evidence, while stale member identities remain hidden - fail closed while managed/relay directories load, error, or background-refetch across channel, forum, and cached autocomplete surfaces - revalidate agent mention authorization immediately before normal sends and message-edit saves, including after deferred uploads - in owner-only builds, fetch fresh authoritative profile ownership at send time and deny missing, changed-owner, or unavailable proofs - preserve human mention tags when agent authorization is revoked or unknown Supersedes #5536 because its contributor-for...