5779e512be
feat(ptica): interactive 3D building-massing module (Three.js) [PR#5]
...
Port the prototype massing.js to a client-only React component (MassingScene)
behind a dynamic(ssr:false) wrapper (MassingViewer), wired into the future3d +
insolation drawers, replacing the СКОРО SoonCards.
Generative mass from parcel area (real geometry_suitability.area_ha) × КСИТ-цель
3.5 (labelled regulation-default · НСПД — honest, real max_far not in /analyze),
OrbitControls (orbit/zoom/auto-rotate), time-of-day sun with shadows (insolation
preview), live GFA/КСИТ-факт metrics (green ≤3.5 / amber over). Full renderer/
scene/RAF dispose on drawer close; graceful WebGL-unavailable fallback.
Adds three@0.184.0 + @types/three (package.json + package-lock.json in sync).
SSR-isolated (three imported only in MassingScene). TS strict, no any.
2026-06-20 16:27:36 +05:00
95f93da83b
feat(ptica): right-slider detail drawer system + 17 drawers wired (PR#4)
...
PticaDrawer: controlled right slider (480px / full-screen <768), scrim+Esc
close, focus-on-open, body-scroll-lock (restored on close/unmount), dialog
a11y. Deep-link ?drawer= via useSearchParams + shallow router.replace (no
render loop; unknown keys ignored). Enables the «Подробнее» buttons on scan
+ hero cards.
17 drawer contents (passport/buildability/urban/restrictions/engineering/
market[4 sub-tabs]/economy/risks/georisks/oks/potential/product/finance/legal/
environment/insolation/future3d) built from ParcelAnalysis + forecast product_tz.
Many are REAL: environment (noise/air_quality/wind/weather), georisks (geology/
hydrology/geotech_risk), market (competitors/market_trend/velocity/pipeline),
restrictions (zouit/red_lines/zoning), engineering, passport. Absent fields
(КСИТ/ОКС/финмодель/insolation) show honest «—»/«скоро» via ptica-adapt.
All field paths verified against types. Dark theme scoped. TS strict, no any.
Follow-up: drawer focus-trap + focus-restore for full modal a11y.
2026-06-20 16:16:39 +05:00
e18bb06539
feat(ptica): build Отчёты + Сравнение cockpit tabs (PR#3)
...
Reports: dark export cards reusing real infra — PDF snapshot (/snapshot.pdf
via shared API_BASE_URL+triggerDownload), client-side CSV (formula-injection
guard + UTF-8 BOM preserved), §22 forecast DOCX/PPTX gated on forecast-ready
with honest 404; full-report DOCX/PPTX disabled «скоро» (no endpoint). Section
checklist mirrors the snapshot TOC.
Compare: reuses compare-shortlist (localStorage, COMPARE_MAX) + ParcelCompareLoader
for real per-cad analyze metrics (shared cache, rules-of-hooks safe via keyed
loader). Current cad auto-pinned + non-removable, validated кадастр input,
removable chips. Dark comparison table with winner highlight + colour-coded
verdict (Можно/С огранич./Нельзя).
Dark styles scoped under .pticaRoot[data-theme=dark]; reuse-only (ExportButtons,
compare page, loaders untouched); no new deps. TS strict, no any.
2026-06-20 15:58:50 +05:00
b0736e3a45
feat(ptica): build Сценарии tab (§22 forecast) + real hero invest-score
...
Dark cockpit Scenarios tab wired to useParcelForecastQuery (ForecastEnvelope):
scenario cards (base/aggr/conserv), demand-vs-supply chart + horizons table,
scenario compare table, confidence panel, recommended product (квартирография
+ target price + success-score), scoring transparency. Calm polling skeleton
while the async forecast is pending — never an error.
Hero invest-score/buy-signal now surface real values once the forecast resolves
(scoring.overall×10; buy-signal from exec_summary.key_numbers.deficit_index,
derived independent of the overall score), keeping the "после прогноза"
placeholders while pending. advisory · §22 caption shown in both states.
All forecast field paths verified against types/forecast.ts. Dark theme stays
scoped under .pticaRoot[data-theme=dark]. TS strict, no any.
2026-06-20 15:48:54 +05:00
05eb70eb62
feat(site-finder): ПТИЦА dark cockpit — increment 1 (shell + hero + Development Scan)
...
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 55s
CI / openapi-codegen-check (pull_request) Successful in 1m57s
New non-destructive route /site-finder/analysis/[cad]/ptica rendering the existing
/analyze data in the «ПТИЦА» operator-terminal cockpit. The light analysis page,
Section1-6, globals.css and package.json are untouched.
PR#1 scope: app-shell (topbar + 4 tabs + left rail), hero (dark Leaflet map +
parcel passport KV-grid + Buildability radial gauge + invest-score block), and the
Development Scan card grid — wired to useParcelAnalyzeQuery / ParcelAnalysis.
Data honesty: real fields render live (passport egrn.*, district, utilities.summary,
median_price, pipeline_24mo); absent fields show muted placeholders with source
captions (buildability/risk = derived proxy «предв.»; invest/buy-signal «после
прогноза»; КСИТ/height/ОКС/economy «—») via typed ptica-adapt.ts — no fake numbers
presented as live.
Dark theme is a CSS-module scoped under .pticaRoot[data-theme=dark] (cannot leak to
the light app); IBM Plex Mono added via next/font (no dep/lockfile change). Leaflet
via dynamic(ssr:false). TS strict, no any. Deferred to follow-up PRs: Scenarios
(forecast), Reports+Compare tabs, 16 detail drawers, Three.js 3D massing.
2026-06-20 15:29:53 +05:00
a425f2f200
Merge pull request 'feat(tradein/scrapers): full_load пропускает листинги обновлённые сегодня при повторном прогоне' ( #1828 ) from feat/tradein-skip-seen-today into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m23s
Deploy Trade-In / build-backend (push) Successful in 52s
Deploy Trade-In / deploy (push) Successful in 46s
Reviewed-on: #1828
2026-06-20 09:16:33 +00:00
533299ea47
feat(tradein/scrapers): full_load пропускает листинги обновлённые сегодня при повторном прогоне (skip_seen_today)
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 12:13:32 +03:00
7d92411347
Merge pull request 'feat(tradein-browser): per-provider page-interval override ( #1812 follow-up)' ( #1826 ) from feat/browser-per-provider-pacing into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Successful in 2m2s
Deploy Trade-In / deploy (push) Successful in 1m28s
Reviewed-on: #1826
2026-06-20 08:47:06 +00:00
89590424f5
Merge pull request 'fix(tradein/db): widen offer_price_history.diff_percent (5,2)→(8,2) + clamp в триггере (краш full_load)' ( #1827 ) from fix/tradein-diff-percent-overflow into main
...
Deploy Trade-In / build-backend (push) Blocked by required conditions
Deploy Trade-In / build-frontend (push) Blocked by required conditions
Deploy Trade-In / build-browser (push) Blocked by required conditions
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been cancelled
Reviewed-on: #1827
2026-06-20 08:46:58 +00:00
89cbddf318
fix(tradein/db): widen offer_price_history.diff_percent numeric(5,2)→(8,2) + clamp в триггере (краш full_load)
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 11:43:23 +03:00
3f30c1c924
feat(tradein-browser): per-provider page-interval override (BROWSER_MIN_PAGE_INTERVAL_S_{PROVIDER}) — #1812 follow-up
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 10:44:00 +03:00
68f6dad62f
Merge pull request 'fix(scrapers/ui): дедуп queryKey cian test-auth + a11y (Phase-1 polish)' ( #1824 ) from fix/scrapers-phase1-frontend into main
...
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m36s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 56s
Reviewed-on: #1824
2026-06-20 07:21:30 +00:00
298b43e399
Merge pull request 'fix(scrapers/backend): socks5 health-probe + status Literal + #1820 ext_id=0 dedup' ( #1825 ) from fix/scrapers-phase1-backend into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Has been cancelled
Deploy Trade-In / build-backend (push) Has been cancelled
Deploy Trade-In / deploy (push) Has been cancelled
Reviewed-on: #1825
2026-06-20 07:21:20 +00:00
6176028237
Merge pull request 'feat(tradein/ui): две равноправные hero-цены (выставить/получить) + компактный ряд бенчмарков' ( #1823 ) from fix/tradein-estimate-hero-restructure into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m39s
Deploy Trade-In / deploy (push) Successful in 44s
Reviewed-on: #1823
2026-06-20 07:18:12 +00:00
8361961a44
fix(scrapers/backend): socks5 health-probe (httpx[socks]) + status Literal whitelist + #1820 ext_id=0 dedup-гард
...
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
- pyproject.toml: httpx[socks]>=0.27.0 — тянет socksio, socks5:// прокси в _probe_current_ip работает прозрачно
- admin.py list_scrape_runs_unified: status Literal["done","running","banned","zombie","failed","cancelled"] вместо str|None — невалидные значения → 422
- avito_houses.py save_house_catalog_enrichment: гард ext_id=0 + нет адреса → skip without DB touch; два id-less novostroyka URL не схлопываются в bogus avito:0 в house_sources
- тесты: test_unified_runs_invalid_status_422 + test_unified_runs_valid_statuses_200; test_save_house_catalog_enrichment_skips_zero_ext_id_no_address + *_with_address_persists
2026-06-20 10:17:37 +03:00
fa65c3f212
fix(scrapers/ui): дедуп queryKey cian test-auth + a11y (th scope, табы ARIA, статус-точки aria-label)
...
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 6s
CI / openapi-codegen-check (pull_request) Has been skipped
- cian/page.tsx: отдельный queryKey ["cian-test-auth", "manual"] для ручного
testAuthQuery в CianCookiesSection — устраняет кросс-контаминацию с автопуллингом
useTestAuth() (refetchInterval:60s) и ручной кнопкой "Test Current Session"
- RunsTable.tsx, ScraperPage.tsx (RunsLogSection), ProxyHealthCard.tsx:
scope="col" на все <th> в thead — соответствие WCAG SC 1.3.1 (Info and Relationships)
- Topbar.tsx: aria-current="page" на активный nav-link вместо tablist/tabpanel —
корректный паттерн для link-based навигации между отдельными страницами
- ProxyHealthCard.tsx: role="img" + aria-label на цветовые dot-индикаторы статуса
browser-инстансов — цвет больше не единственный носитель смысла (WCAG 1.4.1)
2026-06-20 10:14:58 +03:00
44fdab2d5e
feat(tradein/ui): две равноправные hero-цены (выставить/получить) + компактный ряд бенчмарков, убрать дубли
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 10:14:27 +03:00
7639dfe5fd
Merge pull request 'fix(scrapers): avito pipeline — новостройки house graceful + AvitoBlockedError per-item не крашит прогон ( #1820 )' ( #1822 ) from fix/avito-pipeline-novostroyki-blocks into main
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m19s
Deploy Trade-In / build-backend (push) Successful in 1m3s
Deploy Trade-In / deploy (push) Successful in 46s
Reviewed-on: #1822
2026-06-20 06:57:55 +00:00
dae2b5a5d9
Merge pull request 'fix(tradein/ui): убрать debug cache-key, гейт тонких графиков, разграничить динамику цен' ( #1821 ) from fix/tradein-estimate-ui-cleanup-v2 into main
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m39s
Deploy Trade-In / deploy (push) Successful in 44s
Reviewed-on: #1821
2026-06-20 06:55:03 +00:00
cd91d5e279
fix(scrapers): avito pipeline — новостройки house graceful (без housePage), AvitoBlockedError per-item не крашит прогон ( #1820 )
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 09:53:46 +03:00
237c18597f
fix(tradein/ui): убрать debug cache-key, гейт тонких графиков, дедуп динамики цен
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 09:49:15 +03:00
86f4602f1d
Merge pull request 'feat(tradein-frontend): единая scrapers-страница — табы, proxy-health+rotate, runs-история (scrapers UI Phase 1)' ( #1819 ) from feat/scrapers-unified-page into main
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m43s
Deploy Trade-In / deploy (push) Successful in 45s
Reviewed-on: #1819
2026-06-20 06:40:55 +00:00
3fa35be26e
Merge pull request 'feat(admin): unified scrape/runs + scraper/health + rotate-ip API (scrapers UI Phase 1)' ( #1818 ) from feat/scraper-admin-apis into main
...
Deploy Trade-In / build-backend (push) Blocked by required conditions
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Has been cancelled
Reviewed-on: #1818
2026-06-20 06:40:35 +00:00
dd339d3302
feat(tradein-frontend): единая scrapers-страница — табы Avito/Cian/Yandex, proxy-health+rotate, runs-история, консолидация триггеров, удалён cian-cookies редирект
CI / changes (pull_request) Successful in 4s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 09:33:07 +03:00
2f88a71915
feat(admin): unified scrape/runs + scraper/health + rotate-ip API для единой scrapers-страницы
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 09:25:57 +03:00
faa1af9c56
Merge pull request 'fix(tradein/estimator): расширить corridor-clamp slack 0.25→0.40 для премиума без own-листингов' ( #1817 ) from fix/tradein-corridor-slack-040 into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m20s
Deploy Trade-In / build-backend (push) Successful in 47s
Deploy Trade-In / deploy (push) Successful in 44s
Reviewed-on: #1817
2026-06-20 06:19:13 +00:00
3cb11355e6
fix(tradein/estimator): расширить corridor-clamp slack 0.25→0.40 для премиума без own-листингов
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-20 09:16:00 +03:00
3ff4e067e2
Merge pull request 'fix(scrapers): avito_detail_backfill — снапшот ЕКБ+active, detail browser-only без curl-fallback на бан ( #1814 )' ( #1815 ) from fix/avito-detail-backfill-ekb-browser-only into main
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m22s
Deploy Trade-In / build-backend (push) Successful in 52s
Deploy Trade-In / deploy (push) Successful in 46s
Reviewed-on: #1815
2026-06-20 05:34:18 +00:00
37fc50ad08
fix(scrapers): avito_detail_backfill — снапшот ЕКБ+active, detail browser-only без curl-fallback на бан ( #1814 )
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 21:58:35 +03:00
2402287d64
Merge pull request 'feat(browser): per-provider page pacing + resource-block tuning — снизить proxy fan-out ( #1812 )' ( #1813 ) from feat/browser-reduce-page-fanout into main
...
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Successful in 2m4s
Deploy Trade-In / deploy (push) Successful in 1m37s
Reviewed-on: #1813
2026-06-19 18:30:13 +00:00
59b5d15752
feat(browser): block font/media + per-provider page pacing — снизить proxy fan-out ( #1812 )
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 21:28:09 +03:00
ebdd70a38d
Merge pull request 'feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback ( #1805 )' ( #1809 ) from feat/avito-serp-browser-default into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m15s
Deploy Trade-In / build-backend (push) Successful in 58s
Deploy Trade-In / deploy (push) Successful in 45s
Reviewed-on: #1809
2026-06-19 17:53:12 +00:00
65cec74cca
Merge pull request 'feat(scrapers): cian SERP на BrowserFetcher (camoufox), снят code-side rotate ( #1806 )' ( #1810 ) from feat/cian-serp-browser into main
...
Deploy Trade-In / build-backend (push) Blocked by required conditions
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Has been cancelled
Reviewed-on: #1810
2026-06-19 17:51:59 +00:00
c88170b680
Merge pull request 'fix(tradein-frontend): Мера estimate — hydration #418 + photos 422 ( #1803 #1804 )' ( #1808 ) from fix/mera-estimate-ui-artifacts into main
...
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m45s
Deploy Trade-In / deploy (push) Has been cancelled
Reviewed-on: #1808
2026-06-19 17:49:44 +00:00
cbc20cfe54
fix(tradein-frontend): Мера estimate — hydration #418 + photos 422 graceful ( #1803 #1804 )
...
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
#1803 HeroTransparency: formatRuDateTime добавляет timeZone:"UTC" (SSR Node UTC
vs клиент Europe/Moscow давали разный час → React minified error #418 ).
Date.now() fallback (data_freshness_minutes без last_scraped_at) вынесен в
useEffect/useState — не выполняется при SSR.
#1804 PhotoUpload: guard isRealEstimateId() проверяет UUID4 regex и отклоняет
preview-0000-... — GET/POST /photos с фейковым ID больше не слаются → нет 422.
Счётчик показывает «— / 12» вместо «0 / 12», input disabled в preview-режиме.
2026-06-19 20:44:28 +03:00
93f7c9ae3f
feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback ( #1805 )
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
2026-06-19 20:42:04 +03:00
b1fb0c5711
feat(scrapers): cian SERP на BrowserFetcher (camoufox), снят code-side rotate ( #1806 )
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 20:41:44 +03:00
abbe0b871d
Merge pull request 'fix(tradein/estimator): clamp premium headline к коридору сделок + робастный anchor ( #1795 )' ( #1807 ) from fix/tradein-estimator-premium-clamp-1795 into main
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m17s
Deploy Trade-In / build-backend (push) Successful in 52s
Deploy Trade-In / deploy (push) Successful in 45s
Reviewed-on: #1807
2026-06-19 17:37:58 +00:00
494f2e00e0
fix(tradein/estimator): clamp premium headline к коридору сделок + робастный anchor ( #1795 )
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 20:34:48 +03:00
a534dece06
Merge pull request 'test(browser): удалить устаревшие pool-routing тесты (CI red после #1793 )' ( #1802 ) from fix/remove-obsolete-browser-pool-tests into main
...
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / changes (push) Successful in 7s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 1m19s
Deploy Trade-In / build-backend (push) Successful in 50s
Deploy Trade-In / deploy (push) Successful in 44s
Reviewed-on: #1802
2026-06-19 17:13:50 +00:00
8467cc647f
test(browser): remove obsolete pool-routing tests (FEATURE_BROWSER_POOL_ENABLED/_build_proxy_map removed in #1793 per-provider rewrite; routing covered by browser/test_server.py)
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 20:12:51 +03:00
2e3291abc9
Merge pull request 'fix(scrapers): cian_detail — ceiling из offer.building.ceilingHeight, repair из decoration ( #1791 )' ( #1800 ) from feat/cian-detail-field-mapping into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Failing after 1m20s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been skipped
Reviewed-on: #1800
2026-06-19 17:07:14 +00:00
95069a3daf
Merge pull request 'fix(scrapers): yandex_detail — area/ceiling/kitchen из INITIAL_STATE, покрытие area 63%→~95% ( #1792 )' ( #1799 ) from feat/yandex-detail-field-coverage into main
...
Deploy Trade-In / build-backend (push) Blocked by required conditions
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 7s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Has been cancelled
Reviewed-on: #1799
2026-06-19 17:07:02 +00:00
2d3ca78b0b
fix(scrapers): cian_detail — ceiling/repair актуальные пути state ( #1791 )
...
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
ceiling_height на detail-странице лежит в offer.building.ceilingHeight,
а не offer.ceilingHeight (всегда null) → было 0% покрытия. repairType
часто пустой, структурное значение приходит как offer.decoration
('preFine'/...) — читаем оба + добавлен preFine->needs_repair и
case-insensitive lookup в нормализаторе. kitchen/description пути уже
верны (offer.kitchenArea/offer.description) — низкое покрытие = мёртвый
CIAN_PROXY_URL, не маппинг. Регресс-тест на реальной карточке 330982715.
2026-06-19 19:57:18 +03:00
7c9a3cf09d
Merge pull request 'fix(tradein-browser): camoufox hardening — block_images/webrtc + форс МСК tz ( #1796 )' ( #1798 ) from fix/tradein-browser-camoufox-hardening into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-browser (push) Successful in 2m10s
Deploy Trade-In / deploy (push) Successful in 1m33s
Reviewed-on: #1798
2026-06-19 16:50:24 +00:00
b5f439a095
fix(tradein-browser): camoufox hardening — block_images/webrtc + forced MSK tz
...
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Со всеми знаниями из ресёрча camoufox (#1796 Avito anti-bot):
- block_images=True — быстрее грузит (HTML/JSON, без рендера картинок).
- block_webrtc=True — закрывает WebRTC-leak реального IP мимо прокси.
- config timezone=Europe/Moscow — форсим +3 МСК: geoip+БэкКоннект (ротация IP
на каждый запрос) давал геолик tz↔IP (Ульяновск UTC+4 при выходе МСК/СПб).
2026-06-19 19:49:14 +03:00
0084efc12a
fix(scrapers): yandex_detail — area/ceiling из структурного блока, покрытие area 63%->~95% ( #1792 )
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 19:37:51 +03:00
059fa83589
Merge pull request 'fix(scrapers): avito_houses — отзывы/история/тип ЖК долетают (виджет-payload вложен глубже) ( #1789 )' ( #1797 ) from feat/avito-houses-mfe-state into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Failing after 1m18s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been skipped
Reviewed-on: #1797
2026-06-19 16:27:03 +00:00
464e9faf7b
fix(scrapers): avito_houses читает MFE props-вложенность виджетов — отзывы/история/тип ЖК теперь долетают ( #1789 )
CI / changes (pull_request) Successful in 5s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-19 19:21:49 +03:00
4755f8bd13
Merge pull request 'feat(browser): per-provider concurrency — параллель между поставщиками, ≤1 коннект на поставщика ( #1793 )' ( #1794 ) from feat/browser-per-provider-concurrency into main
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-browser (push) Successful in 2m6s
Deploy Trade-In / deploy (push) Successful in 2m12s
Reviewed-on: #1794
2026-06-19 16:02:13 +00:00