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
#2526
#2527
#2528
#2529
#2530
#2531
#2532
#2533
#2534
#2535
#2536
#2537
#2538
#2539
#2540
#2541
#2542
#2543
#2544
#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
-
3d4511ef00
Merge pull request 'fix(sf-09): MAX_BUCKET_SHARE 35% cap + frontend warning banner' (#282) from fix/sf-09-max-bucket-share into main
lekss361
2026-05-17 12:33:13 +00:00 -
689327909c
fix(sf-09): capacity-aware redistribute (round 2) — bounded + correct invariant
lekss361
2026-05-17 15:30:50 +03:00 -
bcd7dc8f75
fix(sf-09): iterative cap algorithm + cap_skipped flag + unit tests
lekss361
2026-05-17 15:21:51 +03:00 -
0d11f426b2
fix(sf-09): MAX_BUCKET_SHARE 35% cap + frontend warning banner
lekss361
2026-05-17 14:49:56 +03:00 -
d6a9824473
Merge pull request 'fix(sf-08): room_bucket euro-1/euro-2 classification' (#281) from fix/sf-08-room-bucket-euro into main
lekss361
2026-05-17 11:42:42 +00:00 -
b9259cd8ed
fix(sf-08): add euro-1/euro-2 room_bucket for small-format rooms=2 flats
lekss361
2026-05-17 14:38:48 +03:00 -
df2b47d27c
Merge pull request 'fix(sf-07): median_12m alias + UI 12mo hint' (#280) from fix/sf-07-median-12m-alias into main
lekss361
2026-05-17 11:31:18 +00:00 -
4d39ae5b5d
fix(sf-07): use median_12m from mv_quarter_price_per_m2 for district price
lekss361
2026-05-17 14:28:32 +03:00 -
28ca7bf6a8
Merge pull request 'chore: add landing.html static page' (#279) from chore/landing-html into main
lekss361
2026-05-17 11:03:16 +00:00 -
a3066733c2
chore: add landing.html static page
lekss361
2026-05-17 13:59:23 +03:00 -
102ef88d56
Merge pull request 'fix(sf-03): CompetitorTable Status column + filter tabs' (#278) from fix/sf-03-competitor-table-status into main
lekss361
2026-05-17 10:50:27 +00:00 -
8d95bf0c5a
Merge pull request 'fix(sf-04b): bulk seed mappings для всех ЖК (audit extension PR #273)' (#277) from fix/sf-04b-bulk-mapping-audit into main
lekss361
2026-05-17 10:43:09 +00:00 -
98323027aa
fix(sf-03): CompetitorTable Status column + filter tabs
lekss361
2026-05-17 13:41:15 +03:00 -
da1c619a9c
fix(sf-04b): bulk seed mappings для всех ЖК с активностью в Objective
lekss361
2026-05-17 13:36:34 +03:00 -
7a27cb857f
Merge pull request 'fix(sf-02): добавить site_status/ready_dt в /analyze competitors + sort строящиеся first' (#276) from fix/sf-02-competitors-status-analyze into main
lekss361
2026-05-17 10:35:46 +00:00 -
1799e1fb30
fix(sf-02): добавить site_status/ready_dt в /analyze competitors + sort строящиеся first
lekss361
2026-05-17 13:29:59 +03:00 -
15e75c20dc
Merge pull request 'fix(sf-01): time_window honest velocity — inline SQL с реальным фильтром report_month' (#275) from fix/sf-01-velocity-time-window into main
lekss361
2026-05-17 09:24:57 +00:00 -
c701636515
Merge forgejo/main into fix/sf-01-velocity-time-window
lekss361
2026-05-17 12:15:40 +03:00 -
5a4408e0ab
fix(sf-01): time_window honest velocity — inline SQL с реальным фильтром report_month
lekss361
2026-05-17 12:12:19 +03:00 -
ac1da79946
Merge pull request 'fix(sf-05): clamp sold_pct_of_supply на 100% + is_oversold flag' (#274) from fix/sf-05-sold-pct-normalize into main
lekss361
2026-05-17 09:04:21 +00:00 -
9372af4494
Merge pull request 'fix(sf-04): seed PRINZIP project mappings в objective_complex_mapping (Малевич + Ньютон парк)' (#273) from fix/sf-04-malevich-mapping into main
lekss361
2026-05-17 09:04:18 +00:00 -
247c252b04
fix(sf-05): clamp sold_pct_of_supply at 100% + add is_oversold flag
lekss361
2026-05-17 11:57:29 +03:00 -
9127cf2060
Merge pull request 'fix(sf-06): MarketTab reorder — Competitors → BestLayouts → Velocity первыми' (#272) from fix/sf-06-market-tab-reorder into main
lekss361
2026-05-17 08:57:18 +00:00 -
31b13c18b1
fix(sf-04): seed PRINZIP project mappings в objective_complex_mapping
lekss361
2026-05-17 11:57:06 +03:00 -
81bf798c27
fix(sf-06): MarketTab reorder — Competitors → BestLayouts → Velocity первыми
lekss361
2026-05-17 11:52:45 +03:00 -
a4247e1d96
Merge pull request 'chore(preview): remove basic auth от /preview/*' (#270) from chore/preview-remove-auth into main
lekss361
2026-05-17 08:39:28 +00:00 -
7a2ba4d35a
chore(preview): remove basic auth от /preview/* — публичный доступ
lekss361
2026-05-17 11:37:41 +03:00 -
744faa1f80
Merge pull request 'fix(deploy): force-recreate caddy для подхвата новых compose mounts' (#269) from fix/deploy-caddy-force-recreate into main
lekss361
2026-05-17 08:33:15 +00:00 -
11e78d738e
fix(deploy): force-recreate caddy чтобы новые compose mounts применились
lekss361
2026-05-17 11:30:45 +03:00 -
fa76e6ac9f
Merge pull request 'feat(preview): static HTML mockups на /preview/* (basic auth)' (#268) from feat/preview-mockups-static into main
lekss361
2026-05-17 08:19:24 +00:00 -
f1bc821c2b
feat(preview): add static mockups behind basic auth at /preview/*
lekss361
2026-05-17 11:15:13 +03:00 -
ee0bad445d
Merge pull request 'fix(#231): re-enable nspd-harvest-stale-quarters beat schedule (Sub-PR D)' (#267) from fix/231-nspd-beat-reenable into main
lekss361
2026-05-17 07:50:34 +00:00 -
f160c5efaf
Merge pull request 'feat(#263 sub-A): cad_* overlay schemas + cadastre territorial_zones (ПЗЗ)' (#265) from feat/263-sub-a-cad-nspd-overlay-schemas-and-pzz into main
lekss361
2026-05-17 07:50:08 +00:00 -
8e377059a4
fix(#265 review): CRS 3857→4326 + stable zone_id hash + rename 102 + tx comment
lekss361
2026-05-17 10:45:52 +03:00 -
9bac676b98
Merge pull request 'fix(#264): apiFetch — global X-Session-Id header (custom POI scoring в UI)' (#266) from fix/264-session-id-global-apifetch into main
lekss361
2026-05-17 07:42:00 +00:00 -
d4da1b26c6
fix(#231): re-enable nspd-harvest-stale-quarters beat schedule (Sub-PR D)
lekss361
2026-05-17 10:37:07 +03:00 -
2d58c3a203
fix(#264): apiFetch — global X-Session-Id header (custom POI scoring в UI)
lekss361
2026-05-17 10:31:54 +03:00 -
f08db43145
feat(#263 sub-A): cad_* overlay schemas + cadastre territorial_zones (ПЗЗ)
lekss361
2026-05-17 10:28:22 +03:00 -
26ee3b015c
Merge pull request 'fix(#261): custom_pois — regression tests для db.commit() в create/update/delete (P0 persistence)' (#262) from fix/261-custom-pois-missing-commit into main
lekss361
2026-05-17 07:26:54 +00:00 -
8ebcd15ed6
Merge pull request 'fix(#231): switch search_by_quarter area layers to grid-walk (Sub-PR B)' (#260) from fix/231-nspd-search-by-quarter-grid into main
lekss361
2026-05-17 07:26:08 +00:00 -
570c987e78
fix(#231): repair test_rate_limit_semaphore regression + docstring sync
lekss361
2026-05-17 10:22:16 +03:00 -
c94545f0eb
fix(#261): add db.commit() regression tests для custom_pois service
lekss361
2026-05-17 10:16:36 +03:00 -
8191a85102
fix(#231): address re-review blockers — per-instance semaphore + time_limit + test mocks
lekss361
2026-05-17 10:13:34 +03:00 -
e3eb8c873f
Merge pull request 'feat(#254,#114): custom POI UI (Leaflet click-to-add) + score breakdown stacked-bar' (#258) from feat/254-custom-pois-ui into main
lekss361
2026-05-17 06:47:08 +00:00 -
fdced94626
fix(#231): switch search_by_quarter area layers to grid-walk dispatch (Sub-PR B)
lekss361
2026-05-17 09:46:42 +03:00 -
8cc94472f7
Merge pull request 'feat(#254): user_custom_pois — backend schema + CRUD + scoring integration' (#257) from feat/254-custom-pois-backend into main
lekss361
2026-05-17 06:42:29 +00:00 -
9dd72ece0c
Merge pull request 'fix(#234): NSPD harvest ETA badge + SETNX dedupe (Sub-PR C)' (#250) from fix/234-nspd-harvest-eta-badge into main
lekss361
2026-05-17 06:35:40 +00:00 -
6ecd7a9269
feat(#254,#114): custom POI UI + score breakdown stacked-bar viz
lekss361
2026-05-17 09:35:35 +03:00 -
485f489bd2
feat(#254): user_custom_pois — backend schema + CRUD + scoring integration
lekss361
2026-05-17 09:34:33 +03:00 -
81cf274e80
fix(#234): address re-review nits — Settings singleton + docstring sync
lekss361
2026-05-17 09:31:43 +03:00 -
b99ac76463
Merge remote-tracking branch 'forgejo/main' into fix/234-nspd-harvest-eta-badge
lekss361
2026-05-17 09:19:12 +03:00 -
990c109756
fix(#234): NSPD harvest ETA badge + SETNX dedupe (Sub-PR C)
lekss361
2026-05-17 09:13:06 +03:00 -
10b79da2e9
fix(#243): cad_zouit fallback срабатывает когда nspd dump полностью отсутствует (#248)
lekss361
2026-05-17 06:03:19 +00:00 -
95e97da713
Merge pull request 'fix(#242): ekburg_permits SSL — verify=False для CA Минцифры РФ (clean re-roll PR #245)' (#249) from fix/242-ekburg-permits-ssl-clean into main
lekss361
2026-05-17 06:01:22 +00:00 -
4a48d49474
fix(#242): ekburg_permits SSL — verify=False для CA Минцифры РФ
lekss361
2026-05-17 08:46:06 +03:00 -
4519daf149
feat(#126): Sub-PR A — NSPDClient.get_features_in_bbox_grid + engineering classifier (#247)
lekss361
2026-05-17 05:54:30 +00:00 -
992477c8f8
fix(#244): harvest_quarter — CAST CASE WHEN params (psycopg3 AmbiguousParameter) (#246)
lekss361
2026-05-17 05:53:08 +00:00 -
04896afa99
fix(#243): cad_zouit fallback срабатывает когда nspd dump полностью отсутствует
lekss361
2026-05-17 08:49:31 +03:00 -
7338693500
feat(#126): Sub-PR A — NSPDClient.get_features_in_bbox_grid + engineering classifier
lekss361
2026-05-17 08:48:23 +03:00 -
aec45a55cb
fix(#244): harvest_quarter — CAST CASE WHEN params (psycopg3 AmbiguousParameter)
lekss361
2026-05-17 08:45:13 +03:00 -
3000fed7e9
fix(#242): ekburg_permits SSL — verify=False для CA Минцифры РФ
lekss361
2026-05-17 08:46:06 +03:00 -
2a47084ee5
feat(#126): Sub-PR A — NSPDClient.get_features_in_bbox_grid + engineering classifier
lekss361
2026-05-17 08:44:01 +03:00 -
6f565c19fa
Merge pull request 'fix(#233): add pzz_sync to beat schedule (monthly)' (#241) from fix/issue233-pzz-sync-beat into main
lekss361
2026-05-17 05:32:52 +00:00 -
232dbc9285
fix(#233): add pzz_sync to beat schedule (monthly)
lekss361
2026-05-17 08:29:40 +03:00 -
7d0bc4bb6b
Merge pull request 'feat(#29,#232): wire cad_parcels.permitted_use в analyze + cad_zouit fallback (G2+G3)' (#240) from feat/g2-g3-analyze-parcel-meta-zouit-fallback into main
lekss361
2026-05-17 05:26:02 +00:00 -
b8a15cac09
Merge pull request 'feat(#104): admin endpoint POST /admin/scrape/ekburg-permits для manual trigger' (#239) from feat/104-ekburg-permits-admin-endpoint into main
lekss361
2026-05-17 05:21:16 +00:00 -
f70be684da
feat(#29,#232): wire cad_parcels.permitted_use in analyze + cad_zouit fallback (G2+G3)
lekss361
2026-05-17 08:17:22 +03:00 -
0135f3c7c4
feat(#104): add POST /admin/scrape/ekburg-permits for manual trigger
lekss361
2026-05-17 08:13:32 +03:00 -
56bf28758c
Merge pull request 'feat(#115): Leaflet layer toggle для connection points (Макс KILLER)' (#230) from feat/connection-points-leaflet-layer into main
lekss361
2026-05-16 20:00:55 +00:00 -
e7a5ba8f81
Merge pull request 'fix(#112): competitors avg_price_per_m2 всегда None — убран WHERE status='sold'' (#228) from fix/issue112-sold-filter-avg-price into main
lekss361
2026-05-16 19:52:44 +00:00 -
a7671513c9
feat(#115): Leaflet layer toggle для connection points (Макс KILLER)
lekss361
2026-05-16 22:51:12 +03:00 -
a6e4ff0407
feat(#114): seed 3 default weight presets + include_system API param
lekss361
2026-05-16 22:49:56 +03:00 -
31581cedd2
fix(#112): remove broken status='sold' filter from competitors avg_price query
lekss361
2026-05-16 22:46:10 +03:00 -
e4852b0ec9
Merge pull request 'fix(beat): use /tmp/celerybeat-schedule (workdir /app not writable by app user)' (#226) from fix/beat-celerybeat-schedule-permission into main
lekss361
2026-05-16 19:06:27 +00:00 -
718a70f6e9
fix(beat): use /tmp/celerybeat-schedule (workdir /app not writable by app user)
lekss361
2026-05-16 22:03:45 +03:00 -
b5379fb135
Merge pull request 'fix(infra): wire GlitchTip DSNs (build-arg + env_file) + reject sentry.io promote' (#225) from fix/glitchtip-wire-prod-dsns into main
lekss361
2026-05-16 18:51:41 +00:00 -
e64fbd670b
fix(infra): wire GlitchTip DSNs (build-arg + env_file) + reject sentry.io promote
lekss361
2026-05-16 21:48:28 +03:00 -
ea7a8f4aeb
Merge pull request 'fix(sql): escape apostrophe in migration 99 COMMENT (deploy hotfix)' (#224) from fix/migration-99-apostrophe into main
lekss361
2026-05-16 18:24:18 +00:00 -
f704785428
fix(sql): escape apostrophe in migration 99 COMMENT (deploy hotfix)
lekss361
2026-05-16 21:02:00 +03:00 -
4860cc790a
Merge pull request 'feat(nspd): denorm nspd_parcels + nspd_buildings (#94 PR3 of 4)' (#222) from feat/94-pr3-denorm-entities into main
lekss361
2026-05-16 17:56:59 +00:00 -
813b8bd589
Merge pull request 'fix(infra): GlitchTip EMAIL_URL dummy:// → consolemail:// (crashes Django on start)' (#223) from fix/glitchtip-email-url-consolemail into main
lekss361
2026-05-16 17:56:53 +00:00 -
1ec0a720fb
fix(infra): GlitchTip EMAIL_URL dummy:// → consolemail:// (django-environ schema)
lekss361
2026-05-16 19:30:06 +03:00 -
db1ff5b1fc
feat(nspd): denorm nspd_parcels + nspd_buildings tables (#94 PR3 of 4)
lekss361
2026-05-16 20:20:03 +03:00 -
5a7d405c77
Merge pull request 'feat(nspd): TIER 4 opportunity + red lines (#94 PR2 of 4)' (#220) from feat/94-pr2-opportunity-redlines into main
lekss361
2026-05-16 17:09:52 +00:00 -
572d235d70
Merge pull request 'fix(infra): restore git.gendsgn.ru block in Caddyfile' (#221) from fix/caddyfile-add-git-block into main
lekss361
2026-05-16 17:02:05 +00:00 -
82931897dd
fix(infra): restore git.gendsgn.ru block in Caddyfile
lekss361
2026-05-16 19:51:54 +03:00 -
fdb54834e5
fix(nspd): rename migration 89→98, fix red lines ST_Area→ST_Length (#220)
lekss361
2026-05-16 19:33:14 +03:00 -
ed3c128528
feat(nspd): TIER 4 opportunity layers + red lines (#94 PR2 of 4)
lekss361
2026-05-16 19:06:22 +03:00 -
99372a211f
Merge pull request 'fix(recommend): cad_buildings.floors is INTEGER not TEXT (HOTFIX)' (#218) from fix/recommend-mix-floors-integer into main
lekss361
2026-05-16 16:00:23 +00:00 -
021b0589b2
fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap) (#219)
lekss361
2026-05-16 15:54:29 +00:00 -
fbb76812f4
fix(recommend): cad_buildings.floors is INTEGER, not TEXT
lekss361
2026-05-16 18:29:35 +03:00 -
a1091cdd5a
fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap)
lekss361
2026-05-16 18:28:42 +03:00 -
277499684b
feat(frontend): @sentry/nextjs init для GlitchTip (#204 frontend) (#208)
lekss361
2026-05-16 15:09:38 +00:00 -
b61f025673
feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207)
lekss361
2026-05-16 15:09:16 +00:00 -
d3aa96336b
feat(infra): GlitchTip self-hosted error tracking (#204 devops) (#205)
lekss361
2026-05-16 15:08:50 +00:00 -
653e74f6b7
feat(frontend): @sentry/nextjs init for GlitchTip self-hosted (#204)
lekss361
2026-05-16 18:04:13 +03:00 -
8a04af5da3
fix(backend): GlitchTip release fallback + apiKey scrub (#204 review fixes)
lekss361
2026-05-16 18:04:01 +03:00 -
e0055d299c
Merge pull request 'feat(nspd): TIER 3 risk zones (#94 PR1 of 4)' (#217) from feat/94-pr1-risk-zones into main
lekss361
2026-05-16 15:03:18 +00:00 -
ffaa36336a
fix(infra): GlitchTip profiles + SQL safety + mem_limit (#204 review fixes)
lekss361
2026-05-16 18:01:50 +03:00 -
1595157ebf
feat(nspd): enable TIER 3 risk zones harvest + extract in analyze (#94 PR1)
lekss361
2026-05-16 16:11:59 +03:00