Files
Lumotia/docs/issues/poll-inference-channel-fatality.md
Jake 592b894790 docs(cr-2026-04-22): add release-blocker issue tracker at docs/issues/
Captures the 12 items from docs/code-review-2026-04-22.md that
must land before v0.1 ships. One markdown file per issue with:
severity, path:line, problem description, acceptance criteria,
fix scope, and dependency graph.

Split by severity:
- 3 CRITICAL: live-session race, migration atomicity, transcript-
  profile FK
- 9 MAJOR: monolith refactor, channel-fatality, capture worker
  join, runtime capabilities, macOS App Nap, decoder error prop,
  LLM prompt preflight, keystore thread-safety, hotkey device
  filter

README.md indexes them with a fix-order dependency graph and a
fish-shell script for bulk-converting to GitHub issues once `gh`
CLI is installed and authed. Deferred step by user decision —
markdown tracker is authoritative until then.
2026-04-22 09:46:08 +01:00

1.1 KiB

RB-05 MAJOR: poll_inference treats IPC listener loss as session-fatal

Severity: MAJOR Path: src-tauri/src/commands/live.rs:721-813 Source: 2026-04-22 code review Labels: release-blocker, major, ipc-lifecycle

Problem

result_channel.send(...) propagates with ?, so closing the listening frontend or reloading the webview terminates the whole live session — even when capture and inference are healthy. Tauri channel-lifecycle events are not transcription failures and should not kill the worker.

Acceptance

  • Channel-send errors log a warning and continue the session (if recoverable) or terminate gracefully (if the session was going to end anyway).
  • The distinction between "transcription failed" and "no listener to report to" is explicit in the error handling.
  • Regression test: simulate channel close mid-session, assert the worker keeps capturing and produces a valid WAV file.

Fix scope

Medium. Isolated to poll_inference and its error handling; interacts with RB-04 (monolith refactor) since that restructures the same function family.

Dependencies

  • Related: RB-04.