Land release blocker fixes and workspace cleanup
Some checks failed
check / cargo check (macos-latest) (push) Has been cancelled
check / cargo check (ubuntu-22.04) (push) Has been cancelled
check / cargo check (windows-latest) (push) Has been cancelled
check / svelte build + lint (push) Has been cancelled

This commit is contained in:
2026-04-23 00:16:09 +01:00
parent d7363cc913
commit 9b0067b4c0
36 changed files with 1529 additions and 418 deletions

View File

@@ -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