diff --git a/app/resolve/scene_merge.py b/app/resolve/scene_merge.py index 6af58f9..a1fc72b 100644 --- a/app/resolve/scene_merge.py +++ b/app/resolve/scene_merge.py @@ -221,6 +221,12 @@ def _coalesce_canonical_fields(keep: Scene, drop: Scene) -> None: if drop.title and len(drop.title) > len(keep.title or ""): keep.title = drop.title keep.title_normalized = drop.title_normalized + # created_at = najwcześniejsze "first seen" obu scen. NEW badge (apka) bazuje na + # created_at; gdy dedup wybierze świeży re-ingest/mirror jako `keep`, stara treść + # dostawałaby fałszywe NEW po merdżu (report f17799b3). Bierzemy min → zdeduplikowana + # scena zachowuje datę pierwszego pojawienia, nie datę re-ingestu. + if drop.created_at and keep.created_at and drop.created_at < keep.created_at: + keep.created_at = drop.created_at def _close_pending_candidates(