Phase B.1 survey finding (commit 5725836 cancellable Whisper inference +
bounded drain + lock-over-await).
The upper comment on `start_live_transcription_session` claimed:
Released explicitly before the RunningLiveSession is installed in
`live_state.running` so the symmetric stop path doesn't observe a
half-initialised state.
The actual code (lines 801-811) does the opposite: it installs the
RunningLiveSession FIRST, then drops the lifecycle guard. That ordering
is the SAFER one — a concurrent stop_live acquiring lifecycle observes
a fully-installed `running` slot or none, never a half-initialised
state. The bug was in the comment, not the code.
Future-reader trap: an atomiser-grade review of the locking discipline
would have trusted the comment over the code and "fixed" the code to
match — reintroducing the half-initialised window between drop and
install. Rewrote the Phase 1 comment to describe the actual behaviour
(hold-through-install + Phase 2 drop) and explain why holding is
intentional. Phase 2 comment already accurate; left untouched.
Other B.1 findings:
* 8 existing unit tests cover the atomiser-targetable surface (Race-A
drop sets abort flag, drain_timeout helpers defend NaN/inf/negative/
zero/no-inflight cases, channel-loss observability, tracing target
convention).
* Race-B drain-timeout end-to-end test remains a known gap. The SAFETY
comment in drain_inference acknowledges it ("requires a wedged
whisper-rs, which is hard to fixture"). Closing it would require
refactoring LiveSessionRuntime for testability — invasive, no
identified residual bug in the audited 60-line drain_inference body.
* stop_live comments + code consistent. No fix needed.
Verification:
- cargo test -p lumotia --lib commands::live: 17/17 (no change to test
count — comment-only edit)
- cargo clippy -p lumotia --all-targets -- -D warnings: clean
- cargo fmt --check: clean