gendesign/tradein-mvp/scripts
bot-backend 1bcc922e80
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
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 5m6s
fix(msk-collector): сетевой обрыв на машине больше не убивает многочасовой проход
Полный проход Яндекса по Москве умер 12.09 на восьмом часу:
`Page.goto: net::ERR_NETWORK_CHANGED`. Площадка была ни при чём — сразу после
и realty.yandex.ru, и git.gendsgn.ru отвечали 200, а в ту же минуту по DNS
отвалился и MCP-сервер ошибок. Моргнула сеть на самой машине. Ретрай в `_goto`
ловил только `PlaywrightTimeoutError`, поэтому обычная сетевая ошибка уходила
наверх и роняла прогон целиком.

Сетевые отказы Chromium вынесены в `_TRANSIENT_NET_ERRORS` и считаются СВОИМ
счётчиком: пять попыток с нарастающим ожиданием 15/30/45/60/120 с. Бюджет
попыток по таймауту при этом не тратится — обрыв сети длится минуты, а таймаут
навигации это совсем другой симптом. Исчерпали — стоп с причиной `nav_network`,
прогон продолжается тем же batch-id с --resume. Всё, что не в списке,
по-прежнему поднимается: тихий отказ площадки выглядит ровно так же, и молча
проглоченный он превращается в пустой прогон.

Тестов у сборщика не было вообще, при том что он уже дважды ронял многочасовой
прогон на ошибке, которая отказом площадки не была. Заведён первый файл: он
подгружает скрипт по пути (нет на месте — skip, не красный) и караулит границу
«наше или ихнее» — распознавание сетевых ошибок, переживание короткого обрыва,
остановка при длинном с правильной причиной, проброс незнакомой ошибки и
неизменность прежнего пути по таймауту.

Полный сьют бэкенда — 5902 passed, 37 skipped; ruff чист.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
2026-09-12 02:35:42 +03:00
..
local-avito-msk fix(msk-collector): сетевой обрыв на машине больше не убивает многочасовой проход 2026-09-12 02:35:42 +03:00
local-cian feat(tradein/scripts): local Playwright runners для Cian backfill (bypass server-IP anti-bot) (#553) 2026-05-24 20:00:59 +00:00
sql fix(#3376): первая точка — только по третьей точке истории; числа под критерием 2026-09-06 05:12:30 +05:00
backfill-yandex-addresses-ekb.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
backfill_001_address_fingerprints.py feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources (#475) 2026-05-23 14:29:39 +00:00
backfill_002_house_sources.sql feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources (#475) 2026-05-23 14:29:39 +00:00
backfill_003_listing_sources.sql feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources (#475) 2026-05-23 14:29:39 +00:00
browser-smoke.sh chore(tradein): browser-smoke.sh — verify tradein-browser /health + /fetch (#905) 2026-05-31 18:42:17 +03:00
cian_backfill_all.sh feat(tradein): houses.cian_zhk_url column + backfill (#568) (#627) 2026-05-28 13:57:43 +00:00
inspect-houses-html.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
inspect-search-html.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-confidence-distribution.py feat(tradein-estimator): unique-address-based confidence threshold (#513) 2026-05-24 11:52:00 +00:00
probe-db-counts.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-db-leak-full.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-db-region-leak.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-db-url-leak.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-migration-028.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
probe-migration-status.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
README.md feat(tradein): Phase 1.3 backfill scripts — fingerprints + house/listing_sources (#475) 2026-05-23 14:29:39 +00:00
test-playwright.py feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) 2026-05-24 19:58:38 +00:00
trigger-schedules.py chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204) 2026-07-03 10:08:56 +03:00
upload-cian-cookies.sh fix(tradein): убрать require_admin полностью — Caddy basic_auth достаточен (#474) 2026-05-23 14:21:01 +00:00

tradein-mvp scripts -- backfill

One-shot manual operator scripts. NOT auto-applied by deploy.yml (which only runs tradein-mvp/backend/data/sql/NN_*.sql).

Order

Run in numbered sequence after PR #470 (matching module) merged:

cd tradein-mvp/backend
export DATABASE_URL="postgresql+psycopg://user:pass@host:5432/tradein"

# 001 -- backfill houses.address_fingerprint (Python, idempotent)
uv run python ../scripts/backfill_001_address_fingerprints.py

# 002 -- backfill house_sources link rows (SQL, idempotent)
psql "${DATABASE_URL/postgresql+psycopg/postgresql}" -f ../scripts/backfill_002_house_sources.sql

# 003 -- backfill listing_sources link rows (SQL, idempotent)
psql "${DATABASE_URL/postgresql+psycopg/postgresql}" -f ../scripts/backfill_003_listing_sources.sql

All scripts idempotent -- re-running is safe (ON CONFLICT DO NOTHING on the SQL; row-level UPDATE WHERE NULL on the Python).

Other scripts

  • upload-cian-cookies.sh -- one-shot Cian session cookie upload (see inline docs)