fix(tradein/ui): единый source-registry + честные знаменатели/лейблы источников (#2211) #2227

Merged
lekss361 merged 1 commit from fix/tradein-ui-source-honesty into main 2026-07-02 20:57:27 +00:00

1 commit

Author SHA1 Message Date
bot-backend
b815b23655 fix(tradein/ui): единый source-registry + честные знаменатели/лейблы источников (#2211)
All checks were successful
CI / changes (pull_request) Successful in 8s
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 8s
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m10s
- новый src/lib/source-registry.ts — один источник правды (SOURCES as const,
  канон сверен с estimator._canonical_sources); n1 live:false, убран из ростера
- HeroSummary: убран сфабрикованный «/7»; пустой sources_used → «источники не
  зафиксированы» вместо фейк-чипов; убрана выдуманная «классическая»; CV →
  честная метрика (реальный estimate.cv или лейбл «разброс»)
- ListingsCard: знаменатель убран совсем (sources_used включает оценочные
  источники — фиксированный знаменатель либо врёт, либо меньше числителя);
  fix невидимой rosreestr-точки (dot "ros"→"rosreestr", класса .ros нет в CSS)
- SourcesProgress: ростер из registry, мёртвый N1 убран
- EstimateForm: убран всегда-зелёный фейковый «● готов» cache-индикатор
- page.tsx: восстановленный отчёт показывает created_at, не new Date()
- types: +cv/source_counts/created_at (уже были в backend-схеме)
- инвариант: type-level (as const satisfies) + контракт-комментарий против
  хардкод-массивов источников

Refs #2211
2026-07-02 23:49:54 +03:00