mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
1. P1 — Require relay membership for billable /transcribe/session even on open relays. Added require_relay_member() that always checks actual membership (with NIP-OA fallback) regardless of the BUZZ_REQUIRE_RELAY_MEMBERSHIP setting. Prevents arbitrary NIP-98 signers from minting metered OpenAI sessions on the operator's bill. 2. P2 — Keep stop control usable while recording. DictationButton now allows the stop action even when the composer is disabled — only *starting* a new recording is blocked. Additionally, useComposerDictation auto-stops the active session when the composer becomes disabled mid-recording (e.g. channel becomes read-only). 3. P2 — .expect() already removed in prior commit (openai_client() returns Result and propagates errors). No additional change needed. 4. P2 — Stop dictation before edit saves already addressed in prior commit (stopDictationRef.current() at line 540). No additional change needed.
Buzz
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition