Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e738-9e15-7600-87e6-90dec3a7beef
29 lines
1.6 KiB
Markdown
29 lines
1.6 KiB
Markdown
# SQLite / Git recovery experiment
|
|
|
|
Existing owner: FEP-WP-0003 T04. Preregistered as LEARN-0018 in commit `aea9796`.
|
|
[Review](../../reviews/StorageReceiverRecovery.md) explains the acceptance scope.
|
|
|
|
Run from the repository root with ordinary Python (assertions enabled), SQLite
|
|
and Git; no dependency installation or service is needed:
|
|
|
|
```sh
|
|
python3 research/experiments/storage-receiver/experiment.py --output /tmp/fep-recovery-new.json
|
|
```
|
|
|
|
The output must be a new path. The runner retains a failure receipt before raising;
|
|
never overwrite the committed result. Compare the receipt's engine versions and
|
|
binary/source hashes before treating another environment as a replication.
|
|
|
|
Temporary databases and bare repositories are isolated and removed on exit. Git
|
|
configuration is isolated from user/system configuration. Each killed process is a
|
|
new fixture worker, stopped only after an explicit checkpoint. Every read of the
|
|
receiver runs a new Git process; the receiver itself is real `git receive-pack`
|
|
using Git's local transport, not an authored protocol substitute. No port is opened.
|
|
|
|
Nine checks pass, including two intentionally broken negative controls. The sender
|
|
is killed after Git reports success but before the application persists its receipt:
|
|
this models lost **local** acknowledgement, not network packet loss. SQLite kills
|
|
bracket commit and interrupt a multi-statement transaction; they do not inject a
|
|
crash inside the commit syscall or simulate power loss. Receiver fsync/disk-failure
|
|
behavior, remote authentication, backup, UI behavior and full-contract recurrence
|
|
remain untested. A reachable commit is not an indefinitely retained operation ledger.
|