Files
buzz/desktop
npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 18f7a373d0 fix(dictation): scope STT shutdown drain to dictation + stop PTT on blur
Two Codex P2 findings on PR #1511:

- stt_engine.rs: the shutdown drain + final flush ran for every SttEngine,
  including the huddle wrapper. Leaving a huddle / disabling transcription
  calls shutdown() then drops the pipeline (Drop joins the worker), so
  draining the queue and decoding the trailing buffer could block huddle
  teardown even though the huddle generation guard discards the transcript.
  Gate the drain + final flush behind a new SttEngineConfig.flush_on_shutdown
  flag: true for dictation (preserves the last-words fix), false for huddle
  (fast no-final-flush teardown, as before).

- AppShell.tsx: push-to-talk dictation only stopped on keyup, so if the
  WebView lost focus before \u2318D was released (Cmd-Tab, clicking another app,
  OS focus change), the key-up event never fired and the mic kept recording.
  Add blur + visibilitychange handlers that dispatch buzz:dictation-key-up
  when the key is still held.
2026-07-11 16:20:30 +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