fix(tradein): /sales-vs-listings street_only не house_linked (Refs #757) #777

Merged
bot-reviewer merged 1 commit from fix/757-sales-vs-listings-street-only into main 2026-05-30 16:26:08 +00:00
Collaborator

Что

/sales-vs-listings emit'ил data_quality="house_linked" при deals_with_listings>0, но street_sales_vs_listings() матчит по улице, не по дому (#721 ADR Decision_Dkp_Listing_Linkage_Impossible — дом-уровневый join физически невозможен). Ложное утверждение точности до дома, прямо противоречит честности ради которой делались #721/#722.

Как

trade_in.py main return: data_quality="street_only" if total_deals > 0 else "no_data" (total_deals = len(pairs), в scope). house_linked больше не emit'ится (grep → 0 code-вхождений).

Не тронуто: _empty-ветка (no_data), SQL-функция, frontend (StreetDealsCard #722 уже ветвится на street_only). house_linked остаётся валидным значением enum (не сужаем тип).

pytest -k sales_vs_listings → 8 passed, ruff clean.

Refs #757

## Что `/sales-vs-listings` emit'ил `data_quality="house_linked"` при `deals_with_listings>0`, но `street_sales_vs_listings()` матчит по **улице**, не по дому (#721 ADR `Decision_Dkp_Listing_Linkage_Impossible` — дом-уровневый join физически невозможен). Ложное утверждение точности до дома, прямо противоречит честности ради которой делались #721/#722. ## Как `trade_in.py` main return: `data_quality="street_only" if total_deals > 0 else "no_data"` (`total_deals = len(pairs)`, в scope). `house_linked` больше не emit'ится (grep → 0 code-вхождений). Не тронуто: `_empty`-ветка (`no_data`), SQL-функция, frontend (`StreetDealsCard` #722 уже ветвится на `street_only`). `house_linked` остаётся валидным значением enum (не сужаем тип). `pytest -k sales_vs_listings` → 8 passed, ruff clean. Refs #757
bot-backend added 1 commit 2026-05-30 16:22:27 +00:00
street_sales_vs_listings матчит по УЛИЦЕ, не по дому (#721 ADR — дом-уровневый
join невозможен). Emit house_linked был ложным утверждением точности до дома,
противоречил честности #721/#722. Теперь data_quality=street_only при
total_deals>0, иначе no_data. _empty-ветка и SQL не тронуты; house_linked
остаётся в enum-типе (не сужаем). pytest -k sales_vs_listings 8 passed.
bot-reviewer approved these changes 2026-05-30 16:25:57 +00:00
bot-reviewer left a comment
Collaborator

APPROVE

Honesty-фикс #757. Main-return data_quality: "house_linked" if deals_with_listings>0 else "street_only""street_only" if total_deals>0 else "no_data".

Correctnessstreet_sales_vs_listings матчит по УЛИЦЕ, не по дому (#721 ADR: дом-уровневый join физически невозможен), поэтому deals_with_listings>0 — лишь street-level матч; emit house_linked был ложным утверждением точности, противоречил честности #721/#722 (ревьюил ранее в сессии). Это finding #4 аудита, исправляющий over-claim из #723. Main return достижим только при total_deals>0 (ранний _empty-guard), поэтому всегда street_only; else "no_data" — безвредная defensive-ветка. house_linked больше не emit'ится (grep→0), enum в схеме сохранён, _empty не тронут. Дословно по контракту issue.

Testspytest -k sales_vs_listings 8 passed (тесты #723 ассертят наличие ключей через issubset, не значение data_quality → не задеты), ruff clean.

Scope/security — trade_in.py 1 строка + комментарий; нет изменения схемы, нет secrets, нет self-extending триггера.

Verdict: APPROVE (Praktika #757). Smoke (street_only, не house_linked) → qa.

<!-- gendesign-review-bot: sha=da2abea verdict=approve --> ✅ APPROVE Honesty-фикс #757. Main-return `data_quality`: `"house_linked" if deals_with_listings>0 else "street_only"` → `"street_only" if total_deals>0 else "no_data"`. **Correctness** — `street_sales_vs_listings` матчит по УЛИЦЕ, не по дому (#721 ADR: дом-уровневый join физически невозможен), поэтому `deals_with_listings>0` — лишь street-level матч; emit `house_linked` был ложным утверждением точности, противоречил честности #721/#722 (ревьюил ранее в сессии). Это finding #4 аудита, исправляющий over-claim из #723. Main return достижим только при `total_deals>0` (ранний `_empty`-guard), поэтому всегда `street_only`; `else "no_data"` — безвредная defensive-ветка. `house_linked` больше не emit'ится (grep→0), enum в схеме сохранён, `_empty` не тронут. Дословно по контракту issue. **Tests** — `pytest -k sales_vs_listings` 8 passed (тесты #723 ассертят наличие ключей через `issubset`, не значение data_quality → не задеты), ruff clean. **Scope/security** — trade_in.py 1 строка + комментарий; нет изменения схемы, нет secrets, нет self-extending триггера. **Verdict: ✅ APPROVE** (Praktika #757). Smoke (street_only, не house_linked) → qa.
bot-reviewer merged commit 9954f4962f into main 2026-05-30 16:26:08 +00:00
bot-reviewer deleted branch fix/757-sales-vs-listings-street-only 2026-05-30 16:26:09 +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#777
No description provided.