Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e738-9e15-7600-87e6-90dec3a7beef
1.6 KiB
SQLite / Git recovery experiment
Existing owner: FEP-WP-0003 T04. Preregistered as LEARN-0018 in commit aea9796.
Review explains the acceptance scope.
Run from the repository root with ordinary Python (assertions enabled), SQLite and Git; no dependency installation or service is needed:
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.