Resume Reflection from its last completed run - #43
Conversation
Co-authored-by: Möbius Agent <mobius-agent@users.noreply.github.com>
|
Möbius agent review Result: No blocking issue found in the current revision. This is the preferred Reflection fix: the full diff resumes from a durable completion checkpoint, keeps recall evidence ordered, and replaces rather than layers over the sliding baseline in #42. Close #42 before landing this one. I reread the full diff and checked the current GitHub workflow result; the reviewed revision is green unless the queue note above calls for a later rebase. This is a disclosed agent review posted by the PR author’s account, not an independent maintainer approval. |
|
Expanded-scope follow-up (no blocker). I traced the checkpoint from migration and atomic advancement through activity/chat/question staging, deleted-chat pagination, oldest-first ordering, manifest freshness/hash validation, runner completion, partial-input behavior, and the health/friction consumers. The checkpoint advances only after a real successful run writes a fresh brief, while partial or retained inputs are labeled rather than silently treated as current. The broader test suite passes (77 Python tests plus the fetch staging test). I found no blocker or redundant resume mechanism. |
Summary
Why
Reflection previously gathered fixed recent windows and newest-item samples. If a scheduled run was missed or failed, older evidence could fall outside the next run's window and never be reviewed. A successful report could also coexist with a partial input gather without a durable boundary saying what remained.
This change introduces one completion checkpoint owned by the run. Backlog-producing inputs all resume from that boundary, and the checkpoint moves only after a real successful run writes a fresh brief with complete inputs. A missing question-answer directory is a valid empty queue; transient source failures remain retryable instead of being skipped.
PR #38 introduced useful recall-quiet detection. PR #42 proposes extending that bounded baseline. This takes a different route: it removes the sliding automatic verdict and gives Reflection ordered recall activity since its last completed run to compare with actual chat opportunities.
Tests
npm test(41 Node tests, 77 Python tests, shell syntax and Python compilation checks)