§ changelog
Semver, with the caveat that pre-1.0 minor bumps are allowed to be breaking.
0.3.7
2026-04-14
- Fix: symlink targets were resolved instead of preserved. Affected pools created on 0.3.0–0.3.6.
- Fix:
frostvex verify --strict hang on pools with empty directories.
- Internal: BLAKE3 batched API now used for chunk hashing — small CPU win.
0.3.6
2026-04-08
- Fix: deprecation warning for
--target printed twice on macOS.
- Internal: bump
quinn to 0.13.2.
0.3.5
2026-04-02
- Fix:
frostvex stat --json now matches the documented schema (was missing peer_count).
- Fix: log rotation off-by-one when
file path doesn't exist yet.
0.3.4
2026-03-26
- Fix: systemd unit file shipped with wrong working directory.
- Improve: error message when peer pubkey doesn't match — now suggests
frostvex peers exchange.
0.3.3
2026-03-20
- Fix: race in chunk store insert when two writers staged the same chunk concurrently.
- Improve:
frostvex log now correctly handles negative --since ranges.
0.3.2
2026-03-15
- Fix: panic on Windows when path contained
\\?\ prefix.
- Fix: bandwidth schedule windows applied incorrectly across midnight.
0.3.1
2026-03-10
- Fix: migration from 0.2.x left a stale
manifest.jsonl.lock on crash.
0.3.0
2026-03-08 · breaking
- Breaking: on-disk pool format changed (auto-migration on first run, see release post).
- Breaking:
--no-checksum renamed to --no-parity; --target renamed to --to. Old names print deprecation, removed in 0.5.
- New: lock-free manifest engine — 4–6× faster merges under contention. Full writeup in "Why I rewrote the merge engine in Rust".
- New: layered tree manifest — 65% reduction in steady-state diff time.
- New: per-pool Reed-Solomon shard configuration.
- New: structured (JSON) logging via
[log] format = "json".
- New: configurable QUIC keepalive (default 25s).
0.2.7
2026-02-19
- Fix: parity verification false-positive on chunks with all-zero contents.
- Improve: peer discovery now retries with exponential backoff on connection failure.
0.2.6
2026-02-04
- Improve: Windows symlink handling. Known regression in 0.2.5; this restores correct behavior.
- Fix: incorrect exit code on Ctrl-C interrupt (was 0, should be 130).
0.2.5
2026-01-22
- Internal: switched chunk hashing from xxh3 to BLAKE3. Writeup pending.
- Fix:
frostvex peers list emitted ANSI codes when piped.
0.2.4
2026-01-08
- Fix: edge case in delta computation where chunk boundaries fell on UTF-16 surrogates.
0.2.3
2025-12-18
- Improve: progress reporting cadence — emits one update per 100 ms instead of 10 ms (less terminal noise).
0.2.2
2025-11-29
- Fix: panic when peer pubkey is malformed.
- Fix:
frostvex prune ignored the --older-than flag.
0.2.1
2025-11-15
- Fix: chunk store grew unboundedly when a sync was interrupted mid-transfer.
0.2.0
2025-10-30
- New: peer-to-peer mode. Pulls and syncs without a central server.
- New: mDNS peer discovery on the LAN.
- New: bandwidth caps with schedule windows.
- Breaking:
frostvex run renamed to frostvex sync.
0.1.x
2024-09 — 2025-10
- Initial public releases. Single-direction sync between two endpoints over QUIC. Reed-Solomon parity. BLAKE3 hashes (since 0.1.6).
- Pre-history is on the first commit log if you really want to know.