gendesign/tradein-mvp/backend/app
bot-backend 42a50cf814
All checks were successful
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 8s
CI Trade-In / changes (pull_request) Successful in 9s
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 59s
CI / frontend-tests (pull_request) Has been skipped
fix(tradein/pdf): running @page header/footer → ровно 4 страницы (без пустых)
Header/footer сидели В ПОТОКЕ каждой секции (~110pt/стр.) → cover переполнялся
(advice-таблица уезжала на почти-пустую стр. 2), footer listings-секции сиротел
на полностью пустую стр. 4 → отчёт 6 страниц вместо 4.

Fix: header+footer вынесены в running @page margin-boxes (position:running() +
@top-center/@bottom-center) — рендерятся в полях каждой страницы, не занимая
поток. Chrome строится ОДИН раз в generate_trade_in_pdf (else-ветка, не
insufficient_data) и оборачивается в .running-header/.running-footer; из 4
билдеров inline-вызовы header/footer убраны + очищены осиротевшие переменные.
Top-margin 20→25mm под running-header. Дисклеймер offer-страницы перенесён из
footer page_note в inline <p> (сохранён). Убрана дубль-строка advice на cover
(«до 15% при самопродаже» — детально расписана на стр. 04).

Верифицировано рендером реального WeasyPrint 69 в прод-образе: ровно 4 чистые
страницы, бренд МЕРА в шапке/футере всех страниц, «Год постройки —», дисклеймер
на месте. ruff clean; test_pdf_security 32/32; test_trade_in_pdf_dual_price 25/25.
2026-07-13 21:01:53 +03:00
..
api feat(tradein/lead): persist 152-ФЗ proof-of-consent (LOW audit R2 #9) (#2511) 2026-07-12 22:13:36 +00:00
core tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas fix(tradein/estimator): honest repair-note + ratio_basis label; doc EKB-calibrated constants (LOW audit R2 #1-4) (#2505) 2026-07-12 22:11:03 +00:00
services fix(tradein/pdf): running @page header/footer → ровно 4 страницы (без пустых) 2026-07-13 21:01:53 +03:00
tasks feat(tradein): монитор свежести СберИндекса (audit п.1) 2026-07-12 23:27:35 +03:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py fix(tradein/rbac): энфорсить roles.yaml scope на всех non-admin путях (R2 H3) 2026-07-12 22:26:14 +03:00
scheduler_main.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00