Skip to content

fix(T667): requeue a watcher-exit wake dropped mid-turn instead of stranding it - #372

Merged
kryptobaseddev merged 3 commits into
mainfrom
fix/t667-watch-midturn
Oct 17, 2026
Merged

kryptobaseddev merged 3 commits into
mainfrom
fix/t667-watch-midturn

Conversation

@kryptobaseddev

Copy link
Copy Markdown
Owner

Kimi 6f38782..0720eb3 (base 6617cfd). When a watcher's exit hint lands mid-turn, the harness drops it and the mail stayed 'notified' for good.

  • Watch: the watcher records which ids its hint named.
  • Stop: every Stop run reconciles that marker. Ids it surfaces, or that are read, acked or delivered, leave it, so the re-drive never double-fires with a Stop continuation (the T675/T681 class).
  • Daemon: requeueWatchReported moves a still-'notified' marked delivery back to 'delivered' exactly once. It skips while a live watcher exists, while muted, and inside the wake brake window. The normal dispatch checks then drive it.

test/watch-midturn.test.ts 6/6: the AC1 reproduction, a single Stop surfacing, the digest variant, continuation-turn mail reaching the next turn without a prompt, exactly one re-drive, and none when read/acked or alongside Stop. project-mailbox + wake-dispatch + wake-outcomes 57/57; watch + hooks 43/43; tsc clean. One RATCHET line in test/project-mailbox.test.ts classifies the 3 new per-delivery queries. CHANGELOG Unreleased only. AC3 live evidence follows on the release.

🤖 Generated with Claude Code

@kryptobaseddev
kryptobaseddev merged commit dd53607 into main Oct 17, 2026
1 check passed
@kryptobaseddev
kryptobaseddev deleted the fix/t667-watch-midturn branch October 17, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant