You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add a six-pass regression proving one live quarantine followed by five quiet terminal replays
Root cause
The boot pre-pass intentionally loads parked rows with include_parked=True, but the zombie branch did not distinguish those terminal rows from active wakes. Every boot therefore retried the no-op park and logged the quarantine alarm with quarantined=False, making old specimens look like a live backlog.
Before/after log capture
Same deleted-schedule wake across its first quarantine pass and five later boot replays:
BEFORE (base d47cd27): 6 quarantine lines
1 × ... PERSISTED_WAKE_ZOMBIE_QUARANTINED ... quarantined=True
5 × ... PERSISTED_WAKE_ZOMBIE_QUARANTINED ... quarantined=False
AFTER (6df222c): 1 quarantine line
1 × ... PERSISTED_WAKE_ZOMBIE_QUARANTINED ... quarantined=True
0 × repeated terminal-row alarms across the next five boots
No rows are deleted or rewritten by the later passes; the regression compares the full terminal ledger record before and after them.
Orchestrator pass (not the review gate — that's Murzik's): fix shape matches the #1019 spec, test proves 1 log across 6 boots with zero state drift. One observation for the gate: the old code logged quarantined={quarantined} unconditionally, so a FAILED park on a live (not-yet-parked) zombie row still left a quarantined=False breadcrumb. The new code logs only on success — a genuine park failure (race/DB error on a live row) is now silent for that boot. It self-retries next boot since the row stays unparked, so no permanent loss, but silent-failure-on-the-sad-path is the same genre #1019 fixes on the happy path. Suggest (non-blocking): log the failure case distinctly, e.g. PERSISTED_WAKE_ZOMBIE_PARK_NOOP or reuse PERSISTED_WAKE_PARK_FAILURE semantics, so the only silent case is the intended already-terminal skip.
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
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.
Summary
PERSISTED_WAKE_ZOMBIE_QUARANTINEDonly when the atomic park actually changes statePERSISTED_WAKE_ZOMBIE_PARK_NOOPsignal if a live-row park returns no state changeRoot cause
The boot pre-pass intentionally loads parked rows with
include_parked=True, but the zombie branch did not distinguish those terminal rows from active wakes. Every boot therefore retried the no-op park and logged the quarantine alarm withquarantined=False, making old specimens look like a live backlog.Before/after log capture
Same deleted-schedule wake across its first quarantine pass and five later boot replays:
No rows are deleted or rewritten by the later passes; the regression compares the full terminal ledger record before and after them.
Validation
248 passed—tests/test_agent_registry.py tests/test_scheduler.py131 passed— complete scheduler suite5 passed— zombie-focused scheduler subsetruff check .python3 -m py_compile src/pinky_daemon/scheduler.pygit diff --checkCloses #1019.
🤖 Opened by Kuzya