fix(config-backup): probe a custom folder before the retention fallback reads it, test that Save omits a displayed-only retention

This commit is contained in:
Devvyn committed 2026-10-20 21:47:20 +08:00
1 parent 9c0fc30927
commit 8a4ff775fb
9 files changed
+173 -25

No files matched your search

+3 -3
View File
@@ -139,9 +139,9 @@ Only the tracked names are ever written, whatever a manifest lists.
Restoring `settings.json` keeps the four backup settings (on or off, folder, how many, how many
days) at their current values, so a restore from before a folder change does not point the list
at the old folder and hide the `pre-restore` copy it just made. The exception is a live
`settings.json` that has none of the four (a reset file): the restore then keeps the backup's own
how-many and how-many-days, so the next pass does not fall back to 20 copies and 30 days. The
at the old folder and hide the `pre-restore` copy it just made. The exception is the two
retention values: where the live `settings.json` lacks one (a reset file), the restore keeps the
backup's own, key by key, so the next pass does not fall back to 20 copies and 30 days. The
`pre-restore` copy records the retention in force too.
Settings are re-read on the next request, so reload the page. `.env` and `push-keys.json` are
+2 -1
View File
@@ -193,7 +193,8 @@ mode, the **Users** administration entry is injected here.
The **Config backups** group controls timestamped copies of your configuration files: an
on/off switch (on by default), the backup folder (default `~/.codeman/backups/config`), how
many backups to keep (2 to 500, default 20) and how many days to keep them (0 to 3650, default
30; 0 means no age limit), plus **Back up now** and a list with **Restore**. These are
30; 0 means no age limit). A value that is not saved in `settings.json` (a reset file) is whatever
the newest backup in that folder recorded, and the default only when none did, plus **Back up now** and a list with **Restore**. These are
server-side settings, read fresh. Details, naming and restore behaviour are on
[Config Backups](Config-Backups).
+4
View File
@@ -147,6 +147,10 @@ it again and save before looking for the list; until then the list shows the def
After a reinstall of the data directory the old backups are unlisted because the instance has a
new id; see [Config Backups](Config-Backups) for how to make them visible again.
A backup is never dated earlier than the newest one, so if the clock was once set to a far
future date, every later backup keeps that date. Delete the future-dated backup folder to
return to normal dating.
Without the UI: the backups are plain folders in `~/.codeman/backups/config/`
(`cfg-YYYYMMDD-HHMMSS`); copy the file you need back over the one in `~/.codeman/`.