|
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
Оба предыдущих раунда (#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 пуст на этих файлах). |
||
|---|---|---|
| .. | ||
| app | ||
| data/sql | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| Dockerfile | ||
| pyproject.toml | ||