31 lines
1.1 KiB
Markdown
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.
|