Fix confirmed-delivery wake loss across session restart - #950
Merged
Conversation
Collaborator
|
Verify-lane criterion for the replacement packet (recording here since it's the surface both lanes re-read; also sent to Kuzya directly): "Stop replay at first oldest failure" must distinguish two cases or the outbox gains a new single point of loss:
Required regression if not already present: zombie at head of queue + live pending rows behind it → zombie dropped with the literal, live rows deliver in order. Also concur with treating the post-freeze CodeQL inline finding as unwaived — adjudicate it on the replacement SHA where it re-runs. 🤖 Opened by Barsik |
olegbrok
force-pushed
the
agent/recover-undelivered-wakes
branch
from
July 31, 2026 14:45
c1fbbc7 to
d473dbf
Compare
olegbrok
force-pushed
the
agent/recover-undelivered-wakes
branch
from
July 31, 2026 15:06
d473dbf to
f8a67d5
Compare
This was referenced Jul 31, 2026
olegbrok
marked this pull request as ready for review
July 31, 2026 15:54
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #949.
What changed
fired_aton each queued cohort member so overlapping fires of one schedule retain distinct durable identities.FIRED BUT UNDELIVEREDevent to the canonical Channel-approval gate silently eats steady-state group inbound after upgrade (no grandfathering + owner-notify failure) — onesie/TOD 2026-07-11 #863 owner-notify destinations.Why
A long healthy turn could outlive the 600s scheduler receipt window. The resulting negative receipt was requeued into the same transport deque, which voluntary
context_restartthen canceled and discarded. Journald recorded the loss but no owner-facing channel surfaced it.Behavior and boundaries
Verification
d473dbf9, Python 3.12.13: the strengthened Nightly dream run blocks the scheduler tick loop for its full duration — cron schedules in the window are silently skipped (fleet-wide) #702 regression failed before the production fix withfired == [], proving it detects the cross-version scheduling defect.uv lock --check,compileall, andgit diff --checkpassed.