Skip to content

Resume Reflection from its last completed run - #43

Merged
hamzamerzic merged 1 commit into
mobius-os:mainfrom
hamzamerzic:fix/reflection-resume-ordered-backlog
Aug 12, 2026
Merged

Resume Reflection from its last completed run#43
hamzamerzic merged 1 commit into
mobius-os:mainfrom
hamzamerzic:fix/reflection-resume-ordered-backlog

Conversation

@hamzamerzic

Copy link
Copy Markdown
Contributor

Summary

  • resume evidence collection from the last successfully completed Reflection run
  • keep failed, dry, quota-blocked, and partial runs from advancing the checkpoint
  • stage outstanding chats, feedback, answers, activity, tool friction, and recall evidence oldest-first
  • migrate once from existing run metrics and cover restart, pagination, ordering, and empty-input cases

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)
  • app validator (0 errors, 0 warnings)

Co-authored-by: Möbius Agent <mobius-agent@users.noreply.github.com>
@hamzamerzic

Copy link
Copy Markdown
Contributor Author

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.

@hamzamerzic

Copy link
Copy Markdown
Contributor Author

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.

@hamzamerzic
hamzamerzic merged commit 451cb97 into mobius-os:main Aug 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant