feat: backup hardening + verify, stats overview, queue health
Backups:
- restore --fresh wipes a dirty/partial schema (same mysql client + $cfg as the
import, scoped to DATABASE(), so it can't wipe the wrong DB) after a verified
pre-restore safety snapshot; unmissable recovery message on post-wipe failure
- workkit:db:verify (+ --verify on backup): decrypt + xz integrity + completion
marker + sha256 sidecar check, no DB needed
- metadata sidecar per backup; prune --keep-min floor so prune can't leave zero
- FK_CHECKS=0 import prepend; deadlock-proof concurrent stdout/stderr drain
Ops:
- workkit:stats: per-model row counts (estimate/--exact), largest tables, DB size,
queue + backup summary; MySQL/MariaDB info_schema, graceful elsewhere
- workkit:queue:health: per-queue depth/due/delayed/reserved + oldest-due age,
failed-job counts, STALLED detection, DB-error breach, non-zero exit for cron
README + CHANGELOG; new config read with code-side defaults (nested-merge safe).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>