mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
When the user manually sends (Enter/click) while recording, the submit flow already calls stopRecording(). However, queued data channel messages could still fire handleRealtimeEvent after the peer connection teardown began, writing stale transcript text back into the now-empty composer. Fix: pass the run ID captured at startRecording into the data channel message handler closure. handleRealtimeEvent now checks activeRunIdRef against the captured run ID and drops events from stale runs. This guarantees that once stopRecording() increments the run counter, no further transcript events from that session can mutate composer state.
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