• bvandeusen released this 2026-05-25 01:47:52 -04:00 | 870 commits to main since this release

    Two 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.

    • BackupRun model + alembic 0017/0018
    • backend/app/services/backup_service.py (pg_dump / tar+zstd / restore / unlink)
    • 6 Celery tasks on maintenance queue (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 from migrators/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)
    • BackupConfirmModal generalized to DestructiveConfirmModal and shared between FC-3h + FC-3k

    Inheritance

    Both stages inherit FC-3i's task_run lifecycle (recovery sweep, daily prune, soft/hard time limits, duration tracking) for the long-running Celery tasks. No new lifecycle plumbing.

    Schema

    • alembic 0017 — backup_run table
    • alembic 0018 — backup_* knobs on import_settings

    Run alembic upgrade head after 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