gendesign/tradein-mvp/backend
bot-backend 5dc9abecc9
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 50s
feat(tradein/pdf): редизайн отчёта в реальном языке МЕРА (v2 HUD), не в PRINZIP-референсе
Оба предыдущих раунда (#2327, #2427) опирались на frontend/public/tradein.html +
trade-in.css — старый демо-мокап «PRINZIP», стилизованный под Брусника-конкурента
(footer файла: `data: brusnika-obmen-style`). Реальный бренд «МЕРА» — это
/trade-in/v2, HUD/blueprint-дэшборд с другой палитрой (v2/tokens.ts),
другими шрифтами (Manrope + IBM Plex Mono вместо PT Sans/Serif) и другим
словарём компонентов (glass-карточки с угловыми HUD-скобками, нумерованные
секции, donut-гейдж качества данных, пунктирные разделители, source-pill).

- Шрифты: Manrope (инстансирован из variable-файла через fonttools
  varLib.instancer, т.к. WeasyPrint не поддерживает variable-font @font-face)
  + IBM Plex Mono 400/500, embedded тем же _font_data_url()-паттерном, что
  PT Sans/Serif в #2427.
- Палитра/chrome: _ACCENT*/_BORDER* заменены на полный набор токенов 1:1 из
  v2/tokens.ts; _page_header/_page_footer переписаны по мотивам HeroBar.tsx/
  Footer.tsx (мono meta-ячейки, пунктирная градиентная линия с акцентной
  серединой, wordmark на brand.name — white-label не сломан).
- Контент: status-pill (свежесть данных), source-pill, donut-гейдж качества
  (inline SVG, техника из ObjectSummary.tsx), угловые HUD-скобки на
  карточках, нумерованные заголовки секций (01-04), пунктирные разделители
  строк — метрики качества данных (источники/CV/разброс) считаются из
  реальных полей AggregatedEstimate, не выдуманы.
- Overflow-hardening (главная жалоба к прошлому прототипу — «текст
  залезает друг на друга»): overflow-wrap:anywhere на всех
  data-производных строках (адрес, brand.name, названия аналогов, диск-
  лаймер с UUID), никакого nowrap кроме заведомо ограниченных полей
  (даты/номер отчёта/короткие лейблы), table-layout:fixed на таблице
  примеров, break-inside:avoid на карточках преимуществ.
- Верификация: реальный рендер в Docker (WeasyPrint) на normal + stress
  фикстурах (длинный адрес, длинный white-label бренд, экстремальные
  цены) + объективный PyMuPDF bbox-overlap детектор поверх текста —
  2 итерации fix (переполнение страницы на cover, перенос wordmark
  посреди слова в футере), 3-я verify — ALL_CLEAR. Полный pytest (2265
  passed) + ruff чисты; 1 непроходящий тест и 3 ruff-находки подтверждены
  pre-existing на main (git diff main пуст на этих файлах).
2026-07-04 21:34:26 +03:00
..
app feat(tradein/pdf): редизайн отчёта в реальном языке МЕРА (v2 HUD), не в PRINZIP-референсе 2026-07-04 21:34:26 +03:00
data/sql chore(tradein/proxy-pool): добавить domclick в provider_affinity CHECK (residential ASocks для #2000) 2026-07-04 17:21:07 +03:00
scripts feat(tradein/scraper-kit): migrate admin.py debug routes + domclick ingest to kit (#2305) 2026-07-04 00:27:01 +03:00
tests feat(tradein/pdf): редизайн отчёта в реальном языке МЕРА (v2 HUD), не в PRINZIP-референсе 2026-07-04 21:34:26 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile chore(scraper-kit): docker-context wiring + restore backend workspace dep (#2137) 2026-07-02 14:21:38 +00:00
pyproject.toml fix(tradein/pdf): честный embedded-шрифт (PT Sans/PT Serif) + matplotlib-график вместо div (#2427) 2026-07-04 14:39:37 +00:00