Skip to content

v0.5.0

Choose a tag to compare

@jLantxa jLantxa released this 23 Jun 21:23
Immutable release. Only release title and notes can be modified.
v0.5.0
6e9b1bb

What's changed

Added

  • --stdin for snapshot: New --stdin flag to read backup data from stdin as a single virtual file at /stdin, with full deduplication and encryption.
  • Interruptible clean: The clean (and forget --clean) command can now be interrupted with SIGINT / SIGTERM. The shutdown signal is polled at safe checkpoints between GC phases.
  • JSON output for find: The find command now supports --json output.
  • Error codes for find and mount: Both commands now exit with meaningful error codes: 10 on repo open failure, 20 on command failure, and 130 on interrupt (mount only).
  • Sliding-window rate estimator: Replaced indicatif's lifetime-average per_sec/eta with a configurable 10s sliding window for responsive ETA and throughput in progress bars (CLI and TUI).
  • Recursive filename search: find now searches recursively when the pattern does not contain a / (e.g. find file.txt matches in any subdirectory). Use a leading / to restrict the search to the root (find /file.txt).
  • dump command: New dump command to print the contents of a single file from a snapshot to stdout. Supports snapshot ID prefixes and latest.
  • --no-lock: Added an option to open a repository without acquiring a lock.
  • Interactive diff screen (TUI): New DiffScreen with a navigable tree of changes (+/~/-), inline expand/collapse, u to toggle unchanged files, </> to browse adjacent snapshot pairs, live spinner while loading, and / to filter entries by path.
  • Interactive find screen (TUI): New FindScreen with real‑time glob search across all snapshots, progress bar with spinner, results table, inline detail panel, and direct navigation to file explorer and restore.
  • Redesigned TUI theme: The TUI now uses a refined colour palette and layout for improved readability.

Changed

  • Restorer performance: Optimized the restorer with a flattened parallel pipeline, concurrent blob decoding, and JIT file initialization. This improves restoration performance while maintaining a low memory footprint.
  • GC memory usage: Repack memory usage is now bounded by a configurable budget, preventing excessive memory consumption during garbage collection with large packs.

Fixes

  • Exit code on interrupt: snapshot, restore, sync, verify, forget, rechunk, amend, and rebuild-index now all exit with code 130 (the conventional 128 + SIGINT) when the user cancels the operation. Previously several of these silently returned success (exit 0) on interrupt, leaving scripts with no way to detect the cancellation.

Full Changelog: v0.4.2...v0.5.0