-
released this
2026-05-25 01:47:52 -04:00 | 870 commits to main since this releaseTwo roadmap stages cut together. See PR #10 for the full change list.
FC-3h — Backup as first-class service
Backup promoted out of the migration tooling into a permanent FC feature, split into independent DB + image components.
BackupRunmodel + alembic 0017/0018backend/app/services/backup_service.py(pg_dump / tar+zstd / restore / unlink)- 6 Celery tasks on
maintenancequeue (autoretry, per-kind soft/hard time limits) - Beat: hourly nightly tick (settings-gated, default OFF) + daily retention prune
/api/system/backup/*blueprint with typed-token confirmation on restore + delete- New Settings → Maintenance card with DB + Images sub-sections
FC-3k — Admin destructive actions
Five first-class destructive actions, surviving FC-3j cleanup of the migration tooling.
cleanup_service.py(artist cascade + image unlink + tag delete + prune-unused, lifted frommigrators/cleanup.py)- 2 Celery tasks for long-running ops (delete-artist-cascade, bulk-delete-images)
/api/admin/*blueprint (6 endpoints) with graduated confirmation friction (Tier A single-click / Tier B yes/no with count / Tier C typed-token)ArtistDangerZone.vue,BulkEditorPanel"Delete selected", per-tag dots-menu (Merge + Delete),TagMaintenanceCard.vue(prune-unused preview)BackupConfirmModalgeneralized toDestructiveConfirmModaland shared between FC-3h + FC-3k
Inheritance
Both stages inherit FC-3i's
task_runlifecycle (recovery sweep, daily prune, soft/hard time limits, duration tracking) for the long-running Celery tasks. No new lifecycle plumbing.Schema
- alembic 0017 —
backup_runtable - alembic 0018 —
backup_*knobs onimport_settings
Run
alembic upgrade headafter pulling.What's not in this release
- IR migration verification (operator-driven manual check before FC-3j)
- FC-3j (remove migration tooling) — depends on verification
- FC-3g extension verification
🤖 Generated with Claude Code
Downloads