Preserve resident memory and report checkpoint state accurately - #3927
Merged
joelteply merged 8 commits intoSep 9, 2026
Conversation
…ident-bootstrap-when-persisten
joelteply
marked this pull request as ready for review
September 9, 2026 14:09
joelteply
deleted the
6d17695c/refuse-resident-bootstrap-when-persisten
branch
September 9, 2026 14:09
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.
Resident startup now refuses a slot when persistent engram storage cannot be restored. It preserves the original OrmStoreError in SupervisorError::AdmissionRestore instead of continuing with an empty AdmissionState and NoopSink, which also lost future admissions. Existing residents remain registered, healthy sibling slots can continue, and a new home still initializes persistent storage normally.
Working-memory restoration now describes the checkpoint evidence accurately: its age is time since the save, pending dispatch labels carry unknown completion and side effects, and an empty list means no pending dispatches were recorded in that checkpoint. Missing or zero save timestamps remain unknown. Restoration no longer asserts an interruption time, noncompletion, or safety to repeat an operation. The snapshot schema and existing rebuilt notice are preserved; the Persona decides what to do next.
The bootstrap regression calls actual materialize_adapters with a non-SQLite candidate database, a healthy sibling, and both cold and already-registered cases. It checks the original storage error, unchanged corrupt bytes, healthy persistent initialization, and exact prior resident preservation. The existing working-memory roundtrip regression now checks truthful pending-state wording and missing/zero save timestamps while retaining memory, receipt-counter, and rebuilt-notice checks. The recovery guide also distinguishes persistent engram identity from checkpoint adoption.
Validation:
Dependency #3925 is merged. Fresh CI on 42f0a12 is the remaining execution gate. Card 6d17695c-a8a3-4df6-bd6e-b2172a41ee82.