fix(tradein/scraper): per-city SERP location for oblast city-sweep (#12)
#5160 -Commit
0817178efa
pushed by
lekss361
feat(tradein/ui): admin links to audit + analytics in UserMenu
#5156 -Commit
76070cea83
pushed by
lekss361
fix(tradein/audit): exclude /api/v1/admin/* from api_request events
#5149 -Commit
5025732d12
pushed by
lekss361
feat(tradein/admin): audit + activity dashboards (Feature 2/3 UI)
#5146 -Commit
d0e29ce914
pushed by
lekss361
feat(tradein/admin): audit + analytics read API over user_events
#5142 -Commit
780af144c3
pushed by
lekss361
feat(tradein/audit): request-audit middleware + estimate_request logging → user_events
#5133 -Commit
82928be326
pushed by
lekss361
fix(tradein/estimator): analogs cards match n_analogs, no cross-source dups
#5131 -Commit
51c79f9324
pushed by
lekss361
feat(tradein/db): user_events table - unified login/IP audit + behavior event log
#5122 -Commit
2a419aca18
pushed by
lekss361
feat(tradein/ui): Telegram feedback button in Topbar (env-gated)
#5120 -Commit
104681eabd
pushed by
lekss361
fix(tradein/pdf): running @page header/footer → ровно 4 страницы (без пустых)
#5114 -Commit
42a50cf814
pushed by
lekss361
fix(tradein/auth): restore brusnika (user2) pilot access
#5102 -Commit
60be78f97c
pushed by
lekss361
fix(tradein/geocoder): explicit Екатеринбург wins over oblast-city homonym (#11)
#5038 -Commit
2ef3e42da1
pushed by
lekss361
fix(tradein/geocoder): gate EKB-local tiers for non-EKB oblast addresses (#11)
#5036 -Commit
720cee2c8e
pushed by
lekss361
fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak
#4995 -Commit
f9ae6f0c53
pushed by
lekss361
feat(tradein/backtest): --city per-city валидация + corridor city-parity
#4989 -Commit
25a865f27b
pushed by
lekss361
fix(tradein/estimator): резолвить target-город коридора из payload.address (C2 hotfix)
#4985 -Commit
7801ac6cc1
pushed by
lekss361
fix(tradein/estimator): city-scope ДКП-коридора + oblast city-tokens/bbox
#4976 -Commit
b93d26990b
pushed by
lekss361
fix(tradein/estimator): per-city ценовой band ДКП-сделок для всей обл. 66
#4965 -Commit
e2502a0134
pushed by
lekss361
fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю обл. 66
#4954 -Commit
752cb1044b
pushed by
lekss361
test(rbac): user2 expected role expired after brusnika trial cutoff
#4785 -Commit
f4c26d474a
pushed by
lekss361
fix(tradein/auth): expire brusnika (user2) trial access
#4782 -Commit
3c4a33ca32
pushed by
lekss361
fix(tradein/cian): management_companies dedup — SELECT-before-INSERT, not ON CONFLICT
#4467 -Commit
db9bec8142
pushed by
lekss361
feat(tradein/domclick): production Layer B detail-backfill orchestrator (#2000)
#4463 -Commit
f627b0fa4d
pushed by
lekss361
feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000)
#4453 -Commit
0b9dfcc691
pushed by
lekss361
fix(tradein/estimator): восстановить и канонизировать корпус дома в дедупе (#2436)
#4449 -Commit
deffd31156
pushed by
lekss361