Files
serato-doctor/docs/design/backup-recovery-center.md
2026-07-01 15:34:58 -07:00

31 lines
1.1 KiB
Markdown

# Backup recovery center
## Problem
An immediate undo button is not enough. A DJ may restart Serato Doctor, notice
an issue later, or need to understand how much disk space safety snapshots use.
## Architecture
The recovery center reads the existing JSON manifests beneath
`_Serato_/.serato-doctor-backups/`. It reports creation time, selected keeper,
affected paths, restore status, and snapshot size. Invalid or incomplete backup
folders are ignored rather than presented as restorable.
Restore remains conservative: it only replaces a symbolic-link alias and
refuses to overwrite a real file. A successful restore records its timestamp in
the manifest so the UI cannot accidentally offer the same rollback twice.
## Edge cases
- No backup directory is treated as an empty history.
- Malformed manifests do not prevent valid backups from loading.
- Restored snapshots remain visible for audit purposes and disk accounting.
- Backups can only be restored through the Serato library that owns them.
## Tests
- Backup history reports size and ready status.
- Restore changes the persistent status to restored.
- Static recovery assets are included in the package.