e5f4e37415
feat(scrapers): route cian sessions through mobile proxy (Refs #806 )
...
Снимает egress-часть #639 : cian-скрейперы ходили с datacenter-IP (без proxies)
→ даже валидные куки не фетчили с прод-бокса. Прокидываем тот же mobile-proxy,
что у avito (#623/#805).
- config: generic scraper_proxy_url (env SCRAPER_PROXY_URL → fallback
AVITO_PROXY_URL → None/direct). Прод .env.runtime с AVITO_PROXY_URL работает
без изменений env.
- avito.py + scrape_pipeline._avito_proxies(): на settings.scraper_proxy_url
(поведение идентично).
- cian.py / cian_detail.fetch_detail / cian_session.verify_session: proxies=
{http,https} из settings.scraper_proxy_url; пусто → direct (dev no-op).
Cookie-refresh DMIR_AUTH (#639 ) — НЕ тронут (needs-human). 7 тестов
(precedence + dict-shape + fallback), ruff clean.
2026-05-30 22:01:21 +03:00
a48205391c
Merge pull request 'hotfix(caddy): @uipreview named matcher (fix prod-down crash-loop)' ( #817 ) from hotfix/caddy-uipreview-named-matcher into main
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Successful in 26s
Deploy / build-frontend (push) Successful in 24s
Deploy / build-worker (push) Successful in 27s
Deploy / deploy (push) Successful in 56s
2026-05-30 18:52:11 +00:00
547ab37597
hotfix(caddy): named matcher @uipreview — handle не принимает несколько inline-путей → caddy crash-loop, прод down ( #801 )
2026-05-30 18:52:09 +00:00
2ebfe2352d
Merge pull request 'fix(caddy): exempt /trade-in/_next/static/* (ui-preview CSS) ( #801 )' ( #816 ) from chore/caddy-ui-preview-next-static into main
Deploy / deploy (push) Blocked by required conditions
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Successful in 27s
Deploy / build-worker (push) Successful in 26s
Deploy / build-frontend (push) Successful in 26s
2026-05-30 18:47:03 +00:00
b779376f9d
fix(caddy): exempt /trade-in/_next/static/* too — CSS/JS на ui-preview грузились под auth → 401 ( #801 )
2026-05-30 18:47:01 +00:00
7330d10dcc
Merge pull request 'chore(tradein): enable /ui-preview on prod (NEXT_PUBLIC_ENABLE_PREVIEW) ( #801 )' ( #813 ) from chore/enable-ui-preview-prod into main
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Successful in 28s
Deploy Trade-In / build-backend (push) Successful in 28s
Deploy Trade-In / build-frontend (push) Successful in 1m55s
Deploy Trade-In / deploy (push) Failing after 8s
2026-05-30 18:40:41 +00:00
ae1a35140c
ci(tradein): pass NEXT_PUBLIC_ENABLE_PREVIEW=1 to frontend build ( #801 )
2026-05-30 18:40:22 +00:00
f72edb828a
chore(tradein-fe): bake NEXT_PUBLIC_ENABLE_PREVIEW build-arg ( #801 )
2026-05-30 18:40:21 +00:00
40a78c3670
Merge pull request 'chore(caddy): exempt /trade-in/ui-preview/* from basic_auth ( #801 )' ( #810 ) from chore/caddy-ui-preview-exempt into main
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Successful in 26s
Deploy / build-worker (push) Successful in 26s
Deploy / build-frontend (push) Successful in 25s
Deploy / deploy (push) Successful in 57s
2026-05-30 18:30:16 +00:00
c73a79ee6f
Merge pull request 'feat(estimator): exclude city-centroid listings from radius analogs (Refs #769 Part E)' ( #811 ) from fix/769-e-geo-centroid into main
...
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Successful in 26s
Deploy Trade-In / deploy (push) Successful in 36s
Reviewed-on: #811
2026-05-30 18:26:39 +00:00
86d98aac30
Merge pull request 'fix(frontend): pilot-only юзер → auto-redirect на /trade-in/ вместо «Доступа нет» ( #799 )' ( #809 ) from feat/799-pilot-redirect-tradein into main
...
Deploy / build-backend (push) Has been skipped
Deploy / build-worker (push) Has been skipped
Deploy / changes (push) Successful in 5s
Deploy / build-frontend (push) Successful in 2m48s
Deploy / deploy (push) Successful in 1m0s
Reviewed-on: #809
2026-05-30 18:23:06 +00:00
b736d7b7e0
feat(estimator): exclude city-centroid listings from radius analogs (Refs #769 Part E)
...
Закрывает последнюю часть #769 (A1/A2/B/C/D в #798/#804). Finding #17 :
bare-city адреса геокодились в city-центроид и сохранялись как точные lat/lon →
mislocated листинги участвовали в radius ST_DWithin-аналогах.
- 089: ALTER TABLE listings ADD COLUMN IF NOT EXISTS geo_precision text (idempot).
- ScrapedLot.geo_precision + проброс в save_listings.
- geocode_missing.py: geo_precision='city' через существующий _geocode_is_coarse.
- estimator _fetch_analogs Tier H+W: + AND (geo_precision IS DISTINCT FROM 'city').
NULL проходит (консервативно, сдвига до backfill нет). Pricing не тронут.
7 тестов; 270 passed, ruff clean.
2026-05-30 21:22:21 +03:00
84f6d57d9d
chore(caddy): exempt /trade-in/ui-preview/* from basic_auth ( #801 )
...
Public CI surface для a11y/lighthouse аудита. /ui-preview/estimate (#803 ) рендерит mock-фикстуру без бэкенда, но Caddy basic_auth отдавал 401. handle-блок ДО auth-import → публично.
2026-05-30 18:21:34 +00:00
654ce7b6c8
fix(frontend): pilot-only юзер → auto-redirect на /trade-in/ вместо «Доступа нет»
...
RouteGuard: при denied path главного фронта (корень / и пр.) если у роли
единственная рабочая зона — trade-in (isPathAllowed(/trade-in/)=true) →
window.location.replace('/trade-in/') вместо дед-энда NoAccessScreen.
Guard от петли: не редиректить если путь уже под /trade-in. admin/multi-scope
с разрешённым / не затронуты. Вариант 2 из issue (без Caddy/backend).
Refs #799
2026-05-30 21:18:19 +03:00
ae820d3bd9
docs(agents): auto-analyst verify-before-ready + dedup/loop guardrails
...
Из инцидентов live-сессии 2026-05-30:
- шаг 4: file:line из vault-заметки НЕВЕРИФИЦИРОВАН — Read+confirm своими глазами
до вписывания в issue (incident: спека «перевести на JSON», код уже на JSON)
- шаг 7: status/ready только на финальном verified-теле, не «ready→переписываю»
(incident #697/#699 — воркер смержил по тонкому телу за ~30s)
- «поменяй лейблы» ⇒ также аудит+переписывание тонкого тела до ready
- _autonomous_pickup: dedup-before-create обязателен при параллельных окнах
(incident #724/#728 vs #726/#727), list_repo_issues всегда с фильтром (token-limit)
- work-as-analyst: один loop-механизм, CronDelete перед CronCreate
- fix stale cross-ref шаг 6 → шаг 8
2026-05-30 21:15:48 +03:00
a7a839b512
Merge pull request 'chore(auth): regenerate praktika pilot password' ( #807 ) from chore/praktika-password into main
...
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Successful in 28s
Deploy / build-worker (push) Successful in 27s
Deploy / build-frontend (push) Successful in 26s
Deploy / deploy (push) Successful in 57s
Reviewed-on: #807
2026-05-30 18:15:28 +00:00
lekss361
a42ca6a014
chore(auth): regenerate praktika pilot password (#635/#659)
...
Сброшен пароль praktika (Практика, pilot) — plaintext не был зафиксирован в
vault, не верифицируем как «выдан клиенту». Новый base64(bcrypt) hash; plaintext
записан в vault meta/00_credentials.md (Caddy basic_auth таблица). Применится
deploy git-reset /opt/gendesign + restart gendesign-caddy-1.
Refs #659 .
2026-05-30 21:10:09 +03:00
950d0f60de
fix(tradein): sweep shared-session (SERP+detail) через mobile proxy ( #623 ) ( #805 )
...
Deploy Trade-In / test (push) Successful in 26s
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 18:07:37 +00:00
a9e4aecb54
fix(tradein): data-layer tail A2+B+C — trgm index, FDW options, matview refresh (Refs #769 ) ( #804 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 26s
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 36s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:40:54 +00:00
046febcae8
feat(tradein): dev/CI preview route for a11y+lighthouse ( #801 ) ( #803 )
...
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 / build-frontend (push) Successful in 1m34s
Deploy Trade-In / deploy (push) Successful in 35s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:37:40 +00:00
c76785308b
feat(scrapers/n1): извлекать floor/total_floors из ведущего N/M-токена (Refs #795 ) ( #802 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / build-backend (push) Successful in 41s
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:31:13 +00:00
4c275e04ea
fix(tradein): word-boundary street match + cian unescape robustness (Refs #769 A1+D) ( #798 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 35s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:18:33 +00:00
87a5de0cae
feat(db): quarter_price_index FDW foreign table + monthly refresh (Refs #762 ) ( #797 )
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 26s
Deploy Trade-In / build-backend (push) Successful in 25s
Deploy / build-backend (push) Successful in 1m30s
Deploy Trade-In / deploy (push) Successful in 37s
Deploy / build-worker (push) Successful in 2m54s
Deploy / deploy (push) Successful in 1m8s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:16:28 +00:00
679e75b9e8
fix(tradein): resilience-хвост аудита #770 (findings #25-33) ( #793 )
...
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 / build-frontend (push) Successful in 1m38s
Deploy Trade-In / deploy (push) Successful in 35s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 17:13:31 +00:00
a4057a5b28
feat(db): mv_quarter_price_index — quarter price-index из ДКП (Refs #760 ) ( #792 )
...
Deploy / changes (push) Successful in 5s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 26s
Deploy / build-worker (push) Successful in 26s
Deploy / deploy (push) Successful in 57s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 17:05:51 +00:00
b175ea4225
fix(tradein): санитизация brand.logo_url + валидация brand-цветов ( #766 ) ( #791 )
...
Deploy Trade-In / build-frontend (push) Successful in 1m32s
Deploy Trade-In / deploy (push) Successful in 56s
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
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 16:58:14 +00:00
3653f020b6
fix(ratio): ppm² потолок asking→sold в конфиг, default 1.2M (Refs #767 ) ( #790 )
...
Deploy Trade-In / test (push) Successful in 24s
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-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:57:09 +00:00
38d44f46b7
fix(pdf): brand-spoof + median=0 empty-state + SSRF + дисклеймер + sources (Refs #772 ) ( #789 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been cancelled
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / build-backend (push) Successful in 39s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:55:56 +00:00
96027357b5
feat(tradein): Avito mobile proxy egress + firewall detect + MSK date ( #623 , #726 ) ( #788 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / deploy (push) Successful in 33s
Deploy Trade-In / build-backend (push) Successful in 39s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:52:35 +00:00
a45d4b3cf4
fix(tradein): MapCard клик по пину + честная ДКП-легенда ( #786 ) ( #787 )
...
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 / build-frontend (push) Successful in 1m33s
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 16:46:04 +00:00
8f2ff10a1c
fix(cian): verify_session на curl_cffi impersonate — ban != cookies expired (Refs #768 ) ( #785 )
...
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Successful in 38s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:40:54 +00:00
ec84637abf
fix(estimator): expected_sold guard listings_clean → median_price>0 (Refs #773 ) ( #784 )
...
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:39:08 +00:00
30ae4841a4
fix(scrapers): yandex area из embedded-state JSON (Refs #775 ) ( #783 )
...
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 / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:38:12 +00:00
fdbd6ed70d
fix(tradein): MapPicker через portal в document.body — z-index конфликт с SourcesProgress ( #771 ) ( #782 )
...
Deploy Trade-In / deploy (push) Blocked by required conditions
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 / build-frontend (push) Has been cancelled
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 16:37:03 +00:00
238f14a0d7
fix(tradein): account-бренд приоритетен над ?brand= — cross-brand leak ( #765 ) ( #780 )
...
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Successful in 1m31s
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 16:29:11 +00:00
489666c735
fix(tradein): avito content-block (HTTP-200) не маскируется под end-of-pagination (Refs #754 ) ( #779 )
...
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 / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:28:23 +00:00
bcd035034a
fix(tradein): SSRF host-allowlist на admin scrape + удалён dead ADMIN_TOKEN (Refs #756 ) ( #778 )
...
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Successful in 23s
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:27:19 +00:00
9954f4962f
fix(tradein): /sales-vs-listings street_only не house_linked (Refs #757 ) ( #777 )
...
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 / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:26:08 +00:00
652e0df10f
fix(tradein): cron-scrape.sh log to writable path + graceful tee (Refs #758 ) ( #776 )
...
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / build-frontend (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:25:19 +00:00
79a79004cf
fix(scrapers): stable dedup_hash — drop price_rub + strip URL query (Refs #753 ) ( #761 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:10:27 +00:00
2226b16cd3
fix(scheduler): atomic _claim_run via advisory xact lock (Refs #750 ) ( #752 )
...
Deploy Trade-In / deploy (push) Successful in 34s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 25s
Deploy Trade-In / build-backend (push) Successful in 42s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 16:04:33 +00:00
93f85154a5
fix(tradein): gate «0,00 млн ₽» в не-headline секциях при insufficient_data ( #748 ) ( #751 )
...
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 / build-frontend (push) Successful in 1m34s
Deploy Trade-In / deploy (push) Successful in 1m7s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 15:58:19 +00:00
a74591d7cc
fix(tradein): atomic conditional quota increment — close TOCTOU ( #747 ) ( #749 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / deploy (push) Successful in 34s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Successful in 40s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:52:34 +00:00
1b8e3b1f25
fix(tradein): confidence «средняя» → amber + FIXME для compsTier ( #742 ) ( #746 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Successful in 1m32s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 15:44:37 +00:00
6762a532eb
feat(scrapers): wire N1.ru city sweep — pipeline + scheduler + admin endpoint ( #575 ) ( #745 )
...
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 / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:43:38 +00:00
2390c49d12
fix(tradein): guard деления на median=0 в ListingsCard/DealsCard ( #741 ) ( #744 )
...
Deploy Trade-In / deploy (push) Successful in 34s
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 / build-frontend (push) Successful in 1m33s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 15:40:01 +00:00
798fb12b4c
feat(tradein): HeroSummary empty-state при insufficient_data ( #740 ) ( #743 )
...
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Successful in 1m34s
Deploy Trade-In / deploy (push) Successful in 34s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 15:37:13 +00:00
34a13d71c3
fix(tradein): sync n_analogs to anchor count when anchor drives headline ( #695 ) ( #739 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 33s
Deploy Trade-In / test (push) Successful in 24s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:25:35 +00:00
2b3eb0b23d
fix(tradein): confidence_explanation no longer contradicts counters ( #695 ) ( #738 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 42s
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / deploy (push) Successful in 33s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:10:31 +00:00
83f3d70859
docs(tradein): clarify n_analogs vs analogs[] top-10 cap ( #698 ) ( #737 )
...
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Successful in 41s
Deploy Trade-In / deploy (push) Successful in 34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:00:48 +00:00