v1.4.3 — Archive integrity + system-plan GUI fixes
A stability + integrity release. Adds verifiable archive integrity and closes the last gaps in managing system-level backups from the GUI.
✨ Archive integrity (new)
- Per-frame SHA-256 checksums, computed inline as each archive is written — effectively free (no extra read pass; the streaming single-read write path is preserved). Recorded in the
.frames.jsonsidecar (schema v2). --verifyreworked into a fast, decompress-free integrity check: it re-reads each frame and compares its SHA-256, naming the exact corrupt frames. Shard-group aware; handles quarantined.failedarchives; older archives fall back to a full decompress.- zstd's own per-frame content checksum is now enabled too, so every restore / browse / recover self-verifies automatically.
- Motivation: catching real write-path corruption (8 corrupt frames in a 214 GB shard) that exit-code classification alone could not see. See
docs/design/archive-integrity.md(including the non-ECC-RAM limitation).
🛠 Fixes
- System-class plans (
system/homes) now work fully from the GUI as a normal user. Delete, Run full/incr now, reindex, and recover-failed all escalate to root via pkexec (5 audited helpers + polkit policies, each validating a plan allowlist and tightly-scoped args) instead of failing with permission errors on root-owned archives. - No more false
failedbackups from benign file-race warnings — e.g. a browser rewriting its own cache mid-backup (afile changed as we read itco-occurring with a vanished file no longer trips the whole run). apt removecleans up after itself — TimeTraveller's managed cron blocks are stripped from root's crontab and any user crontab on uninstall.
📦 Install
sudo apt install ./timetraveller_1.4.3_all.deb
Per-version detail (v1.4.0 → v1.4.3) is in debian/changelog. 288 automated tests pass.
⚠️ Testing release — please report issues. Backups written by this version are forward-compatible; the new checksum sidecar is additive.