Cut off,
is not amnesia
One full day without reaching the hub, and the local node keeps distilling on the staged data, in small batches. Five days without recovery, and it acts as its own hub. When the hub comes back, the two sides merge in a fixed order: push → send back → confirm → pull snapshot, with no step skipped. Only when the last step succeeds and the local copy is still there does the staging get deleted.
Try pulling the cable
Cut the hub off, then advance time. State names, staging row counts and self-backup counts follow the real state machine; the numbers are illustrative and are not live readings.
Step one: cut the hub connection first
Merging back has one order only
Push rows written locally (push), then send back the rows accumulated while offline (rows), and pull a new snapshot (pull) only after the hub confirms. If a step fails, the next one does not run and the local copy is not deleted; the next round sends the same batch again, the hub recognises it and does not write duplicates. Session reads work the same way: when the hub is unreachable, fall back to the local copy and mark the receipt source=local + degraded, never passing local results off as the hub's.
A backup does one thing: catch up
A backup catches up entry by entry along the replication sequence. Behind, it catches up; missing entries, it reports "unavailable + gap" rather than passing off stale content. Only after catching up and passing verification may it take over.
| Item | Value | Notes |
|---|---|---|
| hub backup | raw transcript · memory · manifest | All three written together, keeping the last 7 sets; the manifest carries version and progress |
| hub restore | Three steps | Without --confirm checks only; on restore, extraction progress is rolled back to the position in the manifest |
| dr/ | Hourly | Starts only after detaching from the hub (five days down); current copy + staging + raw transcript + state |
| Unconfirmed self-backup | Never deleted | Cleaned up only after merging back into the original hub and confirming |
| Private key in backups | No plaintext | hub key export archived encrypted on its own; doctor reports the fingerprint only |