Commit graph

  • 698576e77b fix(tradein/scraper): per-city SERP location for oblast city-sweep (#12) (#2525) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> main lekss361 2026-07-13 21:41:07 +00:00
  • 0817178efa fix(tradein/scraper): per-city SERP location for oblast city-sweep (#12) bot-backend 2026-07-14 00:33:24 +03:00
  • 67b50bf713 feat(tradein/ui): admin links to audit + analytics in UserMenu (#2524) lekss361 2026-07-13 21:16:29 +00:00
  • 76070cea83 feat(tradein/ui): admin links to audit + analytics in UserMenu bot-backend 2026-07-14 00:13:05 +03:00
  • c61ed5a96e fix(tradein/avito): catch sidecar timeout/transport errors in SERP fetch → graceful banned, not crash (#2523) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-07-13 20:59:39 +00:00
  • e61c2debe5 fix(tradein/audit): exclude /api/v1/admin/* from api_request events (#2522) lekss361 2026-07-13 20:55:16 +00:00
  • 6573edba51 fix(tradein/avito): route sidecar timeout/transport errors as transient, not crash bot-backend 2026-07-13 23:52:48 +03:00
  • 5025732d12 fix(tradein/audit): exclude /api/v1/admin/* from api_request events bot-backend 2026-07-13 23:49:13 +03:00
  • c904fbf94e feat(tradein/admin): audit + activity dashboards (Feature 2/3 UI) (#2521) lekss361 2026-07-13 20:45:34 +00:00
  • d0e29ce914 feat(tradein/admin): audit + activity dashboards (Feature 2/3 UI) bot-backend 2026-07-13 23:42:06 +03:00
  • 9fd6396fbc feat(tradein/admin): audit + analytics read API over user_events (#2520) lekss361 2026-07-13 20:26:58 +00:00
  • 780af144c3 feat(tradein/admin): audit + analytics read API over user_events bot-backend 2026-07-13 23:22:35 +03:00
  • 8b7af92ee3 fix(tradein/estimator): displayed analog cards match n_analogs + cross-source dedup (#2518) lekss361 2026-07-13 20:19:20 +00:00
  • 2c5b30f8c9 fix(tradein/auth): RouteGuard session/error screens with retry CTA (#2516) Co-authored-by: bot-frontend <bot-frontend@gendsgn.local> Co-committed-by: bot-frontend <bot-frontend@gendsgn.local> bot-frontend 2026-07-13 20:19:12 +00:00
  • d530602fbd fix(tradein/quota): per-user quota override + no-burn on empty estimate (#2517) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-07-13 20:18:42 +00:00
  • 32037af6de feat(tradein/audit): request-audit middleware + estimate_request logging → user_events (#2519) lekss361 2026-07-13 20:09:22 +00:00
  • 950ac91f7e fix(tradein/quota): fix stale 'Migration 184' header comment in 185_account_quota_overrides.sql bot-backend 2026-07-13 23:07:43 +03:00
  • 0875d5b9e6 fix(tradein/quota): renumber migration 184 -> 185 (prefix collision) bot-backend 2026-07-13 23:07:11 +03:00
  • 52e5a32fd5 Merge remote-tracking branch 'forgejo/main' into fix/tradein-quota-per-user-and-no-burn bot-backend 2026-07-13 23:05:14 +03:00
  • 51c79f9324 fix(tradein/estimator): analogs cards match n_analogs, no cross-source dups bot-backend 2026-07-13 23:04:25 +03:00
  • 82928be326 feat(tradein/audit): request-audit middleware + estimate_request logging → user_events bot-backend 2026-07-13 23:04:24 +03:00
  • 9c12407c09 fix(tradein/quota): per-user quota override + no burn on empty result bot-backend 2026-07-13 22:53:14 +03:00
  • b176b1bc44 fix(tradein/auth): honest 401/error screens in RouteGuard instead of misleading text bot-backend 2026-07-13 22:49:10 +03:00
  • 5647c2b40e feat(tradein/db): user_events table — unified login/IP audit + behavior event log (#2515) lekss361 2026-07-13 19:47:26 +00:00
  • 749c96cd0c feat(tradein/ui): Telegram feedback button in Topbar (env-gated) (#2514) lekss361 2026-07-13 19:44:00 +00:00
  • 2a419aca18 feat(tradein/db): user_events table - unified login/IP audit + behavior event log bot-backend 2026-07-13 22:41:28 +03:00
  • 104681eabd feat(tradein/ui): Telegram feedback button in Topbar (env-gated) bot-backend 2026-07-13 22:34:01 +03:00
  • 987dce11bc fix(tradein/pdf): МЕРА branding + 4-page report, no empty pages (#2513) lekss361 2026-07-13 18:04:07 +00:00
  • 42a50cf814 fix(tradein/pdf): running @page header/footer → ровно 4 страницы (без пустых) bot-backend 2026-07-13 21:01:53 +03:00
  • 9a73da4ce0 fix(tradein/pdf): МЕРА branding + fix 'Год постройки None' + drop duplicate deals-range on cover bot-backend 2026-07-13 20:37:48 +03:00
  • b5477362f0 fix(tradein/auth): restore brusnika (user2) pilot access (#2512) lekss361 2026-07-13 15:33:36 +00:00
  • 409c53b41b test(rbac): scope tradein expired-role tests to praktika (user2 restored) bot-backend 2026-07-13 18:16:12 +03:00
  • 60be78f97c fix(tradein/auth): restore brusnika (user2) pilot access bot-backend 2026-07-13 18:09:52 +03:00
  • 60c21ae2a5 feat(tradein/lead): persist 152-ФЗ proof-of-consent (LOW audit R2 #9) (#2511) bot-backend 2026-07-12 22:13:36 +00:00
  • 3bd0873230 fix(tradein/scheduler): re-enable deactivate_stale_domklik now that domclick sweeps run (LOW audit R2 #10) (#2510) bot-backend 2026-07-12 22:12:12 +00:00
  • 5e73b35206 fix(tradein/location-coef): re-center coefficient band so a strong central location ~= 1.0 (LOW audit R2 #7a) (#2509) bot-backend 2026-07-12 22:12:10 +00:00
  • 69ca746673 fix(tradein/v2): location coefficient informational + price-history clarity (LOW audit R2 #7c/#8) (#2508) bot-backend 2026-07-12 22:11:08 +00:00
  • 2cd24ecfbc fix(tradein/scrapers): clamp implausible listing/publish dates (LOW audit R2 #6) (#2507) bot-backend 2026-07-12 22:11:06 +00:00
  • 92371e7d9e fix(tradein/pdf): scale offer-page rent by room count (LOW audit R2 #5) (#2506) bot-backend 2026-07-12 22:11:04 +00:00
  • 7fa52bb3ad fix(tradein/estimator): honest repair-note + ratio_basis label; doc EKB-calibrated constants (LOW audit R2 #1-4) (#2505) bot-backend 2026-07-12 22:11:03 +00:00
  • 56ddf98be4 fix(tradein/scheduler): re-enable deactivate_stale_domklik now that domclick sweeps run bot-backend 2026-07-13 01:09:50 +03:00
  • 55e40814a6 feat(tradein/lead): persist 152-ФЗ proof-of-consent (client_ip, policy version, text snapshot) bot-backend 2026-07-13 01:09:00 +03:00
  • 7f06bd5608 fix(tradein/location-coef): re-center coefficient band so a strong central location ~= 1.0 bot-backend 2026-07-13 01:07:32 +03:00
  • fce9b1bbeb fix(tradein/v2): mark location coefficient as informational; clarify price-history source bot-backend 2026-07-13 01:04:11 +03:00
  • 6f6224f903 fix(tradein/estimator): honest repair-note + ratio_basis label; document EKB-calibrated band/premium constants bot-backend 2026-07-13 01:04:01 +03:00
  • 0e0911dd28 fix(tradein/scrapers): clamp implausible listing/publish dates at the save choke point bot-backend 2026-07-13 01:03:24 +03:00
  • c5fe38c89a fix(tradein/pdf): scale offer-page rent by room count instead of flat 1-room figure bot-backend 2026-07-13 01:02:11 +03:00
  • 348be445e3 fix(tradein/geocoder): gate EKB-local tiers for non-EKB oblast addresses (#11) lekss361 2026-07-12 21:08:49 +00:00
  • 8fdcd8df62 fix(tradein/geocoder): word-boundary EKB short-circuit + gate suggest() + gazetteer (#11) bot-backend 2026-07-13 00:06:19 +03:00
  • c98a879a79 Merge pull request 'fix(tradein/matching): Tier-2a city-guard для non-ЕКБ coord-less (п.2, defense-in-depth)' (#2502) from fix/tradein-oblast-tier2a-cityguard into main bot-backend 2026-07-12 21:04:28 +00:00
  • 2ef3e42da1 fix(tradein/geocoder): explicit Екатеринбург wins over oblast-city homonym (#11) bot-backend 2026-07-12 23:50:49 +03:00
  • 720cee2c8e fix(tradein/geocoder): gate EKB-local tiers for non-EKB oblast addresses (#11) bot-backend 2026-07-12 23:45:40 +03:00
  • 73f932d60a Merge pull request 'feat(tradein): sber-index freshness monitor (п.1 observability)' (#2503) from fix/tradein-sber-freshness-monitor into main bot-backend 2026-07-12 20:31:19 +00:00
  • e7c388dde7 Merge pull request 'refactor(tradein): консолидировать corridor/street-deals city-scope на _resolve_target_city (п.3)' (#2501) from fix/tradein-corridor-dedup-scope into main bot-backend 2026-07-12 20:31:05 +00:00
  • 07275c3c97 feat(tradein): монитор свежести СберИндекса (audit п.1) bot-backend 2026-07-12 23:27:35 +03:00
  • d92ff5c3d3 fix(tradein/oblast): Tier-2a guard — coord-less non-ЕКБ карточка не матчит ЕКБ-alias bot-backend 2026-07-12 23:26:01 +03:00
  • d31b1e01ee refactor(tradein): консолидировать corridor/street-deals city-scope на _resolve_target_city (п.3) bot-backend 2026-07-12 23:18:02 +03:00
  • 51473fc841 Merge pull request 'fix(tradein): oblast avito-sweep city-slug + Tier-2b geo-guard (R2, latent)' (#2500) from fix/tradein-scrapers-oblast into main bot-backend 2026-07-12 19:42:29 +00:00
  • c3d0f86f37 Merge pull request 'fix(tradein/v2): honesty + a11y — histogram outlier-guard, scatter-релейбл, mobile-notice, keyboard-nav (R2)' (#2499) from fix/tradein-frontend-honesty into main bot-backend 2026-07-12 19:42:15 +00:00
  • 219cdfdbcc fix(tradein/v2): честность гистограмм и оси scatter + мобильный guard + a11y графика bot-backend 2026-07-12 22:38:29 +03:00
  • bf4ce1ba36 fix(tradein/oblast): city-slug в avito SERP + geo/city guard в Tier-2b матчинга bot-backend 2026-07-12 22:38:11 +03:00
  • 519b482cdd Merge pull request 'fix(tradein/rbac): энфорсить roles.yaml scope на всех non-admin путях (R2 H3 security)' (#2498) from fix/tradein-rbac-scope into main bot-backend 2026-07-12 19:28:38 +00:00
  • e4bb2fc2e3 Merge pull request 'fix(tradein/lead): phone digit-guard, убрать dead landing-литерал, 152-ФЗ audit (R2)' (#2497) from fix/tradein-lead-hardening into main bot-backend 2026-07-12 19:28:26 +00:00
  • 85321d1d1a fix(tradein/rbac): энфорсить roles.yaml scope на всех non-admin путях (R2 H3) bot-backend 2026-07-12 22:26:14 +03:00
  • b1ac551451 Merge pull request 'fix(tradein): ingest/scheduler integrity — year sanity, propagate geo-guard, dkp_import counters + DO UPDATE (R2)' (#2496) from fix/tradein-ingest-scheduler-integrity into main bot-backend 2026-07-12 19:20:10 +00:00
  • 032fd95a7e Merge pull request 'fix(tradein): image_sanitizer — reject decompression-bomb до декода (R2 security)' (#2495) from fix/tradein-image-dos into main bot-backend 2026-07-12 19:19:39 +00:00
  • 0583fb0efd fix(trade-in): усилить валидацию /lead и почистить контракт (#2376) bot-backend 2026-07-12 22:19:20 +03:00
  • a3dfa2a99f Merge pull request 'fix(tradein/pdf): честность отчёта — убрать фейк-сроки, хардкод EKБ, противоречивый дисконт (R2)' (#2494) from fix/tradein-pdf-honesty into main bot-backend 2026-07-12 19:19:08 +00:00
  • 20bdc7dec8 test(tradein/pdf): обновить insufficient-page тест под city-aware № отчёта bot-backend 2026-07-12 22:12:42 +03:00
  • 6487813ec5 fix(tradein/ingest): 4 data-integrity дефекта в бэкфилле годов и импорте ДКП bot-backend 2026-07-12 22:12:31 +03:00
  • 1c9f0e1161 fix(tradein/photos): защита от pixel-flood DoS в image_sanitizer bot-backend 2026-07-12 22:12:12 +03:00
  • 0f4ed2f6e9 Merge pull request 'fix(tradein/estimator): СберИндекс только вторичка + confidence dispersion-ceiling (R2 H1+H2)' (#2493) from fix/tradein-estimator-sber-confidence into main bot-backend 2026-07-12 19:06:43 +00:00
  • 27d1b09c72 fix(trade-in-pdf): убрать три ложных утверждения из PDF-отчёта bot-backend 2026-07-12 22:04:17 +03:00
  • c1a01fdbf9 fix(tradein/estimator): СберИндекс — только вторичка + confidence dispersion-ceiling (R2 H1+H2) bot-backend 2026-07-12 22:03:59 +03:00
  • fb123bd97e Merge pull request 'fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak' (#2492) from fix/tradein-oblast-nonekb-headline into main lekss361 2026-07-12 18:49:08 +00:00
  • f9ae6f0c53 fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak bot-backend 2026-07-12 21:46:38 +03:00
  • 3293df8e14 Merge pull request 'feat(tradein/backtest): --city per-city валидация точности + corridor city-parity' (#2491) from fix/tradein-oblast-d-backtest into main lekss361 2026-07-12 17:51:12 +00:00
  • 4c56c5189a Merge pull request 'fix(tradein/estimator): резолвить target-город коридора из payload.address (C2 hotfix)' (#2490) from fix/tradein-oblast-c2fix-corridor-city into main lekss361 2026-07-12 17:50:19 +00:00
  • 25a865f27b feat(tradein/backtest): --city per-city валидация + corridor city-parity bot-backend 2026-07-12 20:49:04 +03:00
  • 69f8b50934 docs(tradein): исправить GET-rehydrate comment — row.address=geo.full_address (city-stripped), corridor unscoped для не-ЕКБ (known limitation) bot-backend 2026-07-12 20:48:25 +03:00
  • 7801ac6cc1 fix(tradein/estimator): резолвить target-город коридора из payload.address (C2 hotfix) bot-backend 2026-07-12 20:36:08 +03:00
  • 5d7c3e1c30 Merge pull request 'fix(tradein/estimator): city-scope ДКП-коридора + oblast city-tokens/bbox' (#2488) from fix/tradein-oblast-c2-estimator-scope into main lekss361 2026-07-12 17:21:55 +00:00
  • 6936558f6f Merge pull request 'fix(tradein): city-scope ДКП-запросы — убрать oblast-контаминацию (C1+C2)' (#2489) from fix/tradein-oblast-city-scope-corridor-ratio into main bot-backend 2026-07-12 17:20:31 +00:00
  • f631af4de3 fix(tradein): city-scope ДКП-запросы — убрать oblast-контаминацию (C1+C2) bot-backend 2026-07-12 20:18:36 +03:00
  • 4a579e74e0 Merge remote-tracking branch 'refs/remotes/forgejo/main' into fix/tradein-oblast-c2-estimator-scope bot-backend 2026-07-12 20:14:17 +03:00
  • b93d26990b fix(tradein/estimator): city-scope ДКП-коридора + oblast city-tokens/bbox bot-backend 2026-07-12 20:10:59 +03:00
  • 90a6e4bfe9 Merge pull request 'feat(tradein/scraper): per-city sweep capability для 5 городов области (schedules disabled)' (#2487) from fix/tradein-oblast-b1-city-anchors into main lekss361 2026-07-12 17:10:22 +00:00
  • cf91ac6b24 feat(tradein/scraper): per-city sweep capability для 5 городов области (schedules disabled) bot-backend 2026-07-12 20:06:46 +03:00
  • 74017b39c4 Merge pull request 'fix(tradein/dadata): suggest-fallback для house_fias_id когда CLEAN выключен' (#2486) from fix/tradein-dadata-clean-fallback-suggest into main bot-backend 2026-07-12 16:59:29 +00:00
  • e250869c9d fix(tradein/dadata): suggest-fallback для house_fias_id когда CLEAN выключен bot-backend 2026-07-12 19:55:37 +03:00
  • b0b2c94ece Merge pull request 'fix(tradein/estimator): per-city ценовой band ДКП-сделок для всей Свердловской обл. (66)' (#2485) from fix/tradein-oblast-c1-price-band into main lekss361 2026-07-12 16:09:05 +00:00
  • e2502a0134 fix(tradein/estimator): per-city ценовой band ДКП-сделок для всей обл. 66 bot-backend 2026-07-12 19:07:05 +03:00
  • 51952ebd70 Merge pull request 'fix(tradein/geocoder): раз-хардкод геокодера/DaData на всю Свердловскую обл. (region 66)' (#2484) from fix/tradein-oblast-f-geocoder into main lekss361 2026-07-12 15:35:27 +00:00
  • c0cbdc2f99 fix(tradein/geocoder): раз-хардкод геокодера/DaData на всю Свердловскую обл. (region 66) bot-backend 2026-07-12 18:33:05 +03:00
  • fcc37c46ab fix(tradein/v2): аналитика — выровнять два графика в равную высоту (#2483) bot-backend 2026-07-12 15:16:34 +00:00
  • c641d75f0b fix(tradein/v2): аналитика — выровнять два графика в равную высоту bot-backend 2026-07-12 18:14:39 +03:00
  • 95f0b0aa64 Merge pull request 'fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю Свердловскую обл. (region 66)' (#2482) from fix/tradein-oblast-a1-ingest into main lekss361 2026-07-12 15:14:22 +00:00
  • 752cb1044b fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю обл. 66 bot-backend 2026-07-12 18:11:47 +03:00
  • 338ccbb78f fix(tradein/v2): честность+консистентность — реконсиляция счётчика аналогов, убрать фейк-donut/линейку, outlier-guard, created_at, дисклеймеры (#2481) bot-backend 2026-07-12 15:09:10 +00:00
  • 06a88f683d fix(tradein/v2): честность+консистентность UI-блоков bot-backend 2026-07-12 18:02:42 +03:00