[0.40.0] - 2026-04-28
Added
burn archive vacuum(#104). New subcommand that runs SQLiteVACUUMagainstarchive.sqliteto reclaim free pages fromINSERT OR REPLACEchurn (stamp re-folds rewrite turn rows; rebuild drops + recreates rows). Acquires the same'archive'lock used bybuild/rebuild, so a vacuum and a build can be issued concurrently and will serialize without corruption. Text output is a one-liner —archive: vacuumed 12.3 MB -> 4.1 MB (reclaimed 8.2 MB)— and--jsonreturns{ archivePath, existed, beforeBytes, afterBytes, reclaimedBytes }. No-op with a hint if the archive doesn't exist; vacuum never creates an archive as a side effect.