Hard local maintenance: VACUUM + WAL checkpoint on every retention/forget execute

This commit is contained in:
retoor
2026-10-10 04:03:51 +02:00
parent abb327f6f9
commit 5309e2bbb5
7 changed files with 40 additions and 7 deletions
+4
View File
@@ -43,6 +43,10 @@ server is the trust model); there are no keys to manage.
thinned to 1/file/day; per-file latest + pins always kept.
- `POST /admin/retention/run` (dry_run default true) then
`POST /admin/gc` (dry_run default true, `remote: true` also wipes WebDAV).
- Local maintenance rules: every retention/forget execute ends with
`VACUUM` + WAL checkpoint/truncate (`index_reclaimed` bytes reported), so
deletes really shrink `index.sqlite`; GC removes orphan spool blobs.
Without this, deletes would only pile onto freelist pages forever.
- Built-in loop: retention daily, GC weekly (`[scheduler]`). No cron needed.
- Capacity backstop `scheduler.remote_max_used_percent` (default 70):
over-limit runs a pass but NEVER breaks the keep-days floor; health shows