Recovery Point Locking
The headline feature of this release (#314): any recovery point can now be locked so it is never pruned and cannot be deleted — for example to preserve a specific point-in-time backup during litigation, an audit, or an investigation.
- Each archive row has a Lock / Unlock toggle; locked recovery points show a padlock badge.
- Protection is enforced inside borg itself, not just in the UI: a locked archive is renamed so the prune filter can never select it, on local and remote SSH repositories alike.
- While locked, the archive cannot be deleted from BBS — and deleting its repository or client is blocked too, so the hold has no back door.
- If the repository is busy when you click, the lock/unlock is queued and applies automatically when the running job finishes — no waiting around.
- Unlocking returns the recovery point to normal retention rules.
Improvements
- Restore progress (#343) — running restores show a real percentage in the queue and dashboard (expected file count resolved when the restore is queued, with a byte-based fallback) instead of an indefinite "Preparing…" bar.
- Restore downloads no longer fill the OS disk (#344) — download staging moved to the backup data volume, with an up-front free-space check that refuses oversized downloads cleanly, automatic cleanup when a download is abandoned, and an hourly sweep for stranded staging directories. Previously a large download could fill /tmp and crash every running backup.
Bug Fixes
- PostgreSQL backups with a dedicated backup user failed on v2.63.0 (#345) — the database enumeration introduced in v2.63.0 connected to a database named after the login user; it now uses the postgres maintenance database, matching pre-2.63 behavior with no new permission requirements.
- Windows clients failed against Remote SSH storage (#347) — the per-job SSH key was written with Windows line endings, which OpenSSH rejects; keys are now written byte-exact on all platforms. Local repositories were unaffected.
Agent
The agent updates to 2.64.0 (PostgreSQL enumeration fix, Windows SSH key fix). Agents update automatically once the server is on 2.64.0.