Commit graph
Select branches
Hide pull requests
audit/1871-p1-2-ghost-anchor-guard
audit/1871-p1-3-isreal-stubs
audit/1871-p1-scenarios-collapse
audit/1871-p2-avito-coord
audit/1871-p2-estimator-dedup-split
audit/1871-p2-invest-moi
audit/1871-p2-velocity-market
audit/1871-p3-uiux
chore/analyst-inbound-queue-tradein-db
chore/bot-harness-tuning
chore/bot-safety-followups
chore/design-sync-tradein
chore/frontend-vitest-wkt-tests
chore/mock-financial-estimate
chore/ptica-iso-preview-spin
chore/remove-n1-scraper
ci/forgejo-pytest-gate
ci/frontend-vitest-job
docs/agent-usage-throttle-qa-terminal
feat/1746-utility-infra-map
feat/39-osrm-per-category
feat/794-sber-time-adjust
feat/801-preview-full-wt
feat/activate-domclick-sweep
feat/analyst-role-audit-962
feat/analyze-market-coords-999
feat/analyze-response-contract-961
feat/avito-detail-backfill
feat/avito-newbuilding-capture
feat/avito-newbuilding-sweep
feat/backtest-oos-almon-seasonal
feat/browser-concurrent-pool
feat/cbr-inflation-macro-946
feat/cian-zhk-resolve-972
feat/claude-envvars-and-stale-cron
feat/competitor-velocity-spatial-fallback-968
feat/concept-house-catalog-1965-stage3a
feat/concept-house-picker-1965-stage3b
feat/concept-live-massing-1965-stage2b
feat/concept-recompute-1965-stage2a
feat/concept-section-1965-stage1
feat/dcf-velocity-schedule
feat/demand-supply-months-of-inventory
feat/district-vocab-reconciliation
feat/emiss-macro-indicators-946
feat/finmodel-cost-cascade
feat/finmodel-dcf
feat/finmodel-financing
feat/finmodel-price-calibration
feat/finmodel-sitefinder-bridge
feat/forecast-celery-task-persist
feat/forecast-chart-section6
feat/forecast-docx-pptx-buttons
feat/forecast-endpoint-horizon-enqueue
feat/forecast-export-docx-959
feat/forecast-export-md-959
feat/forecast-export-pptx-959
feat/forecast-export-telegram-959
feat/forecast-export-ui-959
feat/forecast-future-supply-competitors
feat/forecast-meta-footer
feat/forecast-orchestrator-service
feat/forecast-product-tz-block
feat/forecast-scoring-panel
feat/forecast-section-998
feat/horizon-selector-996
feat/insight-entity-948a
feat/listings-segment-param-1188
feat/location-948b-r
feat/location-entity-948b
feat/market-map-layers-999
feat/newbuilding-enrich-backfill-972
feat/objective-lots-history-writer-307-obj6
feat/plan-vectorization-spike-299
feat/ptica-cockpit-complete-bottom
feat/ptica-default-and-rich-map
feat/ptica-map-glyphs-sitefinder-dark
feat/ptica-real-ksit-frontend
feat/ptica-tabs-6-6-reports-params
feat/riasurt-sverdl-layers-108
feat/rosstat-emiss-macro-946
feat/site-finder-v2-cockpit
feat/site-finder-v2-map-light-polish
feat/tradein-address-precision
feat/tradein-avito-houses-fix
feat/tradein-avito-imv-fix
feat/tradein-backfill-prioritize-listings
feat/tradein-domclick-house-sku-schema
feat/tradein-ekb-geoportal-buildings
feat/tradein-fias-estimate-frontend
feat/tradein-fias-tier-matching
feat/tradein-geocode-deals-from-houses
feat/tradein-geocode-deals-nominatim
feat/tradein-hedonic-ground-floor
feat/tradein-repair-coef-calibration
feat/tradein-same-building-match
feat/velocity-mv-61
feat/wire-978-almon-rate-regime
feat/wire-district-resolver
feat/yandex-camoufox-transport
feat/yandex-detail-backfill
feat/yandex-exhaustive-price-room
feat/yandex-novostroyki-newflat
feat/zone-regulation-backfill
fix/1666-layout-velocity-beat
fix/1667-metro-block
fix/1668-analyze-confidence
fix/171-migration-path
fix/1781-house-fk-source-identity
fix/1917-fetch-json-network-retry
fix/1926-app-log-stdout
fix/1926-scrape-runs-total-seen
fix/2013-avito-cohort-null
fix/admin-leads-interval-cast-1694
fix/admin-scrape-validation
fix/affordability-market-spread
fix/audit-followups-1953
fix/avito-novostroyki-segment
fix/avito-proactive-ip-rotate
fix/avito-sweep-single-run-guard
fix/backfill-kadastr-column
fix/backtest-sig-gate
fix/base-pace-room-bucket-1593
fix/best-layouts-bucket-normalization
fix/best-layouts-per-object-snapshot-1956
fix/cad-zones-multipolygon-1344
fix/ci-dedup-runner-storm-1709
fix/cian-detail-rich-fields
fix/cian-kitchen-area
fix/cian-paginate-tail-1393
fix/confidence-deal-count-window-1637
fix/conflict-resolution-freshness-1539
fix/deficit-segmentation-1959
fix/district-median-dedup-1352
fix/dkp-corridor-doc-p10p90-1695
fix/dkp-corridor-percentile-1520
fix/domrf-badge-regex-narrow-1686
fix/domrf-status-classify-1609
fix/emiss-period-dedup-1606
fix/emiss-pk-granularity-1687
fix/enrich-economics-window-1513
fix/estimator-tiebreaker-nanalogs
fix/excel-deficit-horizon-1590
fix/expire-brusnika-trial-access
fix/finmodel-split-disclosure-threshold
fix/frontend-healthcheck-hostname
fix/gate-verdict-no-blocker-1617
fix/geo-weight-floor-1633
fix/gknspecial-incremental-commit-per-prefix
fix/house-id-fk-realtime-link
fix/inn-regex-context-1640
fix/inn-regex-word-boundary-1682
fix/izyatie-ocr-cad-normalize
fix/job-settings-json-persist-v2
fix/job-settings-panel-json-state-persist
fix/leads-stats-window-1383
fix/listings-partial-indexes-1398
fix/match-economics-1511-1512
fix/migration-162-table-if-exists
fix/noise-loader-savepoint-per-row
fix/normalize-zero-fill-guard-1638
fix/nspd-geo-soft-time-limit-passthrough
fix/nspd-soft-time-limit-v2
fix/objective-lots-dedup-1964
fix/objective-mapping-is-reviewed-gate-307-obj2
fix/objective-sync-config-bare-except
fix/okn-objects-full-registry-load
fix/parcel-ird-overlap-except-expand
fix/parcel-snapshot-mdash-double-escape
fix/parking-economics-by-class
fix/pdf-expires-at-1530
fix/pilot-request-modal-validation
fix/poi-loader-leap-year-date-replace
fix/poi-score-scale-1486
fix/ptica-3d-preview-product-verdict
fix/ptica-button-fontsize
fix/ptica-inter-map-product
fix/ptica-left-rail
fix/ptica-parity-data-mapping
fix/ptica-visual-parity
fix/ptica-vri-row
fix/quartirography-area-bucket-1406
fix/rbac-test-user2-expired
fix/recommend-mix-saturation-latest-snapshot
fix/report-assembler-confounded-keys
fix/report-frontend-display-1953
fix/report-map-points-1961
fix/report-microcopy-1963
fix/report-nspd-zoning-1962
fix/residential-zone-detect-1353
fix/sber-dataset-paths-902
fix/score-label-threshold-1357
fix/score-sat-factor-1509
fix/scrape-cadastre-fail-counter-v2
fix/scrape-cadastre-permanent-fail-counter
fix/sf-feedback-batch
fix/site-finder-entry-crash-1001
fix/smart-suggestions-threshold-1503
fix/sold-pct-market-verdict-1407
fix/supply-layers-overlap-1355
fix/supply-view-devgroup-key-1650
fix/test-849-savepoint-count
fix/tradein-dedup-by-fias
fix/tradein-dedup-fias-pass-no-geoguard
fix/tradein-deploy-scraper-paths-filter
fix/tradein-no-numberless-house-insert
fix/tradein-praktika-logo-form-scroll
fix/tradein-v2-uiux-p1
fix/trend-ratio-vprior-zero-1508
fix/usermenu-analyst-role-label
fix/v2-map-legend-position
fix/v2-remove-resource-legend
fix/weather-wind-d-allnone
fix/week-review-backend-v2
fix/week-review-finish
fix/zoning-resolution-decouple
fix/zouit-engineering-area-gate
main
perf/171-objective-crm-report-month-idx
perf/best-layouts-objects-first
perf/forecast-parallel-horizons-1129
perf/tradein-estimate-audit
revert/site-finder-v2
rollback/sf-old-analysis-design
rollback/site-finder-home-light
test/residential-zone-rawprops-1681
#1000
#1002
#1003
#1004
#1005
#1006
#1007
#1008
#1009
#1010
#1011
#1012
#1013
#1014
#1015
#1016
#1017
#1018
#1019
#1020
#1021
#1022
#1023
#1024
#1025
#1026
#1027
#1028
#1029
#1030
#1031
#1032
#1033
#1034
#1035
#1036
#1037
#1038
#1039
#1040
#1041
#1042
#1043
#1044
#1045
#1046
#1047
#1048
#1049
#1050
#1051
#1052
#1053
#1054
#1055
#1056
#1068
#1069
#1071
#1072
#1073
#1074
#1075
#1076
#1077
#1078
#1079
#1080
#1082
#1083
#1089
#109
#1090
#1092
#1093
#1094
#1096
#1097
#1098
#1099
#110
#1100
#1101
#1103
#1104
#1105
#1106
#1107
#1108
#1109
#111
#1110
#1111
#1112
#1113
#1114
#1115
#1117
#1118
#1120
#1121
#1123
#1124
#1125
#1126
#1127
#1128
#1131
#1132
#1133
#1135
#1137
#1139
#1140
#1141
#1143
#1144
#1145
#1146
#1147
#1148
#1149
#1150
#1152
#1153
#1154
#1155
#1157
#1158
#116
#1160
#1161
#1162
#1163
#1164
#1165
#1166
#1167
#1168
#117
#1170
#1171
#1172
#1173
#1174
#1175
#1176
#1177
#1178
#1179
#118
#1180
#1181
#1183
#1185
#119
#1192
#1193
#1194
#1195
#1197
#1199
#120
#1200
#121
#122
#123
#124
#1243
#1249
#125
#1250
#1251
#1252
#1253
#1254
#1255
#1256
#1257
#1258
#1259
#1260
#1261
#1262
#1263
#1264
#1265
#1266
#1267
#1268
#1269
#1270
#1271
#1272
#1273
#1274
#1275
#1276
#1277
#1278
#1279
#1280
#1281
#1282
#1283
#1284
#1285
#1286
#1287
#1288
#1289
#1290
#1291
#1292
#1293
#1294
#1295
#1296
#1297
#1298
#1299
#1300
#1301
#1302
#1303
#1304
#1305
#1306
#1307
#1308
#1309
#131
#1310
#1311
#1312
#1313
#1314
#1315
#1316
#1317
#1318
#1319
#132
#1320
#1321
#1322
#1323
#1324
#1325
#1326
#1327
#1328
#1329
#133
#1330
#1331
#1332
#1333
#1334
#1335
#135
#136
#137
#138
#139
#141
#142
#143
#145
#146
#147
#148
#149
#151
#152
#153
#154
#1540
#1541
#1542
#1543
#1544
#1545
#1546
#1547
#1548
#1549
#155
#1550
#1552
#1554
#1555
#1556
#1557
#1558
#1559
#1568
#157
#158
#159
#160
#163
#164
#165
#1657
#1658
#1659
#166
#1660
#1661
#1662
#1663
#1664
#1665
#1669
#167
#1670
#1671
#1672
#1673
#1674
#1675
#1676
#1677
#1678
#1679
#1680
#1681
#1682
#1683
#1684
#1685
#1686
#1687
#1688
#1689
#169
#1690
#1691
#1692
#1693
#1694
#1695
#1696
#1697
#1698
#1699
#170
#1700
#1701
#1702
#1703
#1704
#1705
#1706
#1707
#1708
#171
#1710
#1711
#1712
#1713
#1714
#1715
#1716
#1717
#1718
#1719
#172
#1720
#1721
#1722
#1724
#1725
#1726
#1727
#1728
#1729
#173
#1730
#1731
#1732
#1733
#1734
#1735
#174
#1747
#1748
#1749
#175
#1750
#1751
#1752
#1753
#1754
#1755
#1756
#1757
#1758
#1759
#176
#1760
#1761
#1762
#1763
#1764
#1765
#1766
#1767
#1768
#1769
#177
#1770
#1771
#1775
#1776
#1777
#1778
#1779
#178
#1780
#1782
#1783
#1784
#1786
#1787
#1788
#179
#1794
#1797
#1798
#1799
#180
#1800
#1802
#1807
#1808
#1809
#181
#1810
#1813
#1815
#1817
#1818
#1819
#182
#1821
#1822
#1823
#1824
#1825
#1826
#1827
#1828
#1829
#183
#1830
#1831
#1832
#1833
#1834
#1835
#1836
#1837
#1838
#1839
#184
#1840
#1841
#1842
#1844
#1845
#1847
#1848
#1849
#185
#1851
#1852
#1853
#1854
#1855
#1856
#1857
#1858
#1859
#186
#1860
#1861
#1862
#1863
#1864
#1865
#1866
#1867
#1868
#1869
#187
#1870
#1872
#1873
#1874
#1875
#1876
#1877
#1878
#1879
#188
#1880
#1882
#1883
#1884
#1885
#1886
#1887
#1888
#1889
#189
#1890
#1891
#1892
#1893
#1894
#1895
#1896
#1897
#1898
#1899
#190
#1900
#1901
#1902
#1903
#1904
#1905
#1906
#1907
#1908
#1909
#191
#1910
#1911
#1912
#1913
#1914
#1915
#1916
#1919
#192
#1920
#1921
#1922
#1923
#1924
#1925
#1927
#1928
#1929
#193
#1930
#1931
#1932
#1933
#1934
#1935
#1936
#1937
#1938
#1939
#194
#1941
#1942
#1943
#1944
#1946
#1947
#1948
#195
#1952
#196
#1973
#1974
#1975
#1976
#1977
#1978
#1979
#198
#1980
#1981
#1982
#1983
#1984
#1985
#1986
#1987
#1988
#199
#1997
#1998
#1999
#2001
#2004
#2005
#2006
#2014
#2015
#2016
#2017
#2018
#2019
#2020
#2021
#2022
#2023
#2024
#2025
#2026
#2027
#2028
#2029
#2030
#2031
#2032
#2033
#2034
#2035
#2037
#2047
#2048
#2049
#205
#2050
#2051
#2052
#2053
#2054
#2055
#2056
#2057
#2058
#2059
#206
#2060
#2061
#2063
#2064
#2065
#2066
#2067
#2068
#2069
#207
#2070
#2071
#2072
#2073
#2074
#2075
#2076
#2077
#2078
#2079
#208
#2080
#2082
#2083
#2084
#2085
#2086
#2088
#2089
#209
#2090
#2091
#2092
#2093
#2094
#2095
#2096
#2097
#2098
#2099
#210
#2100
#2101
#2102
#2103
#2104
#2105
#2106
#2107
#2108
#2109
#211
#2110
#2112
#2113
#2114
#2115
#2116
#2117
#2118
#212
#2120
#2121
#2122
#2123
#2124
#2125
#213
#2139
#214
#2140
#2141
#2142
#2143
#2144
#2145
#2146
#2147
#2148
#2149
#215
#2150
#2151
#2152
#2153
#2154
#2155
#2156
#2157
#2158
#2159
#216
#2165
#2166
#2167
#2168
#2169
#217
#2170
#2171
#2172
#2173
#2174
#2175
#2176
#218
#2182
#2183
#2184
#2185
#2186
#219
#2190
#2191
#2193
#2194
#2195
#2196
#2197
#2198
#2199
#220
#221
#2210
#2219
#222
#2220
#2221
#2222
#2223
#2224
#2225
#2226
#2227
#2228
#2229
#223
#2230
#2231
#2232
#2237
#2238
#2239
#224
#2240
#2241
#2242
#2243
#2244
#2245
#2246
#2247
#2248
#2249
#225
#2250
#2251
#2252
#2253
#2256
#2257
#2258
#226
#2260
#2261
#2263
#2268
#2270
#2271
#2272
#2273
#2274
#2276
#2278
#2279
#228
#2280
#2281
#2282
#2283
#2284
#2285
#2286
#2287
#2288
#2289
#229
#2290
#2292
#2293
#2296
#2297
#2298
#2299
#230
#2300
#2301
#2302
#2303
#2311
#2312
#2313
#2314
#2315
#2318
#2319
#2321
#2324
#2325
#2326
#2327
#2328
#2329
#2331
#2332
#2333
#2338
#2339
#2340
#2341
#2342
#2343
#2344
#2345
#2346
#2347
#2348
#2353
#2354
#2355
#2356
#2357
#2359
#2360
#2365
#2366
#2368
#2370
#2371
#2372
#2373
#2374
#2375
#2383
#2384
#2387
#2388
#2389
#239
#2390
#2391
#2392
#2393
#2394
#2396
#2398
#2399
#240
#2400
#2401
#2402
#2403
#2404
#2405
#2407
#241
#2410
#2411
#2412
#2413
#2414
#2415
#2417
#2418
#2419
#2420
#2421
#2424
#2426
#2427
#2428
#2429
#2430
#2432
#2433
#2434
#2436
#2437
#2438
#2439
#2441
#2444
#2446
#2447
#2448
#245
#2450
#2451
#2453
#2454
#2455
#2456
#2458
#2459
#246
#2460
#2461
#2463
#2465
#2466
#2467
#2468
#2469
#247
#2470
#2471
#2472
#2473
#2474
#2475
#2476
#2477
#2478
#2479
#248
#2480
#2481
#2482
#2483
#2484
#2485
#2486
#2487
#2488
#2489
#249
#2490
#2491
#2492
#2493
#2494
#2495
#2496
#2497
#2498
#2499
#250
#2500
#2501
#2502
#2503
#2504
#2505
#2506
#2507
#2508
#2509
#2510
#2511
#2512
#2513
#2514
#2515
#2516
#2517
#2518
#2519
#2520
#2521
#2522
#2523
#2524
#2525
#257
#258
#260
#262
#265
#266
#267
#268
#269
#270
#272
#273
#274
#275
#276
#277
#278
#279
#280
#281
#282
#283
#284
#285
#286
#287
#288
#289
#290
#291
#292
#293
#294
#296
#298
#302
#303
#304
#305
#306
#308
#309
#310
#311
#312
#313
#315
#316
#317
#318
#319
#320
#321
#322
#323
#324
#325
#326
#327
#328
#329
#330
#331
#332
#333
#334
#335
#336
#337
#338
#339
#340
#341
#342
#343
#344
#345
#346
#347
#348
#349
#350
#351
#352
#353
#354
#355
#356
#357
#358
#359
#360
#361
#362
#363
#364
#365
#366
#367
#368
#369
#370
#371
#372
#373
#374
#375
#376
#377
#378
#379
#380
#381
#382
#383
#384
#385
#386
#387
#388
#389
#403
#404
#405
#406
#407
#408
#409
#410
#412
#413
#414
#416
#417
#418
#419
#420
#421
#422
#423
#424
#425
#426
#430
#432
#433
#434
#435
#436
#437
#438
#439
#440
#441
#442
#443
#444
#445
#447
#448
#449
#450
#451
#452
#453
#454
#455
#456
#457
#458
#459
#460
#461
#462
#463
#464
#465
#466
#467
#468
#469
#470
#471
#472
#473
#474
#475
#476
#477
#478
#479
#480
#481
#482
#483
#484
#485
#486
#487
#488
#489
#490
#491
#492
#493
#494
#495
#496
#497
#498
#499
#500
#501
#502
#503
#504
#505
#506
#507
#508
#509
#510
#511
#512
#513
#514
#515
#516
#517
#518
#519
#520
#521
#522
#523
#524
#525
#526
#527
#528
#529
#530
#531
#532
#533
#534
#535
#536
#537
#538
#539
#540
#541
#542
#543
#544
#545
#546
#547
#548
#549
#550
#551
#552
#553
#554
#555
#556
#557
#558
#583
#584
#585
#586
#587
#588
#589
#590
#591
#592
#593
#594
#595
#596
#597
#598
#599
#600
#601
#602
#603
#604
#605
#606
#607
#608
#609
#610
#611
#612
#613
#614
#615
#616
#617
#618
#619
#620
#624
#625
#626
#627
#628
#629
#630
#631
#632
#634
#635
#637
#638
#640
#641
#642
#643
#645
#646
#649
#650
#660
#661
#662
#663
#664
#665
#668
#669
#670
#671
#672
#673
#674
#675
#676
#677
#678
#679
#680
#681
#682
#683
#684
#685
#686
#687
#688
#689
#700
#701
#702
#703
#704
#705
#706
#707
#708
#709
#710
#711
#712
#713
#715
#716
#718
#719
#720
#723
#725
#729
#733
#734
#735
#737
#738
#739
#743
#744
#745
#746
#749
#751
#752
#761
#776
#777
#778
#779
#780
#782
#783
#784
#785
#787
#788
#789
#790
#791
#792
#793
#797
#798
#802
#803
#804
#805
#807
#808
#809
#810
#811
#812
#813
#816
#817
#818
#819
#820
#825
#828
#829
#830
#831
#832
#833
#837
#838
#84
#840
#841
#842
#844
#845
#846
#847
#848
#85
#851
#852
#856
#857
#858
#86
#860
#861
#862
#863
#864
#866
#867
#868
#869
#87
#870
#872
#873
#874
#875
#876
#877
#878
#88
#881
#882
#889
#89
#890
#891
#892
#893
#894
#896
#897
#898
#899
#90
#900
#903
#904
#906
#907
#908
#909
#91
#910
#911
#912
#913
#914
#916
#917
#918
#919
#92
#921
#923
#924
#925
#926
#927
#929
#931
#932
#934
#935
#937
#938
#939
#940
#942
#943
#95
#963
#964
#98
#997
-
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