Repository navigation
2.5.0 — Safer init and a recoverable journal
Safer init and a recoverable journal
Version 2.5.0 hardens adoption. The first repository history is created with
no-replace publication, so an interrupted or concurrent init can no longer
leave a partial journal.jsonl. Interrupted transactions are recovered from
their write-ahead log before any later effect, and a torn history append is
repaired only when the retained log proves the exact bytes. When a gate
remains, init ends with one summary line: init: N item(s) confirmed, M gate(s).
The journal format stays at schema 1 (#27, #28, #29).
Fixes
initrefuses a harness memory path inside the adopter and a project-memory
target outside it, records managed directory symlinks as symlinks, skips
harness absorption when a whole-run gate remains, and keeps the backup path
visible when link publication fails (#16, #17, #18, #19, #20).- A directory at
memory/MEMORY.mdis reported as an index finding bylint
andstatusinstead of a traceback (#20). probebounds aggregate stdout and stderr per invocation (#13).- Directory-durability failures are explicit and recoverable; repair touches
only WAL-proven torn tails and owned temporaries (#14, #15). journal --checkrejects one transaction id reused across the repository
and local histories for different mutations (#21).renderkeeps the primary write error when temporary cleanup also fails (#22).- Bootstrap refuses database aliases
sourceandsource-*, which would
collide with source records (#23). - The session-context startup hook works under Bash 3.2 (stock macOS) and
with mawk or BusyBox awk, which abort on a directory argument. - Executing
validated_memory.clidirectly is a usage error; the CLI is
python3 -P -m validated_memory(#24).
Documentation
Executed implementation plans left the published tree; the memory-reuse
usefulness evidence now lives under evaluations/memory-usefulness/ and the
recall specification under docs/design/.