fix(tradein): confidence «средняя» → amber + FIXME для compsTier (#742) #746

Merged
bot-reviewer merged 1 commit from feat/742-confidence-medium-amber into main 2026-05-30 15:44:37 +00:00
Collaborator

Summary

  • Part 1: CONF_LABELS.medium красился var(--success) (зелёный — визуально «высокая»). Заменено на var(--warn) (#9a6700, amber/caution — существующий токен из globals.css). high/low не тронуты.
  • Part 2: проверил AggregatedEstimate в types/trade-in.ts — структурного tier-поля (comps_tier/anchor_tier/confidence_basis) нет (есть только per-lot AnalogLot.tier для отдельных rosreestr-сделок, не anchor-уровень). → выбран путь «documentation-only»: substring-парсинг прозы confidence_explanation оставлен как fallback (чтобы не показать пусто), добавлен // FIXME: backend should expose structured comps_tier (#695 follow-up) маркер.

Why

Главный экран результата (демо 2026-06-01): «средняя» достоверность читалась как «высокая» из-за зелёного цвета. compsTier — тот же хрупкий substring-антипаттерн, что чинил backend #695; помечен для будущего структурного поля.

Test plan

  • npx tsc --noEmit → 0 ошибок
  • npm run build → ✓ Compiled successfully, 10/10 pages
  • grep 'medium.*var(--success)' HeroSummary.tsx → 0; medium теперь var(--warn)
  • Smoke: medium-оценка → amber-цвет достоверности (qa)

Refs #742

## Summary - **Part 1**: `CONF_LABELS.medium` красился `var(--success)` (зелёный — визуально «высокая»). Заменено на `var(--warn)` (#9a6700, amber/caution — существующий токен из globals.css). high/low не тронуты. - **Part 2**: проверил `AggregatedEstimate` в `types/trade-in.ts` — структурного tier-поля (`comps_tier`/`anchor_tier`/`confidence_basis`) **нет** (есть только per-lot `AnalogLot.tier` для отдельных rosreestr-сделок, не anchor-уровень). → выбран путь «documentation-only»: substring-парсинг прозы `confidence_explanation` оставлен как fallback (чтобы не показать пусто), добавлен `// FIXME: backend should expose structured comps_tier (#695 follow-up)` маркер. ## Why Главный экран результата (демо 2026-06-01): «средняя» достоверность читалась как «высокая» из-за зелёного цвета. compsTier — тот же хрупкий substring-антипаттерн, что чинил backend #695; помечен для будущего структурного поля. ## Test plan - [x] `npx tsc --noEmit` → 0 ошибок - [x] `npm run build` → ✓ Compiled successfully, 10/10 pages - [x] `grep 'medium.*var(--success)' HeroSummary.tsx` → 0; medium теперь `var(--warn)` - [ ] Smoke: medium-оценка → amber-цвет достоверности (qa) Refs #742
bot-frontend added 1 commit 2026-05-30 15:41:15 +00:00
CONF_LABELS.medium красился var(--success) (зелёный, читается как «высокая»)
→ var(--warn) (amber). compsTier substring-парсит прозу confidence_explanation;
структурного tier-поля в AggregatedEstimate нет — оставлен fallback + FIXME-маркер
(#695 follow-up) для будущего backend-поля.

Refs #742
bot-reviewer approved these changes 2026-05-30 15:44:27 +00:00
bot-reviewer left a comment
Collaborator

APPROVE

Confidence-color + compsTier FIXME (Praktika #742).

Correctness

  • Part 1: medium var(--success)var(--warn). Подтверждено: --warn: #9a6700 определён в globals.css:42 (amber/caution), уже используется в trade-in.css:1874 — валидный существующий токен, без сырого hex, без нового токена. DoD выполнен (medium.*var(--success) → 0).
  • Part 2: только FIXME-маркер, substring-fallback сохранён — соответствует documentation-only пути issue (структурного comps_tier/anchor_tier поля нет, проверено). Не ломает, не показывает пусто.
  • tsc 0, build ✓ 10/10. Строка CONF_LABELS в другом регионе чем empty-state из #743mergeable:true, конфликта нет.

Scope/security — 2 frontend-файла (1 строка цвета + комментарий); backend не тронут, нет self-extending триггера, нет secrets. Smoke → qa.

<!-- gendesign-review-bot: sha=0e76183 verdict=approve --> ✅ APPROVE Confidence-color + compsTier FIXME (Praktika #742). **Correctness** - Part 1: `medium` `var(--success)` → `var(--warn)`. Подтверждено: `--warn: #9a6700` определён в `globals.css:42` (amber/caution), уже используется в `trade-in.css:1874` — валидный существующий токен, без сырого hex, без нового токена. DoD выполнен (`medium.*var(--success)` → 0). - Part 2: только FIXME-маркер, substring-fallback сохранён — соответствует documentation-only пути issue (структурного `comps_tier`/`anchor_tier` поля нет, проверено). Не ломает, не показывает пусто. - tsc 0, build ✓ 10/10. Строка CONF_LABELS в другом регионе чем empty-state из #743 — `mergeable:true`, конфликта нет. **Scope/security** — 2 frontend-файла (1 строка цвета + комментарий); backend не тронут, нет self-extending триггера, нет secrets. Smoke → qa.
bot-reviewer merged commit 1b8e3b1f25 into main 2026-05-30 15:44:37 +00:00
bot-reviewer deleted branch feat/742-confidence-medium-amber 2026-05-30 15:44:37 +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#746
No description provided.