• v26.05.28.0 Stable

    bvandeusen released this 2026-05-28 00:45:19 -04:00 | 529 commits to dev since this release

    Downloads-tab dashboard pass + a deep backend task-resilience overhaul. PR #31 → merge commit 319e8c1 (parent[1] = dev HEAD dcfe55d verified).

    Highlights

    Downloads dashboard. Row restyle (colored status chips + labels, status-keyed left edge, color-coded platform chips, file-count chips, error pills, per-row Retry/Details/Open-artist). Date-grouped collapsible sections — Today / Yesterday / Last 7 days / Earlier — with failed runs pinned to the top of each section.

    Task timeouts, sized per workload. No more healthy long-running tasks getting marked failed:

    • ml tag_and_embed video branch: 15min/20min limits; recovery sweep per-queue (ml=25min).
    • Archive imports split into import_archive_file (30min/35min) — they run the per-member pipeline inline. Both recovery sweeps are archive-aware (40min) so a running archive isn't preempted.

    Three-layer poison-pill defense (a corrupt/oversized input that crashes the worker can no longer loop forever):

    • L1 circuit breaker — recovery_count caps stuck-task re-queues; a repeatedly-crashing row is failed with a diagnostic + its file path.
    • L3 subprocess isolation — safe_probe runs video (ffprobe) and archive (bomb guard + integrity test) decode in a separate process; a crash is contained and returns a clean failure.
    • L2 one-shot re-download — a failed downloaded file that resolves to a pollable Source gets its corrupt copy deleted and one source re-check queued (manual button + env-gated auto). Filesystem-only imports report no re-fetchable source.

    Migrations

    alembic 0026_import_task_recovery_count_refetched — additive (recovery_count int default 0, refetched bool default false), no backfill.

    Deploy

    docker compose pull && docker compose up -d --force-recreate app worker ml-worker scheduler web
    Or pin: image: git.fabledsword.com/bvandeusen/fabledcurator:v26.05.28.0

    alembic 0026 applies automatically. No extension change this release (still ext-1.0.5). Optional: set FC_AUTO_REFETCH_CORRUPT=1 in the worker env to enable automatic one-shot re-download of poison-pill files that have a re-pollable source.

    Downloads