Revisions are absolute state positions between diffs: the empty initial
state is revision 0 and each change record advances it by one. Snapshots
persist the revision of the state they contain in a new r field, stamped
with a meta format version k (kanta.structs.META_FORMAT, currently 1);
change records carry no revision of their own.
- kanta.rev exposes the current revision (raises before open)
- replay restores the revision, trusting r on k-marked snapshots and
counting change records from the start of the file for legacy (k0) ones
- rotation preserves absolute revisions, counted from record positions
- meta migration k1 rewrites a legacy file in full on writable open:
leading snapshot preserved and re-stamped, all change records kept,
closing snapshot with the total revision; read-only opens compute the
same revision without touching the file
- CLI range selectors accept rN bounds: rN is the record that produced
state N with its state (the change, or the snapshot materializing it);
single indexes must exist, ranges truncate Python-style
- CLI snapshot indicator lines show the snapshot revision
- Automatically erase history, keep as separate timestamped files.
- Full history may be recovered by concatenation of the files.
- Only applied at database opening time.
- Enable by Kanta(retention=...), use with care (experimental feature).