feat(etl): auto_core_dev_v5 — core-name+dev backfill mapping'а (#2177 шаг 2) #2237

Merged
bot-backend merged 2 commits from feat/objective-mapping-autofill-2177 into main 2026-07-02 21:59:17 +00:00
Collaborator

Summary

  • Прежний trgm-матчер по СЫРЫМ именам дал ~300 маппингов и застрял: «Жилой комплекс "Малевич" (ЖК "Малевич")» vs «Малевич» — низкая similarity. Новый проход нормализует ядро имени с обеих сторон (normalize_complex_name из #2198) → exact-core match + dev-подтверждение (SPV-aware: любой девелопер проекта; guard — подстрока подтверждает только при короткой стороне ≥4 симв., «дом»/«юг» не якорят чужие имена).
  • Тиры: tier_a (1 кандидат + dev) → в БД (auto_core_dev_v5, score 0.90, is_reviewed=false, SAVEPOINT, ON CONFLICT DO NOTHING); tier_b (без dev) и ambiguous — только отчёт (кандидаты на DaData-гео проход). Дефолт dry-run; CLI --core-pass [--apply] + POST /admin/etl/objective-core-backfill.
  • Гейт ревью закрыт прод-проверкой: is_ekb на свежих снапшотах пуст (проставляется per-snapshot) — WHERE is_ekb=true внутри DISTINCT ON отдавал устаревшие имена. Фильтр заменён на «obj_id имел is_ekb=true хоть на одном снапшоте» + строка с latest: 935 несопоставленных ЕКБ-объектов со свежими именами (2026-06-28).
  • Эксперимент на прод-данных (без is_ekb): 620 уникальных core-совпадений, 531 dev-confirmed — ожидание tier_a после фильтра ниже, точные цифры даст post-merge dry-run.

Test plan

  • 17 mock-DB тестов (тиры, dry-run/apply, ON CONFLICT, guard подстроки), ruff clean; существующие trgm-проходы не тронуты
  • code-reviewer ⚠️→resolved (is_ekb-гейт прод-verified, substring-guard добавлен)
  • post-merge: dry-run на проде (счётчики + 30 пар глазами) → apply → покрытие §4.2 до/после

Refs #2177

## Summary - Прежний trgm-матчер по СЫРЫМ именам дал ~300 маппингов и застрял: «Жилой комплекс "Малевич" (ЖК "Малевич")» vs «Малевич» — низкая similarity. Новый проход нормализует **ядро** имени с обеих сторон (`normalize_complex_name` из #2198) → exact-core match + dev-подтверждение (SPV-aware: любой девелопер проекта; guard — подстрока подтверждает только при короткой стороне ≥4 симв., «дом»/«юг» не якорят чужие имена). - Тиры: **tier_a** (1 кандидат + dev) → в БД (`auto_core_dev_v5`, score 0.90, is_reviewed=false, SAVEPOINT, ON CONFLICT DO NOTHING); tier_b (без dev) и ambiguous — только отчёт (кандидаты на DaData-гео проход). Дефолт dry-run; CLI `--core-pass [--apply]` + `POST /admin/etl/objective-core-backfill`. - **Гейт ревью закрыт прод-проверкой**: `is_ekb` на свежих снапшотах пуст (проставляется per-snapshot) — `WHERE is_ekb=true` внутри DISTINCT ON отдавал устаревшие имена. Фильтр заменён на «obj_id имел is_ekb=true хоть на одном снапшоте» + строка с latest: **935 несопоставленных ЕКБ-объектов со свежими именами (2026-06-28)**. - Эксперимент на прод-данных (без is_ekb): 620 уникальных core-совпадений, 531 dev-confirmed — ожидание tier_a после фильтра ниже, точные цифры даст post-merge dry-run. ## Test plan - [x] 17 mock-DB тестов (тиры, dry-run/apply, ON CONFLICT, guard подстроки), ruff clean; существующие trgm-проходы не тронуты - [x] code-reviewer ⚠️→resolved (is_ekb-гейт прод-verified, substring-guard добавлен) - [ ] post-merge: dry-run на проде (счётчики + 30 пар глазами) → apply → покрытие §4.2 до/после Refs #2177
bot-backend added 1 commit 2026-07-02 21:41:12 +00:00
feat(etl): auto_core_dev_v5 — core-name + dev-confirm backfill проход (#2177 шаг 2)
Some checks failed
CI / backend-tests (pull_request) Successful in 14m13s
CI Trade-In / changes (pull_request) Successful in 6s
CI / changes (pull_request) Successful in 6s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Failing after 1m44s
CI / frontend-tests (pull_request) Has been skipped
f8d5a14290
Light1YT added 1 commit 2026-07-02 21:44:26 +00:00
chore(frontend): regen api-types.ts — objective-core-backfill endpoint (#2177)
All checks were successful
CI / backend-tests (pull_request) Successful in 14m18s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m3s
CI Trade-In / changes (pull_request) Successful in 6s
CI / changes (pull_request) Successful in 7s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m1s
b8cf6d2ae0
bot-backend merged commit e9c8d05e1d into main 2026-07-02 21:59:17 +00:00
bot-backend deleted branch feat/objective-mapping-autofill-2177 2026-07-02 21:59:17 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#2237
No description provided.