Fix toggle cancellation decision before capture stop - #137
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
PASS. Independent shipping verification of PR #137. Verified head I did not implement this patch. The previous implementation read phase after writing capture-stop. The new shared decision reads phase and session identity before that write. Both CLI and managed tray/shortcut toggle paths use that decision, and a different session token cannot authorize cancellation. Fresh actual CLI verification used the rebuilt
The causal Commands used Rust 1.89 and held the shared Cargo lock throughout compilation and CLI execution. The desktop binary used |
acb816f to
7b3748c
Compare
A CLI, tray, or native-shortcut toggle could stop capture and then mistake the resulting transcription phase for a request to cancel. That could discard the transcript from the same gesture that stopped recording.
Capture the phase and session identity before signaling stop. Only a session already observed transcribing can receive a cancellation intent. Both toggle entry points use this ordering.
PRs #134, #135, and #136 have merged. This follow-up targets main and fixes recording code introduced in #135. It must land before the v0.14.17 release tag. An order-sensitive regression forces the capture-to-transcription transition during the stop callback and covers matching and replaced sessions.
The recording unit suite passes. Reversing the observation and stop callbacks in an isolated checkout makes the new regression fail with
status must be observed before stop writes its signal. The fixed ordering passes.Independent verification passed the real CLI stop/save and separate transcription-toggle/cancel sequences, plus the causal regression. The rebase onto main preserves patch-id
fe7c83f2961b02afce81b1a208525272a265cf21.