-
released this
2026-05-25 13:04:39 -04:00 | 860 commits to main since this releasePatch release on top of v26.05.25.0. See PR #11 for the full change list.
Operator-facing wins
- Gallery now sorts by original post date when known — IR-migrated content surfaces at its actual publish year instead of piling up in one FC-scan-week bucket. Re-run
/api/migrate/tag_applyto backfillprimary_post_idon existing migrated images. - DeviantArt + Pixiv PostMetadata is no longer silently dropped during
tag_applyphase 4 — one of two root causes of the missing-provenance complaint. - Corrupt files in
/importno longer Celery-autoretry-loop forever — PILOSErrornow skips asinvalid_imagecleanly. - Stuck batches are recoverable from the UI: new "Clear stuck..." button on the import task list, plus an inline action next to the scanning spinner. No more SQL needed.
- Quick scan button is always visible (was hidden by a wedged active batch in the old UI).
- Camie v2 ML tagger actually works —
download_models.pywas fetching the wrong filenames;tagger.pyhad wrong preprocessing + wrong output handling. Aligned with the publishedonnx_inference.pyreference. - Directory card UI: 2× width, bounded preview slot heights so tall source images can't escape.
Maintenance / recovery
recover_interrupted_tasksBeat sweep now flipspending/queuedorphans (>30 min) tofailedin addition to recyclingprocessingrows. Fixes the 5,490-row pile ascan_directorycrash can leave behind./api/import/clear-stuckmanual escape hatch for the autoretry-loop case.
Schema changes
None. All fixes are logic-only.
Recovery steps
After deploying:
- Re-run
/api/migrate/tag_applyon the existing manifest — phase 4 is idempotent; backfillsprimary_post_idand picks up previously-skipped DeviantArt + Pixiv entries. - Gallery + timeline + jump immediately reflect publish dates.
🤖 Generated with Claude Code
Downloads
- Gallery now sorts by original post date when known — IR-migrated content surfaces at its actual publish year instead of piling up in one FC-scan-week bucket. Re-run