fix(tradein/dedup): drop geo-guard in fias-pass — same-fias identity outranks proximity (#2187) #2195

Merged
lekss361 merged 1 commit from fix/tradein-dedup-fias-pass-no-geoguard into main 2026-07-02 18:51:55 +00:00
Owner

Summary

Closes #2187. После боевого fias-дедупа остались 130 same-fias групп (335 домов, 1 529 листингов фрагментированы, 82 группы с идентичным кадастром — QA подтвердил недосчёт sale-share): их блокировал geo-guard 250 м, применявшийся и к fias-pass.

ФИАС-идентичность строго сильнее гео-близости (один ГАР-UUID = одно здание по определению):

  • _mapping_sql(cluster_key_case, apply_geo_guard=True) — гард эмитится параметрически
  • fias-pass: apply_geo_guard=False — мержится при NULL geom и >250 м; keeper-правило «geom first» заодно чинит битые координаты
  • canon-pass: гард без изменений (анти cross-town), cross-fias guard не тронут

После merge+deploy — повторный прогон дедупа добьёт 130 групп (проверка: SELECT lower(house_fias_id), count(*) FROM houses WHERE house_fias_id IS NOT NULL GROUP BY 1 HAVING count(*)>1 → 0).

Test plan

  • Static: fias-mapping без ST_DistanceSphere, canon-mapping с полным гардом; toggle-тест параметра
  • Real-PG (self-skip без БД): same-fias+NULL-geom мержится, same-fias >250 м мержится, canon >250 м НЕ мержится
  • Полный pytest tradein-backend: 2924 passed, 6 skipped, 1 failed — pre-existing test_search_cache_hit
  • ruff + pre-commit green

Связано: PR #2185 (two-pass дедуп), QA-отчёт от 2026-07-02.

## Summary Closes #2187. После боевого fias-дедупа остались 130 same-fias групп (335 домов, 1 529 листингов фрагментированы, 82 группы с идентичным кадастром — QA подтвердил недосчёт sale-share): их блокировал geo-guard 250 м, применявшийся и к fias-pass. ФИАС-идентичность строго сильнее гео-близости (один ГАР-UUID = одно здание по определению): - `_mapping_sql(cluster_key_case, apply_geo_guard=True)` — гард эмитится параметрически - **fias-pass**: `apply_geo_guard=False` — мержится при NULL geom и >250 м; keeper-правило «geom first» заодно чинит битые координаты - **canon-pass**: гард без изменений (анти cross-town), cross-fias guard не тронут После merge+deploy — повторный прогон дедупа добьёт 130 групп (проверка: `SELECT lower(house_fias_id), count(*) FROM houses WHERE house_fias_id IS NOT NULL GROUP BY 1 HAVING count(*)>1` → 0). ## Test plan - [x] Static: fias-mapping без `ST_DistanceSphere`, canon-mapping с полным гардом; toggle-тест параметра - [x] Real-PG (self-skip без БД): same-fias+NULL-geom мержится, same-fias >250 м мержится, canon >250 м НЕ мержится - [x] Полный pytest tradein-backend: 2924 passed, 6 skipped, 1 failed — pre-existing `test_search_cache_hit` - [x] ruff + pre-commit green Связано: PR #2185 (two-pass дедуп), QA-отчёт от 2026-07-02.
lekss361 added 1 commit 2026-07-02 18:36:26 +00:00
fix(tradein/dedup): drop geo-guard in fias-pass — same-fias identity outranks proximity (#2187)
All checks were successful
CI / changes (pull_request) Successful in 10s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
03ece36abd
lekss361 merged commit ee47e331f3 into main 2026-07-02 18:51:55 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2195
No description provided.