Land release blocker fixes and workspace cleanup
This commit is contained in:
@@ -4,6 +4,31 @@
|
||||
**Path:** `src-tauri/src/commands/live.rs:721-813`
|
||||
**Source:** [2026-04-22 code review](../code-review-2026-04-22.md)
|
||||
**Labels:** release-blocker, major, ipc-lifecycle
|
||||
**Status:** RESOLVED (2026-04-22)
|
||||
|
||||
## Resolution
|
||||
|
||||
`poll_inference` no longer propagates `result_channel.send(...)` with `?`.
|
||||
Instead, live-result delivery is routed through a small helper that
|
||||
tracks whether the frontend listener has already been lost:
|
||||
|
||||
- First send failure: mark the result listener as unavailable, log a
|
||||
warning, and best-effort send a `LiveStatusMessage::Warning`
|
||||
explaining that transcription will continue in the background until
|
||||
the user stops the session.
|
||||
- Subsequent chunks: skip re-sending to the dead result channel and
|
||||
keep the worker running.
|
||||
|
||||
Crucially, this path is now separate from actual transcription failure:
|
||||
inference errors still emit `LiveStatusMessage::Error` and stop the
|
||||
session, while listener-loss just stops live preview delivery.
|
||||
|
||||
Regression test:
|
||||
|
||||
- `result_listener_loss_is_warned_once_and_not_treated_as_inference_failure`
|
||||
simulates a dead result channel, confirms the first processed chunk
|
||||
downgrades to a warning, and confirms a second chunk still processes
|
||||
successfully without a second warning.
|
||||
|
||||
## Problem
|
||||
|
||||
|
||||
Reference in New Issue
Block a user