gendesign/tradein-mvp/backend/app
bot-backend aaf2bacfa3 feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert (#888)
Ops automation — today the ДКП ingest is manual (JOBS hardcoded to 2026Q1);
Q2'26 lands ~Aug 2026. Adds a monthly scheduler job that detects a new
Rosreestr quarter and logs an actionable ingest alert. Detect+alert only —
does NOT download the multi-GB zip or shell out from the tick.

- rosreestr_poll.py: latest_loaded_quarter (MAX deal_date) + next-quarter calc
  + HEAD-probe dataset availability; defensive (network err → False, never raises)
- tasks/rosreestr_quarter_poll.py: task wrapper (mirrors sber_index_pull)
- scheduler.py: trigger_rosreestr_quarter_poll_run + dispatch branch
- migration 096: scrape_schedules monthly seed, ON CONFLICT DO NOTHING

Refs #888, #727, #724
2026-05-31 15:58:03 +03:00
..
api fix(tradein): single-run guard на avito-city-sweep admin-endpoint (#874) 2026-05-31 08:55:33 +00:00
core feat(tradein): BrowserFetcher camoufox wrapper + Docker/config infra (Phase 0, #884) 2026-05-31 15:41:56 +03:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas docs(tradein): clarify n_analogs vs analogs[] top-10 cap (#698) (#737) 2026-05-30 15:00:48 +00:00
services feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert (#888) 2026-05-31 15:58:03 +03:00
tasks feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert (#888) 2026-05-31 15:58:03 +03:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00