Commit graph

  • 2e55c823a4 fix(ci): install uv via official installer in tradein test job (PEP 668) lekss361 2026-05-29 23:23:56 +03:00
  • be63b249b5 chore(tradein): close pre-commit ruff gap + add CI pytest gate (#666) (#675) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 19:18:48 +00:00
  • fa861f7c0c chore(tradein): close pre-commit ruff gap + add CI pytest gate (#666) lekss361 2026-05-29 21:57:41 +03:00
  • 96f02d37f3 feat(tradein): blend Avito IMV anchor into estimate + ДКП corridor advisory (#651, #652) (#674) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 17:42:06 +00:00
  • 70a1f604f9 Merge remote-tracking branch 'forgejo/main' into feat/tradein-651-652-accuracy lekss361 2026-05-29 20:39:15 +03:00
  • 29679a9545 fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) (#673) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 17:22:02 +00:00
  • e9eb812d8b fix(tradein): recompute expected_sold_* after IMV blend + band-guard anchor (#651) lekss361 2026-05-29 20:11:25 +03:00
  • 6046d55419 chore(tradein): drop shared Caddyfile timeout from #654 — defer to devops lekss361 2026-05-29 20:07:04 +03:00
  • 1d74410832 Merge remote-tracking branch 'forgejo/main' into feat/tradein-651-652-accuracy lekss361 2026-05-29 19:11:51 +03:00
  • 55e1dd1303 Merge remote-tracking branch 'forgejo/main' into fix/tradein-654-502-timeout lekss361 2026-05-29 19:10:58 +03:00
  • 3b29936245 feat(tradein): white-label branded page for client «Практика» (#657) (#672) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 16:09:23 +00:00
  • ed4c8b3f02 feat(tradein): configurable estimate quota + new exhausted-quota copy (#658) (#671) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 16:07:02 +00:00
  • 6a81e91a83 feat(tradein): surface Avito IMV anchor + ДКП corridor in HeroSummary (#651, #652) lekss361 2026-05-29 19:04:32 +03:00
  • 47fdd6e4df fix(tradein): scope GET /history to caller, close cross-pilot data leak (#656) (#670) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 15:59:03 +00:00
  • 2a3281d2d1 fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) lekss361 2026-05-29 18:58:40 +03:00
  • 70ee7b282c feat(tradein): blend Avito IMV anchor into estimate + ДКП corridor advisory — backend (#651, #652) lekss361 2026-05-29 18:58:10 +03:00
  • 6ddc9bc661 fix(tradein): bypass rate-limit for authenticated pilots + configurable limit (#655) (#669) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 15:56:30 +00:00
  • aa8ca9bcfc feat(backend): add /api/v1/ping liveness endpoint (#634) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-05-29 15:53:29 +00:00
  • 5f6b0d6d87 feat(tradein): white-label branded page for client «Практика» (#657) lekss361 2026-05-29 18:52:13 +03:00
  • 8472d83ac3 feat(tradein): configurable estimate quota + new exhausted-quota copy (#658) lekss361 2026-05-29 18:47:58 +03:00
  • e3f928b24d fix(tradein): scope GET /history to caller, close cross-pilot data leak (#656) lekss361 2026-05-29 18:41:54 +03:00
  • 747a325428 fix(tradein): bypass rate-limit for authenticated pilots + configurable limit (#655) lekss361 2026-05-29 18:30:53 +03:00
  • 6508023c29 Merge pull request 'chore(claude): self-extending tripwire extension + pause-bots guard' (#668) from chore/bot-safety-followups into main lekss361 2026-05-29 14:38:33 +00:00
  • 5673dd6298 chore(claude): extend self-extending tripwire + pause-bots guard for stale-claims chore/bot-safety-followups lekss361 2026-05-29 17:36:20 +03:00
  • 870f062587 feat(tradein): expected-sold price in estimate PDF (#648 S5b — final) (#665) Light1YT 2026-05-29 14:09:46 +00:00
  • 6545568778 feat(tradein): render expected-sold price alongside asking in estimate PDF (#648 S5b) Light1YT 2026-05-29 19:09:17 +05:00
  • 7d749f4080 feat(tradein): dual-display asking vs expected-sold in HeroSummary (#648 S5a) (#664) Light1YT 2026-05-29 14:00:49 +00:00
  • 00484fc02f feat(tradein): dual-display asking vs expected-sold in HeroSummary (#648 S5a) Light1YT 2026-05-29 19:00:40 +05:00
  • a060651328 feat(tradein): daily asking→sold ratio refresh (#648 S4) (#663) Light1YT 2026-05-29 13:49:36 +00:00
  • fc707f16e8 feat(tradein): daily asking→sold ratio refresh (#648 S4) Light1YT 2026-05-29 18:49:27 +05:00
  • a481a52aa8 Merge pull request 'chore(claude): harden autonomous multi-agent prompts (Path B)' (#662) from chore/autonomous-prompts-pathb into main lekss361 2026-05-29 13:41:37 +00:00
  • f36da624fe chore(claude): harden autonomous multi-agent prompts (Path B) lekss361 2026-05-29 16:38:23 +03:00
  • 35bd0238ef feat(tradein): estimator additive expected_sold price (#648 S3) (#661) Light1YT 2026-05-29 13:37:33 +00:00
  • a85e6d8e77 feat(tradein): estimator computes additive expected_sold price (#648 S3) Light1YT 2026-05-29 18:37:05 +05:00
  • c7b9565cd6 feat(tradein): asking_to_sold_ratios table + derivation (#648 S2) (#660) Light1YT 2026-05-29 13:18:28 +00:00
  • eb26681af4 feat(tradein): asking_to_sold_ratios table + per-rooms derivation (#648 S2) Light1YT 2026-05-29 18:18:19 +05:00
  • d021fc9231 feat(backtest): per-rooms asking→sold correction block (#648 S1) (#650) Light1YT 2026-05-29 13:11:55 +00:00
  • 6f018f4cdb feat(backtest): per-rooms asking→sold correction block (#648 S1) Light1YT 2026-05-29 18:11:25 +05:00
  • 228d12eab1 feat(backtest): read-only estimator-vs-ДКП accuracy harness (#648) (#649) Light1YT 2026-05-29 12:54:00 +00:00
  • 2b10da6e06 feat(backtest): read-only estimator-vs-ДКП accuracy harness (#648) Light1YT 2026-05-29 17:53:40 +05:00
  • e925a0ba6a feat(tradein): per-source listing price history — schema + daily snapshot (#570) (#646) Light1YT 2026-05-29 12:18:04 +00:00
  • 1e44ef09f4 feat(tradein): per-source listing price history — schema + daily snapshot (#570) Light1YT 2026-05-29 17:14:22 +05:00
  • 9380b76cf9 fix(glitchtip): healthcheck via python3 /_health/ — image has no wget (#644) (#645) Light1YT 2026-05-29 12:04:05 +00:00
  • 00b88ca2ba fix(glitchtip): healthcheck via python3 /_health/ — image has no wget (#644) Light1YT 2026-05-29 15:09:49 +05:00
  • af6278eaee feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) Light1YT 2026-05-29 09:23:17 +00:00
  • ac533812c2 feat(tradein): enrich GlitchTip SDK init with integrations + PII scrub (#396) Light1YT 2026-05-29 14:22:07 +05:00
  • 7ec19b3536 feat(scheduler): dormant Yandex Realty city-sweep (#561) (#642) Light1YT 2026-05-29 08:50:10 +00:00
  • ef0b0d0b3a feat(scheduler): add dormant Yandex Realty city-sweep (#561) Light1YT 2026-05-29 13:49:28 +05:00
  • 097c69e6d7 chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) (#641) Light1YT 2026-05-29 08:32:34 +00:00
  • a4603d64c8 chore(tradein): drop uvicorn --reload in prod (WatchFiles overhead) Light1YT 2026-05-29 13:31:57 +05:00
  • e4b5f14939 test(tradein): estimator pure-helper unit tests + fix None crash in _filter_outliers (#580) (#640) Light1YT 2026-05-29 08:24:18 +00:00
  • 47329a3adb test(tradein): unit-cover estimator pure helpers + fix None crash in _filter_outliers (#580) Light1YT 2026-05-29 13:17:33 +05:00
  • b6cddcd9a8 fix(tradein): plain natural-key dedup_hash for rosreestr deals (#576) (#638) Light1YT 2026-05-29 06:56:35 +00:00
  • b51893f7c3 fix(tradein): plain natural-key dedup_hash for rosreestr deals (#576) Light1YT 2026-05-29 11:55:15 +05:00
  • 40002cfcd2 fix(deploy-tradein): track SQL migrations with _schema_migrations + baseline (#637) Light1YT 2026-05-29 06:34:01 +00:00
  • 629f81db77 fix(deploy-tradein): track SQL migrations with _schema_migrations + baseline Light1YT 2026-05-29 11:28:58 +05:00
  • bd3e5c8216 feat(tradein): аккаунт praktika + лимит 15 оценок/мес, чистка PRINZIP в UI (#635) lekss361 2026-05-28 22:04:58 +00:00
  • 496f18e16d feat(tradein): аккаунт praktika + лимит 15 оценок/мес, чистка брендинга PRINZIP в UI lekss361 2026-05-29 01:00:24 +03:00
  • dc8f3f2019 feat(backend): add /api/v1/ping liveness endpoint bot-backend 2026-05-29 00:25:15 +03:00
  • 312df8536a feat(tradein): infer repair_state from listing description text (#622) (#632) Light1YT 2026-05-28 15:37:34 +00:00
  • 96c09c30ee feat(tradein): infer repair_state from listing description text (#622) Light1YT 2026-05-28 20:33:06 +05:00
  • 6cb3d7515c fix(tradein): per-bucket velocity formula + realistic срок продажи (#574) (#631) Light1YT 2026-05-28 15:35:16 +00:00
  • c5d1069e2c fix(tradein): per-bucket velocity uses district+class competitors (#574) Light1YT 2026-05-28 20:33:38 +05:00
  • e72cf87e35 feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) (#630) Light1YT 2026-05-28 15:31:24 +00:00
  • edd50a04fd feat(tradein): FDW grant + night-window seed for scrapers scheduler (#560 #563) Light1YT 2026-05-28 20:29:19 +05:00
  • 888c225029 fix(tradein): per-bucket velocity formula + realistic срок продажи (#574) Light1YT 2026-05-28 20:19:20 +05:00
  • d842811390 refactor(tradein): normalize repair_state raw→enum at ingest (#621) (#629) Light1YT 2026-05-28 15:18:11 +00:00
  • f1d275af3a fix(tradein): wrap repair_state migration 073 in BEGIN/COMMIT (#621) Light1YT 2026-05-28 20:17:20 +05:00
  • dfd608d6f2 refactor(tradein): нормализовать repair_state → enum на ингесте (#621) Light1YT 2026-05-28 20:12:35 +05:00
  • 21888bd866 feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) Light1YT 2026-05-28 20:11:27 +05:00
  • 4e4762f234 fix(tradein): backfill kn obj_class (parser + 3-pass) (#572) (#628) Light1YT 2026-05-28 15:04:32 +00:00
  • 39f390ddb8 fix(tradein): renumber obj_class migration to 121 + drop no-op DISTINCT ON (#572) Light1YT 2026-05-28 18:58:08 +05:00
  • 1731704ddc feat(tradein): houses.cian_zhk_url column + backfill (#568) (#627) Light1YT 2026-05-28 13:57:43 +00:00
  • cfa24c3bcf fix(tradein): SAVEPOINT-isolate houses backfill + ruff/shell fixes (#568) Light1YT 2026-05-28 18:54:27 +05:00
  • 609ac8ea9d fix(tradein): backfill kn price_per_m2 via sale_graph + peer median (#573) (#625) Light1YT 2026-05-28 13:50:45 +00:00
  • 07106d744a chore(mv): regression test + sql rule for weighted AVG (#295) (#626) Light1YT 2026-05-28 13:49:54 +00:00
  • ec26e5813f fix(tradein): implement listings_snapshots + offer_price_history writers (#567) (#624) Light1YT 2026-05-28 13:49:52 +00:00
  • dfae54384e fix(domrf): backfill kn obj_class via aiDescription + older snapshots (#572) Light1YT 2026-05-28 18:48:31 +05:00
  • c47a42c0a5 feat(tradein): houses.cian_zhk_url column + backfill (#568) Light1YT 2026-05-28 18:45:42 +05:00
  • 3c30942cf7 chore(mv): drop redundant migration — weighted-AVG fix already shipped in 100 (#295) Light1YT 2026-05-28 18:44:53 +05:00
  • 36bdda9290 fix(tradein): renumber migration 120 + numeric cast for PERCENTILE_CONT (#573) Light1YT 2026-05-28 18:44:12 +05:00
  • 5794009840 fix(tradein): SAVEPOINT-wrap cian snapshot write + harden log (#567) Light1YT 2026-05-28 18:43:58 +05:00
  • 57214f7c49 fix(tradein): backfill kn price_per_m2 (#573) Light1YT 2026-05-28 18:31:50 +05:00
  • b16935e679 fix(tradein): реализовать writers listings_snapshots/offer_price_history (#567) Light1YT 2026-05-28 18:26:52 +05:00
  • 1f30e3d234 fix(mv): weighted AVG в mv_layout_velocity (#295) Light1YT 2026-05-28 18:23:55 +05:00
  • 6553e5830f fix(tradein-imv): harden Avito IMV anti-bot path (#565) (#620) Light1YT 2026-05-28 11:29:11 +00:00
  • 81bf7e6def fix(tradein-imv): harden Avito IMV anti-bot path + offline contract tests (#565) feat/tradein-avito-imv-fix Light1YT 2026-05-28 16:29:05 +05:00
  • 3dfa179d47 feat(tradein): калибровка repair-коэффициентов base 1.0 (#7) (#619) Light1YT 2026-05-28 11:15:59 +00:00
  • 33ee00c065 feat(tradein): калибровка repair-коэффициентов с base 1.0 (#7) feat/tradein-repair-coef-calibration Light1YT 2026-05-28 16:15:54 +05:00
  • 1058dc2430 fix(tradein): decode Avito houses URL-encoded __preloadedState__ (#566) (#618) Light1YT 2026-05-28 10:58:54 +00:00
  • a3f45a6722 fix(tradein): decode Avito houses URL-encoded __preloadedState__ (#566) feat/tradein-avito-houses-fix Light1YT 2026-05-28 15:58:19 +05:00
  • 7c715c9249 feat(tradein): бейдж точности адреса qc_geo на карточке (accuracy #1) (#617) Light1YT 2026-05-28 10:37:54 +00:00
  • 492dd0aba6 feat(tradein): бейдж точности адреса (qc_geo) на карточке оценки (accuracy #1) feat/tradein-address-precision Light1YT 2026-05-28 15:37:33 +05:00
  • e716252081 feat(tradein): приоритизировать DaData house-backfill на дома с листингами (#2) (#616) Light1YT 2026-05-28 10:17:06 +00:00
  • 47ba362303 feat(tradein): приоритизировать DaData house-backfill на дома с листингами (accuracy #2) feat/tradein-backfill-prioritize-listings Light1YT 2026-05-28 15:17:01 +05:00
  • 04a90810b2 feat(tradein): geocode leftover deals via Nominatim (#569 Step 3) (#615) Light1YT 2026-05-28 09:59:49 +00:00
  • 783a85ad2b feat(tradein): geocode leftover deals via Nominatim fallback (#569 Step 3) feat/tradein-geocode-deals-nominatim Light1YT 2026-05-28 14:59:24 +05:00
  • aeaba42ed3 feat(tradein): backfill deals.lat/lon из house street-центроидов (#569 Step 2) (#614) Light1YT 2026-05-28 09:26:00 +00:00
  • 1c6d59e3ee feat(tradein): backfill deals.lat/lon из house street-центроидов (#569) feat/tradein-geocode-deals-from-houses Light1YT 2026-05-28 14:25:26 +05:00
  • 1d296dd77a feat(tradein): same-building матчинг аналогов по house_id (#6) (#613) Light1YT 2026-05-28 08:56:59 +00:00