-
released this
2026-05-25 14:30:50 -04:00 | 855 commits to main since this releasePatch release on top of v26.05.25.1. See PR #12 for the change list.
Operator-facing win
Scanning the GS download dir now enriches superseded images with the GS sidecar's post metadata. Previously
_supersede()was file-only — bigger version of an IR-migrated image would replace the file but lose the gallery-dl JSON sidecar's Post/Source/ImageProvenance entirely. The behavior is additive: any existing IR-migration provenance survives, and the new GS-sidecar provenance gets added as a secondImageProvenancerow that the modal surfaces.UI
- Scan trigger button now produces visible feedback (immediate "Scan triggered" toast + 2s status refresh + "Scan complete — no new files" toast when the scan quick-finalizes against an already-imported library).
CI
- pip wheel cache +
uv pip install --systemwhen available — ~2 min saved on warm runs. pytest --durations=25on integration job to expose slowest tests for future targeted optimization.
Schema changes
None.
Next step for the operator
Now that this is on main + deployed, run a deep scan (Settings → Import → Quick scan with deep mode, or
curl -X POST /api/import/trigger -d '{"mode":"deep"}'). For each GS file at/import/...:- Same SHA256 as an existing FC row →
_deep_rederivebackfills phash + sidecar - Phash matches a smaller existing IR-migrated image →
_supersedeswaps file AND applies sidecar - Brand new → fresh import with sidecar
🤖 Generated with Claude Code
Downloads