gendesign/tradein-mvp/backend
bot-backend 0a99555351
All checks were successful
CI Trade-In / changes (pull_request) Successful in 13s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m8s
fix(tradein/db): разовая чистка 1123 адресов Авито с приклеенным рейтингом (#2814)
Парсер починен в #2815, но уже записанные строки сами не вылечатся: апсерт пишет
address = COALESCE(listings.address, EXCLUDED.address) — при конфликте адрес
осознанно не перезаписывается (#2777). Миграция 254 режет хвост «·<цифра>» по
ДОСЛОВНО парсерному правилу _NOT_ADDRESS_TAIL_RE.

Паритет проверен не по глазам: все 1123 сырых адреса выгружены с прода и
прогнаны через живой _clean_address в боевом контейнере tradein-scraper —
rows=1123 mismatches=0. Dry-run на проде (BEGIN…ROLLBACK) экзактным файлом:
UPDATE 1123, загрязнённых после 0, районные хвосты «· р-н Академический»
сохранены 296/296.

Обратимость без новой таблицы: прежнее значение уже лежит в
raw_payload->>'address' (пишется на INSERT, отсутствует в ON CONFLICT DO UPDATE
SET, совпадает с address побайтово у 1123 из 1123). Откат-предикат в шапке
миграции проверен в dry-run: 1123 совпадения по всей таблице, все наши,
восстановление побайтовое; 10 строк с грязным raw_payload и уже нормализованным
адресом он не берёт.

geocode_tried_at сбрасывается: метка backoff'а привязана к тексту адреса, а
текст сменился. После миграции 1122 строки (854 пары) попадают в выборку
geocode_missing_listings; 245 строк закрываются мгновенно из geocode_cache.
2026-08-10 15:15:40 +05:00
..
app fix(tradein/scraper): прогон, у которого отказал каждый якорь, перестаёт быть успехом (#2625) (#2813) 2026-08-10 09:36:23 +00:00
data/sql fix(tradein/db): разовая чистка 1123 адресов Авито с приклеенным рейтингом (#2814) 2026-08-10 15:15:40 +05:00
scripts fix(tradein/scraper): дневной снимок узнаёт свой прогон (#2701) (#2707) 2026-08-06 07:00:17 +00:00
tests fix(tradein/avito): рейтинг дома перестаёт уезжать в адрес объявления (#2814) (#2815) 2026-08-10 09:47:15 +00: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 feat(tradein/auth): password hashing + session config foundation (#2550) 2026-07-30 09:40:51 +03:00