mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Two P2 review findings: 1. Resume the AudioContext before wiring the worklet. The WebView can create the context in the 'suspended' state after the async start path (mic prompt etc.); a suspended context never pulls the worklet's process(), so no PCM reaches push_dictation_audio while the UI shows an active recording. Mirror the huddle capture path and resume() when suspended. 2. Chunk merged PCM under the native 100 KB IPC cap. push_dictation_audio rejects any raw batch over MAX_AUDIO_BATCH_BYTES (100 KB = ~0.53s at 48kHz f32 mono). If the batch timer is delayed (main-thread stall) the merged buffer can exceed the cap, native rejects it, and the .catch silently drops the whole chunk. Split into <=24,000-sample (96 KB) chunks sent in order.
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