-
released this
2026-05-26 17:53:21 -04:00 | 581 commits to dev since this releaseSecond hotfix for v26.05.26.1's alembic 0022 migration. v26.05.26.2 fixed case (A); this fixes case (B). PR #25 → main, merge commit
c14338c, pinned head7a64730verified.What still broke after v26.05.26.2
IntegrityError: duplicate key (source_id, external_post_id)=(42, 6166997)v26.05.26.2's pre-merge only handled the case where canonical already had a Post with the colliding epid. It missed: two non-canonical Sources both have Posts with the same
external_post_id, canonical has none. The bulk UPDATE moves the first cleanly onto canonical, then collides on the second.Fix
Group ALL Posts in the (artist, platform) by
external_post_id(across canonical AND all others). For any group with count > 1:- Keep = a Post under canonical (if any) or the lowest-id Post in the group
- Merge the rest into keep (repoint ImageProvenance + ImageRecord.primary_post_id, dedupe ImageProvenance against alembic 0021's UNIQUE, delete drop Posts)
Now handles all three patterns:
- canonical has Post + "other" has duplicate → keep canonical's
- two "others" both have duplicates (canonical has none) → keep lowest-id one
- canonical + multiple "others" all share epid → keep canonical's, drop all others
Also included
ci.yml: the fourCache pip wheelssteps were removed entirely (act_runner cache backend has been broken for 11+ days; cached path wasn't uv's actual cache anyway). Was on dev as1803a09; rides along here.Deploy
Pull
:latest, force-updateapp,worker,ml-worker,scheduler,web. Alembic should apply 0022 cleanly this time.Verify Atole:
SELECT id, platform, url, enabled FROM source WHERE artist_id = (SELECT id FROM artist WHERE slug='atole');Expected: 1 row,
url=https://www.patreon.com/cw/Atole,enabled=true.Downloads