fix(delivery): suppress duplicate dictation deliveries [6/6] - #316
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. |
e3ff28b to
1c419c9
Compare
1c419c9 to
495c62d
Compare
495c62d to
f01e2ae
Compare
f01e2ae to
8562084
Compare
|
Release coordination: keep this pull request open and do not merge it into |
|
Release coordination note: protected v0.6.0 candidate run 33230355853 passed at a8f57a3. Keep pull requests 311 through 317 unmerged until v0.6.0 publication is complete. The Office clean Windows lane is requested to test artifact audiobud-windows-x86_64-v0.6.0-1: NSIS, MSI, portable signatures and installs, press-start/press-stop dictation, delivery, target lock, the v0.5.0 updater, and uninstall. Report exact evidence before any merge or publication. |
|
Release coordination update for August 31: AudioBud v0.6.0 remains frozen before tagging. Clean Windows validation of run 33230355853 is still required: NSIS, MSI, portable, press-start/press-stop dictation, delivery, target lock, startup, tray, quit, uninstall, and the v0.5.0 updater path. Keep PRs 311 through 317 unmerged. Reply only on PR 311 with availability, exact evidence, or a blocker so the test record stays in one thread. |
8562084 to
861774e
Compare
861774e to
9984f1a
Compare
Before submitting
These are required. If you're skipping any, say why in this section.
Skipping any of the above? Explain why here:
The report arrived while building this stack, but the reporter's OS and paste method are not yet confirmed. This environment also has no Rust toolchain or native input session, so runtime reproduction and the Rust unit tests require CI/a reporter build.
Description
Sixth PR in the v0.6.0 stack; based on
codex/v060-lazy-recording-overlay.Adds an idempotency gate immediately before a delivery can touch clipboard, focus, or keyboard state. A nonzero
DictationContext::sequence()can be claimed once; a duplicate job is suppressed and logged before any target-side effect. The recent-sequence set is bounded, poison-recovering, and preserves best-effort behavior for sequence zero.Static tracing found one enqueue site, one FIFO worker, and one paste chord per normal delivery. This is therefore a defensive containment plus a diagnostic boundary. #310 should remain open until a reporter build confirms whether the duplicate was a second delivery job or one platform chord being interpreted twice.
Related issues
Refs #310
Testing
git diff --checkpasses.Screenshots / videos (optional)
Not applicable; delivery invariant only.