Skip to content

Preserve Observer state across restarts and bound checkpoint memory - #62

Merged
SignalLayerLabs merged 1 commit into
mainfrom
fix/durable-public-checkpoint
Oct 9, 2026
Merged

SignalLayerLabs merged 1 commit into
mainfrom
fix/durable-public-checkpoint

Conversation

@SignalLayerLabs

Copy link
Copy Markdown
Owner

A cold Durable Object could recover private physics, advance beyond its saved minute, and return HTTP503 because its saved Observer view existed only in RAM. Store the compressed public view inside the same atomically published canonical checkpoint and recover it before serving readers. Interrupted publication retains the prior private/public pair; an optional projection failure preserves the last valid public view while private progress continues.

Write gzip bytes directly to bounded SQLite rows instead of expanding them into base64. Keep compatible legacy readers, exact wire seals, four-part staging and existing write budgets. Release reloadable knowledge caches after durable bin staging, allocate binary buffers lazily and release the temporary index dictionary after JSON input is consumed. No world reset, animation removal, quota increase or CI relaxation.

Validation: malformed public envelopes and encoded identity/time/ledger disagreement fail before installation; warm/cold source retention, real physics before the first Observer read, interrupted publication, binary fragmentation/cancellation, exact seals and staging charges have regression coverage. Local validation: all488 unit/invariant tests, syntax, manifest, twice-identical deterministic Genesis and Wrangler dry-run pass. Native cold recovery serves HTTP200 at saved177423 after real physics advances to177453;108IDs retained. Resource fixture >928k private records/54k memories preserves movement/actions/biology; sampled live heap/backing119.77MiB including embedder. Local Chromium launch is blocked by the macOS execution sandbox; exact-source browser coverage is required in GitHub Actions. Production acceptance remains every unchanged main gate plus a separate ten-minute interval with no Observer requests or diagnostics.

@SignalLayerLabs
SignalLayerLabs merged commit 2a9f0bc into main Oct 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant