-
released this
2026-05-26 01:42:21 -04:00 | 623 commits to dev since this releaseWhat's new
Worker no longer hangs on animated WebPs
_transparency_pctandcompute_phashnow short-circuitis_animatedimages. Previously PIL'sgetchannel("A")iterated every frame of a multi-frame WebP, exceeding Celery's 300s soft / 360s hard time limits →SIGKILLand stuck-in-processingrows. Operator-flagged 2026-05-26.
Gallery-dl post-level sidecars are no longer invisible (BIG)
- gallery-dl writes
01_HOLLOW-ICHIGO.pngbut the sidecar isHOLLOW-ICHIGO.json(post stem, noNN_prefix). FC'sfind_sidecaronly checked<media>.jsonand<media-stem>.json; it never stripped the prefix. Since FC-3 shipped, every gallery-dl post-level sidecar has been silently invisible. Now strips^\d+_from the media stem before lookup. After deploy: run a deep scan of/importagainst the GS download dir and yourposttable should finally populate from your existing 57k images.
Browser extension XPI now actually bundles into
:latestbuild.yml's sign-extension step now usesbrowser_download_url(the canonical Forgejo asset binary endpoint) instead of/releases/assets/<id>(which returns JSON metadata).curl -fadded so HTTP errors fail the build instead of silently writing 404-text-as-XPI.- ZIP magic-byte check (
PK) on the downloaded file as a defense-in-depth guard. - Extension version bumped to 1.0.3 to escape the AMO "version already exists" lock from the earlier partial-failure cycle.
FC-Cleanup backend (partial — Tasks 1-6 of 17)
- New migration
0020_library_audit_run— backs async transparency / single_color audits. LibraryAuditRunmodel + registered in models package.backend/app/services/audits/transparency.py+single_color.py— pure-function rule modules.cleanup_service.pygainsproject_min_dimension_violations/delete_min_dimension_violations/start_audit_run/apply_audit_run/cancel_audit_run(+ 3 exception classes).backend/app/tasks/library_audit.py::scan_library_for_rule— keyset-paginated PIL inspection task onmaintenancequeue, soft_time_limit=7200, time_limit=7500. Inherits FC-3i task_run lifecycle.
This backend is currently dead code from a user perspective — no API or UI exposes it yet. Tasks 7-16 (API blueprint + Pinia store + 4 cards + SettingsView integration) ship in v26.05.25.7.
Memory banked
reference-gallerydl-sidecar-layout— don't repeat the prefix-strip missreference-forgejo-actions-no-artifact-v4— Forgejo doesn't support upload-artifact@v4; use Release Assets for cross-job handoffreference-image-record-sha256-fixture— image_record.sha256 is varchar(64); fake fixtures must useljust(64,...)[:64]reference-path-suffix-sanitize— Path.suffix on URL-encoded basenames returns garbage; sanitize before bounded VARCHAR
Schema changes
0020_library_audit_run— new table, additive, no backfill needed
What's still pending
- FC-Cleanup frontend (Pinia store, 4 cards, CleanupView, SettingsView tab) → v26.05.25.7
- The
:latestextension XPI should land in this image — if it doesn't, see the diagnostic dump inbuild.yml's sign-extension step.
🤖 Generated with Claude Code
Downloads