Commit graph

  • 30a80ee608 feat(tradein): same-building матчинг аналогов по house_id (#6) feat/tradein-same-building-match Light1YT 2026-05-28 13:55:51 +05:00
  • 3fcac6818a Merge pull request 'fix(stale-claims): avoid SIGPIPE 141 — pass file path не pipe' (#612) from feat/stale-claims-sigpipe-fix into main lekss361 2026-05-27 22:06:45 +00:00
  • 8c9d1344cc fix(stale-claims): avoid SIGPIPE 141 — pass file path не pipe lekss361 2026-05-28 01:05:56 +03:00
  • 4ad309133e Merge pull request 'chore(workflow): diagnostic для stale-claims.yml' (#611) from fix/stale-claims-diagnostic into main lekss361 2026-05-27 22:03:20 +00:00
  • b86688bc0f chore(workflow): add diagnostic output to stale-claims.yml lekss361 2026-05-28 01:01:29 +03:00
  • 26559e16e5 Merge pull request 'feat(claude): env-vars refactor + stale-claim cron (Phase 2 final)' (#610) from feat/claude-envvars-and-stale-cron into main lekss361 2026-05-27 21:40:28 +00:00
  • e4dc866e20 fixup(claude): address review-bot blockers on PR #610 feat/claude-envvars-and-stale-cron lekss361 2026-05-28 00:33:27 +03:00
  • 297eb29d65 feat(claude): env-vars refactor + stale-claim cron (Phase 2 finalization) lekss361 2026-05-28 00:24:45 +03:00
  • 532b8cdda2 Merge pull request 'feat(claude): Phase 2 — slash-commands + pre-flight + Forgejo labels' (#609) from feat/claude-phase2-labels-commands into main lekss361 2026-05-27 20:59:33 +00:00
  • 018eb1e2ee feat(claude): Phase 2 — slash-commands + pre-flight + Forgejo labels lekss361 2026-05-27 23:50:58 +03:00
  • 29e7e7cdb4 Merge pull request 'feat(claude): auto-* agent stubs для autonomous multi-window workflow (DRAFT)' (#608) from feat/claude-auto-agents-stubs into main lekss361 2026-05-27 20:27:33 +00:00
  • 024bd4c68f merge: forgejo/main into feat/claude-auto-agents-stubs lekss361 2026-05-27 23:20:24 +03:00
  • 76784e91fd fixup(claude): address review-bot findings on PR #608 lekss361 2026-05-27 23:11:58 +03:00
  • 89303c9769 feat(claude): auto-* agent stubs для autonomous multi-window workflow lekss361 2026-05-27 22:57:16 +03:00
  • 0380fe9e34 fix(tradein): DaData backfill — Екатеринбург city context (#606 hotfix) (#607) Light1YT 2026-05-27 14:49:11 +00:00
  • 27fc8101e5 fix(tradein): DaData backfill — Екатеринбург city context (#606 hotfix) Light1YT 2026-05-27 19:48:37 +05:00
  • 08feb60a7f feat(tradein): DaData /clean/address backfill для houses (PR Q3) (#606) Light1YT 2026-05-27 14:43:51 +00:00
  • e332052d0e feat(tradein): DaData /clean/address backfill для houses (PR Q3) Light1YT 2026-05-27 19:43:07 +05:00
  • f438f536b8 feat(tradein): DaData /suggest tier в /suggest endpoint (PR Q2) (#605) Light1YT 2026-05-27 14:09:31 +00:00
  • 386fa8c0e3 feat(tradein): DaData /suggest tier в /suggest endpoint (PR Q2) Light1YT 2026-05-27 19:08:58 +05:00
  • 0b31431b99 feat(tradein): DaData on-demand enrichment в estimate flow (PR Q1) (#604) Light1YT 2026-05-27 13:56:14 +00:00
  • a7fa1a4ffa feat(tradein): DaData on-demand enrichment в estimate flow (PR Q1) Light1YT 2026-05-27 18:50:12 +05:00
  • b0c03942be feat(tradein): tier badge на DealsCard rows (#603) Light1YT 2026-05-27 13:15:49 +00:00
  • 5a3e820f53 feat(tradein): tier badge на DealsCard rows (PR M follow-up #564) Light1YT 2026-05-27 18:15:32 +05:00
  • 99a5a0f73b fix(tradein): Yandex listing_date — keyword + absolute-no-year (#602) Light1YT 2026-05-27 13:11:22 +00:00
  • bdb9f3dd09 fix(tradein): Yandex listing_date extraction — keyword + absolute-no-year Light1YT 2026-05-27 18:11:01 +05:00
  • f5c87201f1 fix(tradein): Avito listing_date extraction (3 формата) (#601) Light1YT 2026-05-27 12:55:27 +00:00
  • cad3b77171 fix(tradein): Avito scraper now extracts listing_date для всех форматов Light1YT 2026-05-27 17:55:01 +05:00
  • 64e0d6f4e7 feat(tradein): estimator deals tier (PR M, #564 Phase 3) (#600) Light1YT 2026-05-27 12:40:09 +00:00
  • 8591efc42f feat(tradein): estimator deals tier classification (PR M / #564 Phase 3) Light1YT 2026-05-27 17:36:46 +05:00
  • 63756c3c29 feat(tradein): StreetDealsCard с paired listings (PR L, #564 Phase 2) (#599) Light1YT 2026-05-27 12:29:06 +00:00
  • 6a46585e8c feat(tradein): StreetDealsCard с paired listings (PR L / #564 Phase 2) Light1YT 2026-05-27 17:28:38 +05:00
  • 577ddc0654 chore(tradein): drop spurious v_street_sales_vs_listings (#598) Light1YT 2026-05-27 12:23:18 +00:00
  • 01d9afd3f0 chore(tradein): drop v_street_sales_vs_listings (hotfix к 067 PR K) Light1YT 2026-05-27 17:23:13 +05:00
  • 39da0f0644 feat(tradein): sales-vs-listings endpoint (PR K, foundation #564) (#597) Light1YT 2026-05-27 11:55:44 +00:00
  • 086603cf25 feat(tradein): sales-vs-listings endpoint (PR K — foundation #564 Phase 1) Light1YT 2026-05-27 16:55:20 +05:00
  • 1d8cfb967f feat(tradein): backfill 18k existing listings (PR J) (#596) Light1YT 2026-05-27 10:29:40 +00:00
  • e83079f07a feat(tradein): backfill 18k existing listings → listing_sources (PR J) Light1YT 2026-05-27 15:29:15 +05:00
  • 7e24ccbf2c feat(tradein): hook matching в save_listings — fill listing_sources (PR I) (#595) Light1YT 2026-05-27 10:02:37 +00:00
  • 613f576858 feat(tradein): hook matching service в save_listings — fill listing_sources Light1YT 2026-05-27 15:02:10 +05:00
  • 42ab74e2e8 feat(tradein): MapPicker snap marker — Phase 5 of #582 (#594) Light1YT 2026-05-27 09:30:17 +00:00
  • 74026ef1d9 feat(tradein): MapPicker snap marker на canonical building point (PR H, #582 Phase 5) Light1YT 2026-05-27 14:29:51 +05:00
  • aa70e9e155 fix(tradein): yandex_realty captures house number + parse_rub strips NBSP (#593) Light1YT 2026-05-27 07:23:36 +00:00
  • 77c4af9751 fix(tradein): yandex_realty captures house number + parse_rub strips NBSP Light1YT 2026-05-27 12:23:11 +05:00
  • 1ce9e10012 feat(tradein): persistent infra для backfill scripts (PR F) (#592) Light1YT 2026-05-27 06:59:54 +00:00
  • b8f9213cd9 feat(tradein): persistent infra для backfill scripts Light1YT 2026-05-27 11:59:14 +05:00
  • 3c506222e6 feat(tradein): Phase 2-3 of #582 — Yandex backfill + canonical audit (#591) Light1YT 2026-05-27 06:30:54 +00:00
  • 20b4a195b3 feat(tradein): Phase 2-3 of #582 — backfill houses + canonical reverse audit Light1YT 2026-05-27 11:30:25 +05:00
  • 56a7a36c9a feat(auth): UserMenu — личный кабинет top-right (PR D) (#590) Light1YT 2026-05-26 10:48:57 +00:00
  • 358824c284 feat(auth): UserMenu — avatar + dropdown + basic_auth logout Light1YT 2026-05-26 15:48:26 +05:00
  • d954be1331 fix(auth): scripts/auth/*.sh — правильный SNIPPET path (#589) Light1YT 2026-05-26 08:39:24 +00:00
  • 7aced2a5e0 fix(auth): scripts/auth/*.sh — правильный SNIPPET path Light1YT 2026-05-26 13:39:01 +05:00
  • 252bc2de76 chore(security): sync admin hash в users.caddy.snippet (#588) Light1YT 2026-05-26 08:29:25 +00:00
  • 43807f338e chore(security): sync caddy/users.caddy.snippet with VPS-current hashes Light1YT 2026-05-26 13:29:05 +05:00
  • c08e4d7811 feat(rbac): pilot scope → только /trade-in/** (#587) Light1YT 2026-05-26 07:40:44 +00:00
  • 4a4a6e8727 feat(rbac): сузить pilot scope только до /trade-in/** Light1YT 2026-05-26 12:40:08 +05:00
  • 7a2b055b35 feat(rbac): frontend route-guard + nav filter (#586) Light1YT 2026-05-26 06:51:45 +00:00
  • da8125e695 feat(rbac): frontend route-guard + nav filter for pilot/admin scopes Light1YT 2026-05-26 11:42:03 +05:00
  • 88cdfd6adb feat(rbac): role-based access control via X-Authenticated-User middleware (#585) Light1YT 2026-05-26 06:18:40 +00:00
  • 3651c85f9b feat(rbac): enforce role-based access via X-Authenticated-User middleware Light1YT 2026-05-26 11:14:47 +05:00
  • fc12b2c160 Merge pull request 'feat(tradein): Phase 1 of #582 — address mismatch audit (200-house Yandex baseline)' (#583) from feat/tradein-address-audit-phase1 into main Light1YT 2026-05-26 05:18:56 +00:00
  • 074e55af5f Merge pull request 'fix(tradein): убрать «PRINZIP» wordmark из шапки' (#584) from fix/tradein-hide-prinzip-brand into main Light1YT 2026-05-25 08:29:30 +00:00
  • dcf5e32aa1 fix(tradein): убрать «PRINZIP» wordmark из шапки Light1YT 2026-05-25 13:28:48 +05:00
  • 02ad9a1f58 feat(tradein): Phase 1 of #582 — address mismatch audit infrastructure Light1YT 2026-05-25 12:50:30 +05:00
  • 33c4c84467 feat(tradein): этаж/этажность optional + best test presets по deal count (#558) lekss361 2026-05-24 21:44:44 +00:00
  • 3ce76b4beb fix(tradein): floor/total_floors NULL — migration + PDF defaults lekss361 2026-05-25 00:36:49 +03:00
  • c60d394ff0 feat(tradein): этаж/этажность optional + best test presets по deal count lekss361 2026-05-25 00:20:08 +03:00
  • 8c540ecec6 fix(tradein): extract_street_name handles Nominatim reverse format (#557) lekss361 2026-05-24 21:03:42 +00:00
  • 8de8daef01 fix(tradein): extract_street_name handles Nominatim reverse format lekss361 2026-05-24 23:54:13 +03:00
  • 4d1c409e18 feat(tradein): «По вашей улице» — StreetDealsCard на real ДКП-сделки Росреестра (#556) lekss361 2026-05-24 20:37:29 +00:00
  • 56a9c6a021 feat(tradein): «По вашей улице» — ДКП-сделки Росреестра по улице target адреса lekss361 2026-05-24 23:31:44 +03:00
  • a63e459e25 feat(tradein): GET /street-deals — ДКП-сделки Росреестра по улице target адреса (#555) lekss361 2026-05-24 20:05:48 +00:00
  • 136202dc80 feat(tradein/scripts): local Playwright runners для Cian backfill (bypass server-IP anti-bot) (#553) lekss361 2026-05-24 20:00:59 +00:00
  • 16a8239de7 Merge pull request 'feat(tradein): yandex address backfill — street → full address' (#554) from feat/tradein-yandex-address-backfill into main lekss361 2026-05-24 19:59:23 +00:00
  • d2a0257639 feat(tradein-scripts): scrapers + probes + Phase C improvements (#551) lekss361 2026-05-24 19:58:38 +00:00
  • 6bbb026cb4 fix(yandex-valuation): off-by-one cell index in _parse_row_cells (#552) lekss361 2026-05-24 19:57:17 +00:00
  • 23aebea812 feat(tradein): GET /street-deals — ДКП-сделки по улице target адреса lekss361 2026-05-24 22:56:10 +03:00
  • 7575999ad9 feat(tradein): backfill yandex listings.address with house number from detail page lekss361 2026-05-24 22:52:34 +03:00
  • d692511cef fix(yandex-valuation): correct off-by-one cell index in _parse_row_cells lekss361 2026-05-24 22:51:03 +03:00
  • 5555ea2f67 feat(tradein/scripts): local Playwright runners для Cian history+valuation backfill (bypass server-IP anti-bot) lekss361 2026-05-24 22:50:58 +03:00
  • 70e45ce5e9 feat(tradein-scripts): scrapers, probes, Phase C improvements lekss361 2026-05-24 22:49:20 +03:00
  • 5394713bc7 Merge pull request 'feat(tradein): sell-time sensitivity (4 цены × срок продажи)' (#548) from feat/tradein-sell-time-backend into main lekss361 2026-05-24 19:44:41 +00:00
  • 0ac54d1de0 feat(tradein): sell-time sensitivity block (4 цены × медиана срока продажи) lekss361 2026-05-24 21:27:18 +03:00
  • 596842df8d fix(tradein): filter ДКП-only in rosreestr importer + re-enable deals (#549) lekss361 2026-05-24 19:42:28 +00:00
  • 5bfacd51b0 feat(tradein): «Росреестр» button — copy address + open EGRN request form (#550) lekss361 2026-05-24 19:42:09 +00:00
  • 4d09b3bca8 feat(tradein): «Росреестр» button — copy address + open EGRN request form lekss361 2026-05-24 22:36:25 +03:00
  • d3ad896efe fix(tradein): filter ДКП-only in rosreestr importer + re-enable deals lekss361 2026-05-24 22:31:23 +03:00
  • 967e7185ca feat(tradein): cian price-change badges + split chart Avito/Yandex (#547) lekss361 2026-05-24 18:24:00 +00:00
  • 07cbcd235b feat(tradein): cian price-change badges + split price-history chart lekss361 2026-05-24 21:14:26 +03:00
  • 80850a591e feat(tradein): house analytics section (chart + KPI + sold list) (#546) lekss361 2026-05-24 18:09:45 +00:00
  • 7eeffe353a feat(tradein): house analytics section на trade-in странице lekss361 2026-05-24 21:00:42 +03:00
  • f7a5c5d4f7 fix(yandex-valuation): curl_cffi chrome120 — Yandex gates SSR on Chrome TLS (#545) lekss361 2026-05-24 16:42:07 +00:00
  • ed6e52f393 fix(yandex-valuation): use curl_cffi chrome120 — Yandex gates SSR on Chrome TLS lekss361 2026-05-24 19:37:30 +03:00
  • 8a88ea6508 refactor(yandex-valuation): DOM-based parser via .OffersArchiveSearchOffers__row (#544) lekss361 2026-05-24 16:25:56 +00:00
  • e070f06c26 refactor(yandex-valuation): DOM-based parser via .OffersArchiveSearchOffers__row lekss361 2026-05-24 19:20:20 +03:00
  • cbe81b7fb7 Merge pull request 'fix(tradein/devops): wire COOKIE_ENCRYPTION_KEY env to tradein-backend' (#543) from chore/tradein-cookie-encryption-key-env into main lekss361 2026-05-24 16:08:20 +00:00
  • 3ed58e3e7a fix(yandex-valuation): relax area regex lookbehind (2-комн regression) (#542) lekss361 2026-05-24 16:02:06 +00:00
  • a75a660e5b fix(tradein/devops): wire COOKIE_ENCRYPTION_KEY env to tradein-backend (Calculator was broken on prod) lekss361 2026-05-24 18:58:51 +03:00
  • 9b07a0f935 fix(yandex-valuation): relax area regex lookbehind (2-комн regression) lekss361 2026-05-24 18:50:04 +03:00
  • 5b1fb6633f fix(tradein-phase-c): prepend region prefix for IMV geocoder (#540) lekss361 2026-05-24 15:39:56 +00:00