goon/app/resolve
jtrzupek 476cbb8d16 fix(ingest): race-safe scene_tags insert (ON CONFLICT) — GOON-M
scene_resolver._sync_tags used check-then-insert (select existing -> add if None), which races under concurrent ingest of the same scene: two runs both see existing=None, both add, flush -> IntegrityError pk_scene_tags (Sentry GOON-M, 4 events). Switched to pg_insert(...).on_conflict_do_nothing(index_elements=[scene_id, tag_id]) + in-batch dedup, identical to movie_resolver._sync_tags.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 11:09:06 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
movie_match.py Initial commit 2026-05-20 10:10:22 +02:00
movie_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
movie_score.py Initial commit 2026-05-20 10:10:22 +02:00
performer_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
scene_match.py feat(ingest): SQL phash match, tag inference + backfill, clip-store skip, browse tubes, watchdog 2026-06-01 15:07:35 +02:00
scene_merge.py fix(merge): move playback_sources on scene merge + exact-title+duration dedup 2026-06-08 10:56:50 +02:00
scene_resolver.py fix(ingest): race-safe scene_tags insert (ON CONFLICT) — GOON-M 2026-06-19 11:09:06 +02:00
scene_score.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
scoring.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
studio_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
studio_title_parser.py Initial commit 2026-05-20 10:10:22 +02:00
tag_resolver.py fix(tags): merge <base>2 numbered-duplicate tags + prevent regeneration 2026-06-06 23:18:44 +02:00