Commit graph

  • cd48a095c0 feat(forecasting): activate §25.3 cannibalization timing axis from launch window (#1169) Light1YT 2026-06-09 11:50:06 +05:00
  • 60c82b2053 feat(forecasting): activate §25.3 cannibalization timing axis from launch window (#1169) Light1YT 2026-06-09 11:50:06 +05:00
  • f9e045028c feat(macro): land construction price index (СМР) via open Rosstat xlsx (#946) Light1YT 2026-06-09 11:28:05 +05:00
  • 4adfef2ad0 feat(site-finder): grounded parcel-chat panel UI (#958) Light1YT 2026-06-08 18:08:01 +05:00
  • fceaaf9a2c feat(chat): LLM tool-loop + §19 redaction wiring for #957 (Step 2+3) Light1YT 2026-06-08 17:45:01 +05:00
  • 4847a2eb01 feat(chat): deterministic §22 chat foundation — POST /api/v1/chat/ask (no LLM) Light1YT 2026-06-08 17:21:51 +05:00
  • 347203dfda feat(forecasting): §25.3 TRUE own-portfolio cannibalization overlap (#1169 PR2) Light1YT 2026-06-08 16:47:18 +05:00
  • df34e55ab4 feat(site-finder): own-portfolio data source for §25.3 cannibalization (#1169 PR1) Light1YT 2026-06-08 16:21:53 +05:00
  • 4af7ba5a40 feat(llm): foundational LLM infra package with §19 redaction + deterministic fallback (#960) Light1YT 2026-06-08 15:44:16 +05:00
  • 4b2e7d9af8 fix(db): sync location.demand_index comment to city-relative (#948) Light1YT 2026-06-08 14:04:51 +05:00
  • 379af88424 fix(site_finder): make Location demand_index city-relative (#948) Light1YT 2026-06-08 13:58:12 +05:00
  • 8da1c00138 feat(location): district-level Location entity + indices (#948 part B) feat/location-948b-r Light1YT 2026-06-08 13:17:40 +05:00
  • e5835b25b7 Merge remote-tracking branch 'origin/main' into feat/location-entity-948b feat/location-entity-948b Light1YT 2026-06-08 13:23:52 +05:00
  • 84a4aa5782 feat(location): district-level Location entity + indices (#948 part B) Light1YT 2026-06-08 13:17:40 +05:00
  • 6400ebde24 feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) feat/insight-entity-948a Light1YT 2026-06-08 12:41:39 +05:00
  • 86828d0388 feat(rbac): add analyst role + §19 audit-log middleware (#962) feat/analyst-role-audit-962 Light1YT 2026-06-08 12:16:19 +05:00
  • 25e21c2bff feat(macro): CBR inflation (ИПЦ YoY) -> macro_indicator + activate §9.5 channel (#946) feat/cbr-inflation-macro-946 Light1YT 2026-06-08 11:41:14 +05:00
  • b0fe292a63 fix(tradein): working cian ЖК-url resolver via cat.php SERP (#972) feat/cian-zhk-resolve-972 Light1YT 2026-06-08 11:13:06 +05:00
  • 8206a0b067 perf(forecast): per-request memoization cache for §22 cold build (#1129) Light1YT 2026-06-08 10:25:53 +05:00
  • ac04b156a7 perf(forecast): per-request memoization cache for §22 cold build (#1129) perf/forecast-parallel-horizons-1129 Light1YT 2026-06-08 10:25:53 +05:00
  • f5dcd9dc2b feat(sf): врезка pat_subzones в analyze ИРД-блок (#1158) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 17:59:50 +00:00
  • 3921180d07 fix(sf): ST_MakeValid genplan geom + backfill 881 invalid polygons (#1157) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 17:59:04 +00:00
  • 50fdb843e4 feat(sf): врезка pat_subzones в analyze ИРД-блок (#1151) bot-backend 2026-06-07 20:50:27 +03:00
  • c2bc3b4863 fix(sf): ST_MakeValid genplan geom + backfill 881 invalid polygons (#1156) bot-backend 2026-06-07 20:44:08 +03:00
  • 515ac89eaa fix(sf): робастный путь к koltsovo JSON в pat-loader (#1155) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 15:34:10 +00:00
  • 012db168a6 fix(sf): робастный путь к koltsovo JSON в pat-loader (#1150) bot-backend 2026-06-07 18:29:02 +03:00
  • 08acc25c43 Merge pull request 'feat(sf): OCR pipeline izjatie EKB Tesseract rus land_reservation 1062' (#1153) from feat/izyatie-ocr-pipeline into main lekss361 2026-06-07 15:21:20 +00:00
  • fe67e60d48 feat(sf): граддокументация (статус+ПАГЕ-реквизиты) из planning_projects в analyze (#1154) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 15:15:03 +00:00
  • 015f63583a feat(sf): граддокументация (статус+ПАГЕ-реквизиты) из planning_projects в analyze (#1061) bot-backend 2026-06-07 18:12:30 +03:00
  • 5da4271235 feat(sf): OCR-пайплайн изъятия ЕКБ (Tesseract rus) → land_reservation (#1062) bot-backend 2026-06-07 18:07:06 +03:00
  • 7af87c338c feat(sf): вшить parcel_okn_objects (okn_objects) в ИРД-блок analyze (#1152) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 15:00:44 +00:00
  • 33aa77ecb5 feat(sf): вшить ОКН-объекты в ИРД-блок analyze (#1066) bot-backend 2026-06-07 17:53:24 +03:00
  • 9736192359 feat(sf): подзоны ПАТ Кольцово → pat_subzones (#1150) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 14:43:07 +00:00
  • 8803d41c29 feat(sf): подзоны ПАТ Кольцово из приказа 367-П → pat_subzones (#1065) bot-backend 2026-06-07 17:38:23 +03:00
  • e2faab801c fix(sf): pravo.gov66 law_type числовой код =1 Постановление (#1149) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 14:17:52 +00:00
  • 00c6d0e039 fix(sf): pravo.gov66 law_type=12 + /documents/ селекторы (#1062) bot-backend 2026-06-07 17:13:42 +03:00
  • a6e100b52a fix(sf): корректное urlencode form-data в okn_egrkn_client (#1147) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 14:13:34 +00:00
  • bcb1285341 feat(tradein): backfill task for cian newbuilding enrichment (#972) Light1YT 2026-06-07 19:08:48 +05:00
  • 98020e418b feat(tradein): backfill task for cian newbuilding enrichment (#972) feat/newbuilding-enrich-backfill-972 Light1YT 2026-06-07 19:08:48 +05:00
  • 49e26b69d0 fix(sf): корректное urlencode form-data в okn_egrkn_client (#1066) bot-backend 2026-06-07 17:08:26 +03:00
  • 9ee35bebf0 fix(sf): User-Agent header for okn-mk searchMap (bypass 403) (#1146) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 13:57:34 +00:00
  • 396db20c48 feat(sf): enumerate изъятия/резервирования с pravo.gov66 → land_reservation (#1145) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 13:56:29 +00:00
  • 8b7f2ff247 fix(sf): браузерный User-Agent для okn-mk searchMap (обход 403) (#1066) bot-backend 2026-06-07 16:53:07 +03:00
  • 23f04af80f feat(sf): enumerate изъятия/резервирования с pravo.gov66 → land_reservation (#1062) bot-backend 2026-06-07 16:50:07 +03:00
  • 1f66dfd400 feat(macro): ЕМИСС среднедушевые доходы (id=57039) -> macro_indicator (#946 part2) feat/emiss-macro-indicators-946 Light1YT 2026-06-07 18:44:38 +05:00
  • f7c4d7a8c5 feat(macro): Росстат open-data macro scraper -> macro_indicator (#946) Light1YT 2026-06-07 18:07:56 +05:00
  • 2da8a285b3 feat(macro): Росстат open-data macro scraper -> macro_indicator (#946) feat/rosstat-emiss-macro-946 Light1YT 2026-06-07 18:07:56 +05:00
  • 50fcba1ca0 feat(sf): ingest ОКН-объектов ЕКБ из АИС ЕГРКН (точки+категория) → okn_objects (#1141) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 12:51:18 +00:00
  • 50ecccca4d feat(sf): ingest ОКН-объектов ЕКБ из АИС ЕГРКН (точки+категория) → okn_objects (#1066) bot-backend 2026-06-07 15:47:51 +03:00
  • dc63173aba feat(sf): вшить функц.зоны генплана (ekb_genplan_functional_zone) в analyze (#1140) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 12:27:22 +00:00
  • c15f3524bf feat(sf): вшить функц.зоны генплана (ekb_genplan_functional_zone) в analyze (#1058) bot-backend 2026-06-07 15:22:46 +03:00
  • 86b9a5a197 perf(sf): КРТ-геометрия в БД, _krt_at из БД вместо живого WFS (#1139) Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local> bot-backend 2026-06-07 12:14:35 +00:00
  • 0b27982555 Merge remote-tracking branch 'forgejo/main' into feat/krt-geometry-db bot-backend 2026-06-07 15:10:34 +03:00
  • bbb0879948 perf(sf): КРТ-геометрия в БД, _krt_at из БД вместо живого WFS (#1130) bot-backend 2026-06-07 15:07:17 +03:00
  • 189ecc81f8 feat(sf): ingest функц.зон генплана ЕКБ-2045 из ГИСОГД-СО WFS → ekb_genplan_functional_zone (#1137) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 12:03:39 +00:00
  • 5514721a1c Merge remote-tracking branch 'forgejo/main' into feat/ekb-genplan-functional-zones bot-backend 2026-06-07 14:59:34 +03:00
  • 6bb9de92c2 feat(sf): ingest функц.зон генплана ЕКБ-2045 из ГИСОГД-СО WFS → ekb_genplan_functional_zone (#1058) bot-backend 2026-06-07 14:56:48 +03:00
  • 1e53416277 feat(sf): ППТ/ПМТ ТЭП-парсер (Табл.11/12/13) → ekb_ppt_tep MVP (#1133) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 11:54:40 +00:00
  • 795661557f ci(frontend): add vitest job to Forgejo Actions gate Light1YT 2026-06-07 16:51:40 +05:00
  • 9f32153126 ci(frontend): add vitest job to Forgejo Actions gate ci/frontend-vitest-job Light1YT 2026-06-07 16:51:40 +05:00
  • 97731a2b09 feat(sf): КРТ-реквизиты (ekb_krt_sites) в ИРД-блок analyze (#1131) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 11:50:29 +00:00
  • 3e86975762 feat(sf): ППТ/ПМТ ТЭП-парсер (Табл.11/12/13) → ekb_ppt_tep MVP (#1085) bot-backend 2026-06-07 14:47:49 +03:00
  • cdb6035e39 chore(frontend): add vitest runner + WKT parser unit tests chore/frontend-vitest-wkt-tests Light1YT 2026-06-07 16:46:27 +05:00
  • ab5c9aabcb feat(sf): КРТ-реквизиты (ekb_krt_sites) в ИРД-блок analyze по geoportal-geom (#1060) bot-backend 2026-06-07 14:41:50 +03:00
  • 57c6d119f5 feat(sf): scraper реестра КРТ-площадок ЕКБ → ekb_krt_sites (#1126) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 11:24:49 +00:00
  • c087bd74b1 fix(sf): verify=False для екатеринбург.рф (CA Минцифры) + синтетический CI-тест КРТ-парсера (ревью #1126) bot-backend 2026-06-07 14:22:26 +03:00
  • ef15190690 feat(sf): geocode geom для ekburg_construction_permits из МСК-66 (#1124) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 11:16:45 +00:00
  • b67fa09f1c fix(sf): калибровка proj4 МСК-66 x_0/y_0 по cad_parcels ground-truth (#1088, ревью #1124) bot-backend 2026-06-07 14:11:07 +03:00
  • d9b92f19f4 feat(sf): вшить parcel_reservations в ИРД-блок analyze (#1127) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 11:09:26 +00:00
  • 7756ed4631 feat(forecast): show compute date / horizons / schema in Section 6 footer feat/forecast-meta-footer Light1YT 2026-06-07 16:08:31 +05:00
  • d3aa396ceb feat(sf): вшить parcel_reservations в ИРД-блок analyze (#1062, #1091) bot-backend 2026-06-07 14:01:03 +03:00
  • d966b968fd feat(sf): scraper реестра КРТ-площадок ЕКБ -> ekb_krt_sites (#1060) bot-backend 2026-06-07 13:58:10 +03:00
  • f5aa7ed191 feat(sf): 6.6 in-app future-supply pressure + pipeline competitors (§13.3) Light1YT 2026-06-07 15:55:25 +05:00
  • 8595c18d41 feat(sf): 6.6 in-app future-supply pressure + pipeline competitors (§13.3) feat/forecast-future-supply-competitors Light1YT 2026-06-07 15:55:25 +05:00
  • 5546056666 feat(sf): geocode geom для ekburg_construction_permits из МСК-66 координат (#1088) bot-backend 2026-06-07 13:49:08 +03:00
  • 5b07c6641b perf(sf): concurrent geoportal-вызовы в ИРД-блоке analyze (#1123) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 10:47:25 +00:00
  • b24de7d3cc perf(sf): concurrent geoportal-вызовы в ИРД-блоке analyze (#1102) bot-backend 2026-06-07 13:43:17 +03:00
  • 59f2628e0b feat(sf): ПАГЕ-парсер изъятия/резервирования → land_reservation (#1118) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 10:15:03 +00:00
  • 7131bed1f4 feat(forecast): expose DOCX & PPTX export buttons in forecast UI feat/forecast-docx-pptx-buttons Light1YT 2026-06-07 15:12:52 +05:00
  • a66c35ae49 feat(forecast): render scoring transparency (§13.6) as in-app subsection 6.5 Light1YT 2026-06-07 15:07:54 +05:00
  • a04f2d98fc feat(forecast): render scoring transparency (§13.6) as in-app subsection 6.5 feat/forecast-scoring-panel Light1YT 2026-06-07 15:07:54 +05:00
  • 4cc0b6da8c feat(sf): включить enable_ird_analyze + latency-hardening (#1115) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 10:00:48 +00:00
  • b58f399d2d feat(sf): ПАГЕ-парсер изъятия/резервирования → land_reservation (#1091, #1062) bot-backend 2026-06-07 12:58:57 +03:00
  • 54a501b90a feat(forecast): render product_tz (ТЗ на ЖК) as in-app subsection 6.4 Light1YT 2026-06-07 14:55:17 +05:00
  • ed72e0ba1d feat(forecast): render product_tz (ТЗ на ЖК) as in-app subsection 6.4 feat/forecast-product-tz-block Light1YT 2026-06-07 14:55:17 +05:00
  • dcafb32f31 feat(sf): gknspecial_zone ИРД-harvest → ird_overlays (#1114) Co-authored-by: lekss361 <lekss361@gendsgn.local> Co-committed-by: lekss361 <lekss361@gendsgn.local> lekss361 2026-06-07 09:54:53 +00:00
  • 7fe39f2e68 feat(sf): включить enable_ird_analyze + latency-hardening (#1102, #1067) bot-backend 2026-06-07 12:47:00 +03:00
  • 2b439521cd feat(sf): gknspecial_zone ИРД-harvest → ird_overlays (#1063/#1064/#1065/#1066) bot-backend 2026-06-07 12:39:47 +03:00
  • 3423a1db74 feat(site-finder): toggleable market layers on analysis map (#999) feat/market-map-layers-999 Light1YT 2026-06-07 14:35:24 +05:00
  • a66a554462 feat(site-finder): forecast deficit-by-horizon chart in Section 6 (#998) feat/forecast-chart-section6 Light1YT 2026-06-07 14:19:17 +05:00
  • 40b1f3ad69 feat(export): add PPTX presentation export of §22 forecast report (#959) feat/forecast-export-pptx-959 Light1YT 2026-06-07 14:09:35 +05:00
  • 3a89287c6b feat(export): add DOCX export of §22 forecast report (#959) feat/forecast-export-docx-959 Light1YT 2026-06-07 13:58:04 +05:00
  • 858b5f4511 feat(site-finder): forecast export control in Section 6 (#959) Light1YT 2026-06-07 13:40:34 +05:00
  • 51a0ae526e feat(site-finder): forecast export control in Section 6 (#959) feat/forecast-export-ui-959 Light1YT 2026-06-07 13:40:34 +05:00
  • f8aa1d7512 feat(sf): newbuilding_listings house-grain таблица для future-ЖК слоя (#1108) lekss361 2026-06-06 21:48:51 +00:00
  • fe7727e338 fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1107) lekss361 2026-06-06 21:47:35 +00:00
  • 0a24818bc6 feat(sf): newbuilding_listings house-grain таблица для future-ЖК слоя (#975) bot-backend 2026-06-07 00:46:15 +03:00
  • fe452e3f31 fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1067) bot-backend 2026-06-07 00:43:04 +03:00
  • dee7d64ac8 feat(sf): прогрев zone_regulation_cache по терзонам ЕКБ (#1106) lekss361 2026-06-06 21:04:52 +00:00
  • 99ca728004 feat(sf): прогрев zone_regulation_cache по терзонам ЕКБ (#1059/C8b) bot-backend 2026-06-06 23:59:54 +03:00