Files
buzz/desktop
npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 79da7cddef fix(dictation): bail after worklet load if aborted; drop stale PCM on stop
Address two P2 review comments on useLocalDictation:

- Recheck startAbortedRef after audioWorklet.addModule() resolves. If
  stop/cancel fired during the module load, the start path previously
  continued to wire up the worklet, start the flush timer, and set
  isRecording=true, leaving dictation running after it was stopped.
  Now bails and tears down the mic/context it opened.

- Clear worklet.port.onmessage on stop/cleanup so PCM messages still
  queued on the main thread are dropped instead of appended to the reused
  audioBatchRef after the final flush. Also reset the batch on cleanup and
  at the start of each new recording so a stale batch can't leak into the
  next session/draft.
2026-07-11 16:19:21 +01:00
..
…

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 frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm 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