fix(tradein/deploy): скрапер пересобирается вместе с бэкендом + сверка образов после деплоя (#2679)
chore(ci): деплой на изменение ролей, ruff-гейт для МЕРЫ, удаление мёртвого workflow
chore(frontend): фикстуры макета не по умолчанию + удаление осиротевших компонентов
chore(tradein/db): уборка временных таблиц, дублей индексов и звёздочки в v_data_quality
feat(mera/b2c): правовая рамка — согласие до сохранения, удаление по сроку и по запросу — этап 4 из 8
feat(scraper): harvest plan_image из уже работающего catalog-скрапера (22d) — блокер для #299/#300
Не закрываю: функция поставлена, но данных не производит.
Замер на проде (БД gendesign, 2026-08-06):
domrf_kn_flat_plans
[HIGH] tradein/auth: потолок сверок бьёт и по своим — один IP на 5 запросах в секунду закрывает вход всем, бессрочно
[tradein][devops] Деплой неатомарен — recreate scraper посреди run убивает in-flight sweep (cian_full_load → zombie)
[HIGH] tradein/auth: bcrypt блокирует единственный event loop — поток логинов кладёт весь API, и он же сейчас единственный настоящий ограничитель темпа
tradein/browser: сайдкар не считает восстановимой ошибку «execution context was destroyed» — страница уходит в навигацию между goto и evaluate, ретрая нет
tradein/ci: тесты браузерного сайдкара не запускаются в пайплайне — 4 из них лежат красными на main, и об этом никто не знает
tradein: 38% дневных снимков объявлений не знают своего прогона — три вызова
save_listings из девяти теряют run_id
feat(tradein/payments): схема БД, конфиг и kill-switch платёжного контура
feat(mera/b2c): правовая рамка — согласие до сохранения, удаление по сроку и по запросу — этап 4 из 8
Deep review — 🟠 HIGH, merge на паузе
Гейт пройден: CI Trade-In / backend-tests = success 3m21s на 3ee99efa (явный success, не отсутствие…
lekss361
deleted branch feat/tradein-payments-tbank-client from lekss361/gendesign
2026-08-06 12:37:00 +00:00
feat(tradein/payments): подпись Token, клиент Т-Банка и сборка чека