-
v26.05.27.1 Stable
released this
2026-05-27 17:13:52 -04:00 | 545 commits to dev since this releaseSubscriptions hub + post-card merge + sidecar audit. PR #29 → merge commit
88e53e5(parent[1] = dev HEADaa28bddverified).Highlights
Subscriptions hub —
/credentialsand/downloadscollapsed into a single/subscriptionsparent with three internal subtabs (Subscriptions default | Downloads | Settings).?tab=query-param routing mirrors ArtistView. GS-style visuals across all three: color-coded platform chips, stat-chip downloads dashboard with popover filters + maintenance menu + per-row retry, credentials card grid in Settings. Download + schedule settings moved out ofSettings → Importinto the hub's Settings subtab. Legacy/credentialsand/downloadskeep working as bookmark-safety redirects. NewGET /api/downloads/statsendpoint pinned by two integration tests.PostCard absorbs PostModal — the wider PostCard layout had enough real estate to be the canonical post surface. Compact state unchanged; click-to-expand inline yields full title, mosaic of ALL post images (uncapped, lazy-loaded), full sanitized-HTML description, attachment download pills. Mosaic image clicks still open ImageViewer scoped to the post.
usePostModalStoreand the modal mount deleted.Sidecar audit fixes across all non-Patreon platforms (after the operator's sample dump):
- SubscribeStar
id/post_idconfusion → external_post_id chain reordered to(post_id, id, index, message_id). Stops multi-image SubscribeStar posts from fragmenting into N Post rows in the DB going forward. - SubscribeStar/Pixiv/HF/Discord
post_urlwas a file CDN URL → new_derive_post_url(platform, data)synthesizes proper post permalinks per platform. - Discord
messagebody field added to description fallback chain. - SubscribeStar
titlealways empty → synthesized from content first line (already in v26.05.27.0 with alembic 0024 backfill).
Migrations
alembic 0024_backfill_post_title_from_description(idempotent) — synthesized titles for any Post with NULL/empty title and a non-empty description.alembic 0025_fix_subscribestar_post_ids(idempotent) — for SubscribeStar/HF/Discord, walks each Post's sidecar from disk and overwritesexternal_post_id(subscribestar) +post_url(all three). Then merges SubscribeStar fragments grouped under one source by their new shared external_post_id (same ImageProvenance pre-delete + repoint dance as alembic 0022). Pure-SQL Pixivpost_urlbackfill in the same migration. Posts whose ImageRecord.path doesn't resolve on disk are reported per-platform in the migration output for a future deep-scan.
Infrastructure
build.ymlrace fix — tag-push's "Download signed XPI" step now pollsreleases/tags/ext-<version>every 30s for up to 10 min before failing. main-push's sign-extension takes 1–5 min for AMO; tag-push used to race past it and 404. This release will exercise the fix in production.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.27.1Alembic 0024 + 0025 will apply automatically. Watch the worker log for the per-platform migration counts (
0025: subscribestar — read N sidecars, updated N Posts, ...).Downloads
- SubscribeStar