HarperFast / HarperFast/harper
[Epic] Backup/restore correctness
- Dominant language
- JavaScript
- Stars
- 89
- Forks
- 10
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 200
Description
Backups and offline backup CLI landed for 5.2 (#1831 and its follow-ups). This epic collects correctness work on that surface: the operations, the CLI's offline paths, and the on-disk metadata they rely on.
## Scope
**In:** `create_backup` / `list_backups` / `delete_backup` / `purge_backups` / `get_backup`, the offline CLI paths in `bin/backup.ts`, the reserved `restore` metadata directory, and the interaction between backup management operations and the RocksDB backup-directory writer lock.
**Out:** `copy-db` (#2048) — a separate CLI verb with its own defects, tracked under CLI/install robustness. Crash-recovery and transaction-log correctness (#1949, #2016) — those are audit-log/storage concerns even though they also affect what a restore produces.
## Theme so far
Two of the three open defects are the same shape as the wider false-green pattern in #2095: the operation reports success while the artifact it produced is unusable, or acts on a target that isn't the one the operator meant. That's worth keeping in mind when choosing fixes — a backup surface that can report success it hasn't earned is worse than one that fails loudly.
## Note on older backup issues
#996 (`delete_backup` operation), #997 (`list_backups` operation), and #131 (`get_backup` support for rocksdb) predate the 5.2 work and all three operations are now implemented. They're likely closable rather than epic children — left out of this epic deliberately, pending confirmation that the shipped implementations cover what they asked for.
_Created during backlog triage; the child issues keep their own priorities and milestones._
Contributor guide
Research direction
This is an umbrella epic rather than a self-contained change. Start by selecting one child defect, then read the scoped create_backup, list_backups, delete_backup, purge_backups, or get_backup entry point and the offline paths in bin/backup.ts. Done means the selected correctness issue is fixed and its backup artifact, metadata, or writer-lock behavior is verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js, typescript
- Domain
- cli, databases
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100