v26.05.25.1: maintenance sweep + Camie v2 + corrupt-file handling + post-date gallery + clear-stuck escape hatch #11
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Patch release rolling up 10 fixes from the post-v26.05.25.0 work session.
Maintenance / recovery
9d5abb0recover_interrupted_tasksnow sweeps pending/queued orphans (>30 min) tofailed, not justprocessing(>5 min). Fixes the 5,490-row pile operator hit whenscan_directorycrashed mid-enqueue.b6a917a/api/import/clear-stuckendpoint + "Clear stuck..." UI button on the import task list. Manual escape hatch for the autoretry-loop case the automatic sweep can't break (e.g., corrupt file PIL OSError loop).3a359f6Quick scan button always visible, disabled when an active batch is present, with an inline "Clear stuck" action next to the spinner. Operator was unable to start scans because the wedged batch hid the button.ML pipeline
3b3e756Tagger + downloader aligned with actual Camie v2 HF layout:camie-tagger-v2.onnx(notmodel.onnx), JSON metadata (notselected_tags.csv), ImageNet normalize, NCHW, sigmoid on refined logits. Verified against the publishedonnx_inference.pyreference.6b1bb87Pinned-test rename to match Camie v2 filenames.Importer resilience
68cffceImporter catchesPIL.OSErrorduring_transparency_pct+compute_phashand skips asinvalid_imageinstead of letting Celery autoretry loop forever on a corrupt file. Operator hit this with a broken JPEG in the IR set.Gallery sort/display
c361032Gallery scroll / timeline / jump / neighbor-nav now sort/group byCOALESCE(post.post_date, image_record.created_at). Migrated content surfaces at its original publish date, not FC's scan-week date. tag_apply phase 4 now setsimage_record.primary_post_id(idempotent, doesn't clobber importer-set values). API response gainsposted_at+effective_datefields alongside the existingcreated_atfor future modal display.9f54efdtag_apply phase 4 now coversdeviantart+pixiv(was silently dropping ALL PostMetadata for those platforms). Operator's missing IR provenance had this as one of two root causes.UI polish
52445ebDirectory card width 220px → 440px; preview slots get explicit min/max-height +overflow: hiddenso tall source images can't escape on browsers whereaspect-ratiodoesn't compute.Migration recovery notes
After deploy, to backfill IR-migrated images with their post dates and pick up the previously-skipped DeviantArt + Pixiv entries:
/api/migrate/tag_applyagain on the existing manifest (phase 4 is idempotent; existing rows pass through; newprimary_post_idand new platform-coverage entries backfill).Schema changes
None. All fixes are logic-only.
🤖 Generated with Claude Code