Commit graph

798 commits

Author SHA1 Message Date
7f46d6774e fix(tradein): guard деления на median=0 в ListingsCard/DealsCard
При пустой оценке (median_price_rub<=0) CV и «ниже рынка» делились на 0 →
клиент видел «Infinity%»/«NaN%». Обёрнуто в guard m>0 ? ... : «—».
Доп: знак сравнения сделок к рынку — «ниже»/«выше» по знаку diff.

Refs #741
2026-05-30 18:36:32 +03:00
34a13d71c3 fix(tradein): sync n_analogs to anchor count when anchor drives headline (#695) (#739)
All checks were successful
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)
All checks were successful
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)
All checks were successful
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
14541d4951 Merge pull request 'chore(agents): auto-resolver human-proxy persona для needs-human' (#735) from feat/auto-resolver-persona into main
Reviewed-on: #735
2026-05-30 14:42:17 +00:00
lekss361
bc3ecf80cc chore(agents): add auto-resolver human-proxy persona for needs-human queue
Новое окно auto-resolver — снимает блокеры issues с label needs-human,
используя capabilities, которых нет у headless-ботов (dev-IP не зафайрволлен,
сохранённые куки, Playwright, прямой postgres-tradein/gendesign MCP, SSH на прод).

- .claude/agents/auto-resolver.md — persona (full-auto на машине пользователя;
  классификация блокера A/B/C/D; кат B genuine-decision → AskUserQuestion).
- .claude/commands/work-as-resolver.md — skill /work-as-resolver → /loop 15m.
- auto-analyst.md + _autonomous_pickup.md FSM — лейбл-контракт needs-human:
  вешать может analyst/worker/qa, СНИМАТЬ только auto-resolver (anti-race #726/#727).
2026-05-30 17:40:36 +03:00
ef7b5f8c54 feat(tradein): insufficient_data flag on AggregatedEstimate (#697) (#734)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / test (push) Successful in 25s
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 14:40:04 +00:00
066fab11d3 fix(tradein): sanitize ДКП deal outliers (floor / ppm²) (#699) (#733)
All checks were successful
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 40s
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 14:31:44 +00:00
e94929159b fix(scrapers): avito listing_date from sortTimeStamp JSON (#726) (#729)
All checks were successful
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 39s
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 14:13:38 +00:00
1f3008d59e feat(tradein): street_only disclaimer in StreetDealsCard (#722) (#725)
All checks were successful
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) Successful in 1m34s
Deploy Trade-In / deploy (push) Successful in 33s
Co-authored-by: bot-frontend <bot-frontend@gendsgn.local>
Co-committed-by: bot-frontend <bot-frontend@gendsgn.local>
2026-05-30 13:44:30 +00:00
575d9abbf7 feat(tradein): add data_quality flag to /sales-vs-listings (#721) (#723)
All checks were successful
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 39s
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 13:21:08 +00:00
a79cf7d5e0 fix(tradein): coarse-geo downgrade no longer shielded by Tier C anchor (#693) (#720)
All checks were successful
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / deploy (push) Successful in 33s
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
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 12:34:11 +00:00
406ea8365a feat(health): expose app version in GET /health (#717) (#719)
All checks were successful
Deploy / changes (push) Successful in 5s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 1m25s
Deploy / build-worker (push) Successful in 2m46s
Deploy / deploy (push) Successful in 1m5s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 12:15:06 +00:00
0e2bba78b7 fix(tradein): coarse-geo downgrade works without DaData on prod (#693) (#718)
All checks were successful
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 12:08:56 +00:00
f148007792 docs(main): add module docstring to backend/app/main.py (#716)
All checks were successful
Deploy / changes (push) Successful in 4s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 1m21s
Deploy / build-worker (push) Successful in 2m32s
Deploy / deploy (push) Successful in 1m5s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 11:43:20 +00:00
bc9d277309 Merge pull request 'docs(bots): label IDs table (goern add_issue_labels требует id)' (#715) from docs/label-ids into main
Reviewed-on: #715
2026-05-30 11:36:52 +00:00
lekss361
049966ed6d docs(bots): label IDs table + goern add_issue_labels требует id не имя 2026-05-30 14:36:30 +03:00
db6137edf8 Merge pull request 'feat(qa): tester заводит bug-issue на новые баги' (#713) from fix/qa-creates-bug-tasks into main
Reviewed-on: #713
2026-05-30 11:23:57 +00:00
lekss361
fe27ad9dce feat(qa): tester заводит bug-issue на НОВЫЕ баги (не тестируемый issue)
Раньше qa по правилу НЕ создавал issues (только reopen тестируемого + needs-fix,
либо prod_down spike). Побочный/новый баг, замеченный при smoke, терялся.

Теперь (симметрично reviewer minor→follow-up): НОВЫЙ баг (не тестируемый issue) →
mcp__forgejo__create_issue: scope/X + status/ready + priority/pN + bug, body = work-prompt
(Задача/repro/Files/DoD) + screenshot/console → попадёт воркеру в очередь. Проверка
дубликатов. По ТЕСТИРУЕМОМУ issue — по-прежнему reopen+needs-fix (не дубль).

auto-qa-tester.md (verdict + hard rule) + work-as-qa.md (+ починил stale "(10m)"→"(5m)").
2026-05-30 14:21:11 +03:00
3e3112f2c3 Merge pull request 'fix(bots): qa-close bug (Closes→Refs) + minor-verdict → follow-up task' (#712) from fix/worker-pr-refs-not-closes into main
Reviewed-on: #712
2026-05-30 11:15:34 +00:00
lekss361
627189a3e3 fix(bots): qa-close bug (Closes→Refs) + minor-verdict creates follow-up task
Найдено живым тестом (reviewer смержил #710 → linked issue #696 закрылся ДО qa).

1. Closes→Refs: worker PR-body писал `Closes #N` → merge авто-закрывал issue →
   qa-pickup (status/qa & state=open) закрытый не видел → smoke не запускался.
   FSM: issue закрывает QA на status/done, не merge. Фикс: worker пишет `Refs #N`.
   - auto-backend.md PR-template + git-pr.md note.

2. MINOR → follow-up task (по запросу): reviewer на 🟡 MINOR теперь, кроме merge,
   заводит ОДИН consolidated follow-up issue для actionable-minor'ов
   (scope/X status/ready priority/p3 tech-debt; body = work-prompt + "Follow-up из PR #N").
   Косметику (whitespace/naming) не заводит — не флудить очередь.
   - auto-code-reviewer.md ACT+severity + work-as-reviewer.md.
   - Заведены labels priority/p3 (id63) + tech-debt.
2026-05-30 14:11:05 +03:00
466774dbd8 fix(tradein): rehydrate POST-only fields on GET /estimate/{id} (#696) (#710)
All checks were successful
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 34s
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
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 11:05:52 +00:00
6e8c19ebe2 Merge pull request 'fix(claude): quote agent descriptions — YAML frontmatter parse break' (#711) from fix/agent-frontmatter-yaml into main
Reviewed-on: #711
2026-05-30 10:59:05 +00:00
lekss361
9b268e6950 fix(claude): quote agent descriptions — battle YAML frontmatter parse break
Баг: у code-reviewer/qa-tester/tech-analyst `description:` без кавычек содержал
`: ` (двоеточие-пробел, напр. "verdict: ", "Проверяет: HTTP", "план: что") →
YAML парсил это как вложенный mapping → frontmatter невалиден → агент молча НЕ
регистрировался как subagent. Reviewer-окно падало: "Agent type 'code-reviewer'
not found"; qa-окно так же не нашло бы qa-tester.

Фикс: обернул description в кавычки (code-reviewer/qa-tester → "...",
tech-analyst → '...' из-за внутренних "). Проверено pyyaml — теперь парсится.

Плюс: добавил postgres-gendesign в .claude/mcp/qa.json — qa-tester ссылается на
его tools, без сервера в strict-конфиге qa-окна агент не зарегистрируется.

(backend-engineer/deep-code-reviewer не были задеты — у них в description нет ": ".)
2026-05-30 13:56:55 +03:00
cffc91a1d8 test(tradein): fix /houses test broken by IDOR guard — unblock deploy (#690) (#709)
All checks were successful
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 33s
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 09:34:31 +00:00
961a3caf2b fix(tradein): surface same-building comps as analogs when anchor fires (#694) (#708)
Some checks failed
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Failing after 24s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been skipped
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 09:21:20 +00:00
9d94beae4f fix(tradein): flag coarse-geo estimates as low-confidence (#693) (#707)
Some checks failed
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Failing after 23s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been skipped
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 08:58:23 +00:00
737599e690 fix(tradein): scope GET /estimate/{id} + /pdf to owner, close IDOR (#690) (#702)
Some checks failed
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Failing after 24s
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / deploy (push) Has been skipped
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 08:56:51 +00:00
96de6d8e58 fix(tradein-ui): eliminate mobile horizontal overflow on estimate result (#692) (#705)
All checks were successful
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 / deploy (push) Successful in 34s
Deploy Trade-In / build-frontend (push) Successful in 1m34s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 08:46:29 +00:00
690d423c5a Merge pull request 'chore(bots): тугие /loop каденции под подписку (убрать cost-backoff)' (#706) from chore/loop-cadence-subscription into main
Reviewed-on: #706
2026-05-30 08:43:20 +00:00
lekss361
261bbc40ec chore(bots): тугие /loop каденции под подписку (убрать cost-backoff)
Проблема: idle-backoff в /loop был ради экономии API-стоимости («Opus expensive →
5m + рост до 30-60m»). На подписке поллинг не тарифицируется → backoff лишь тормозил
хэндофы (ready→wip→review→qa) до 30-60m, пайплайн становился медленным на ровном месте.

Фикс — тугие фиксированные интервалы, без прогрессивного backoff:
- reviewer: /loop 5m+backoff→30m  →  /loop 2m (bottleneck, latency-критичен)
- qa:       /loop 10m, idle→20m   →  /loop 5m
- backend/frontend: idle sleep 20m →  ≤5m (dynamic, без backoff)
- analyst:  /loop 30m, idle→60m   →  /loop 15m (сканер inbox, не latency-критичен)
- _autonomous_pickup self-throttle: убран min(current*1.5, 60m); тугие интервалы роли,
  оставлена 24h-эскалация.

Реальный потолок теперь — usage-лимиты подписки (Max 5h/weekly), НЕ деньги-за-тик:
упёрся → удлинить латентные окна или pause-bots. Задокументировано.

Эффект: PR подхватывается за ~1-2 мин вместо до-30m; цепочка issue→done схлопывается
с часов ожидания до минут.
2026-05-30 11:42:28 +03:00
f04728297b fix(tradein): run same-building anchor without radius analogs (#691) (#704)
All checks were successful
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 22s
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 08:34:24 +00:00
10626c21ae fix(tradein): dedupe last_scraped_at — fix frontend build/deploy (#703)
All checks were successful
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) Successful in 1m33s
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 08:32:04 +00:00
88a3ce1875 Merge pull request 'chore(analyst): issue = исполняемый work-prompt без разночтений' (#701) from chore/analyst-prompt-quality into main
Reviewed-on: #701
2026-05-30 08:17:17 +00:00
6609d7a4cb feat(tradein): trust + actions (how-calculated, freshness, PDF, lead CTA) in result header (#689)
Some checks failed
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) Failing after 54s
Deploy Trade-In / deploy (push) Has been skipped
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 08:16:12 +00:00
lekss361
4a1b57f758 chore(analyst): issue = исполняемый work-prompt без разночтений
Аналитик теперь пишет issue как готовый рабочий промт с единственным толкованием:
- Шаблон body: Задача (императив) + Контекст + Files (точные пути) + Сигнатуры +
  Definition of Done (БИНАРНО: команда→результат) + Не делать (out of scope) + Risk + Depends.
- Преамбула issue: «Worker: исполняемый спек, выполняй буквально, неясность → коммент, не угадывай»
  → инструкция едет вместе со спеком (worker не реинтерпретирует).
- NO-AMBIGUITY GATE перед CREATE: перечитать глазами worker'а с нулевым контекстом — точные
  идентификаторы (без плейсхолдеров <area>/«соответствующий»), бинарный DoD, единственное
  толкование; иначе доуточнить или +needs-human, НЕ постить ready.
- Hard rules + work-as-analyst синхронизированы.

Воркеры (auto-backend/frontend) — CONTEXT LOAD + fixup loop проверены, не тронуты (качество сохранено).
2026-05-30 11:15:49 +03:00
0f5bcb76a1 Merge pull request 'chore(bots): per-window MCP isolation (--strict-mcp-config per role)' (#700) from chore/per-window-mcp into main
Reviewed-on: #700
2026-05-30 08:09:58 +00:00
lekss361
2df8f78747 chore(bots): per-window MCP isolation via --strict-mcp-config
Каждое bot-окно грузит ТОЛЬКО нужные роли серверы (не все 7+ в каждом окне).
Выигрыш: не спавнить heavy-серверы зря (docker postgres в frontend/qa), right-size
eager-набор, чистый tool-surface на роль. (Контекст tool-search и так бережёт —
deferred ≈ бесплатно; это про процессы + eager + ясность.)

- .claude/mcp/{analyst,backend,frontend,reviewer,qa}.json — self-contained per-role
  конфиги. Секреты НЕ инлайнятся: ${OBSIDIAN_API_KEY}/${GENDESIGN_DB_URI}/
  ${GLITCHTIP_TOKEN} через env-подстановку (.mcp.json env expansion, подтв. в доках).
  Матрица: forgejo+obsidian+context7 eager везде; pg-gendesign eager у backend/reviewer,
  deferred у analyst; UI (playwright/a11y/lighthouse/shadcn) только frontend/qa; fetch+
  glitchtip у backend; glitchtip у qa.
- start-bot.ps1: извлекает MCP-секреты из ~/.claude.json (единый источник) → export →
  запускает `claude --strict-mcp-config --mcp-config .claude/mcp/<role>.json`.

Main/интерактивное окно (без start-bot.ps1) по-прежнему видит полный .mcp.json+user.
2026-05-30 11:05:24 +03:00
f2adc7417a Merge pull request 'chore(bots): per-role launcher scripts + bot pipeline on forgejo MCP' (#687) from chore/bots-forgejo-mcp into main
Reviewed-on: #687
2026-05-30 07:59:15 +00:00
0e6eea9bef feat(tradein): web-native analytics cards on estimate result (map, distribution, trend, exposure) (#688)
All checks were successful
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 1m35s
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 07:50:40 +00:00
lekss361
edc5823622 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP
(a) Launcher scripts — больше не экспортировать токен руками:
- scripts/start-bot.ps1 <role> — выставляет per-bot identity + токены (FORGEJO_ACCESS_TOKEN
  для forgejo MCP + FORGEJO_TOKEN для curl-fallback), git-identity, forgejo-bot remote,
  verify, затем запускает claude.
- scripts/start-{analyst,backend,frontend,reviewer,qa}.ps1 — тонкие врапперы.

(b) Bots on forgejo MCP (goern) вместо curl:
- _autonomous_pickup.md: новая секция «Forgejo операции — mcp__forgejo__* (PRIMARY)» с полным
  curl→MCP mapping (list_repo_issues / create_pull_request / merge_pull_request /
  get_pull_request_diff / create_pull_review / add+remove_issue_labels / update_issue /
  issue_state_change / create_issue_comment). curl_forgejo помечен FALLBACK.
- 5 auto-*.md + 5 work-as-*.md: директива «Forgejo API → mcp__forgejo__* tools (mapping в
  _autonomous_pickup); curl только fallback» + указатель на start-bot.ps1.

Gotcha задокументирован: include_org_labels:false на user-репо (lekss361 не org).
Требует: рестарт Claude Code (forgejo MCP eager из .mcp.json) + FORGEJO_ACCESS_TOKEN per-window
(делает start-bot.ps1).
2026-05-30 10:38:10 +03:00
22287b8b64 feat(tradein): «Что-если» interactive recompute on estimate result (#686)
All checks were successful
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-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 07:35:16 +00:00
705eebfca3 feat(tradein): enrich /estimate response for web map, distribution, exposure & trend (#685)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 23s
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 32s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 07:32:40 +00:00
ef7d2d897d feat(tradein): interactive benefit calculator in OfferCard (Брусника секция 4) (#684)
All checks were successful
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 1m32s
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 07:19:51 +00:00
f43d593cf6 feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) (#683)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / test (push) Successful in 23s
Deploy Trade-In / build-backend (push) Successful in 43s
Deploy Trade-In / build-frontend (push) Successful in 1m37s
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 06:45:14 +00:00
6fac54642a fix(tradein): distinct asking median vs expected-sold price (no double-discount) (#682)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 22s
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Successful in 32s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 06:35:46 +00:00
3361e434d4 feat(tradein): refine same-building anchor for within-building heterogeneity (#681)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 22s
Deploy Trade-In / build-backend (push) Successful in 41s
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 05:49:46 +00:00
351ec88104 fix(tradein): feed raw payload.address to same-building anchor (geocode-independent) (#680)
All checks were successful
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 22s
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / deploy (push) Successful in 32s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-29 23:17:09 +00:00
b5c26d2723 fix(tradein): harden same-building anchor address normalizer for prod formats (#677) (#679)
All checks were successful
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 22s
Deploy Trade-In / build-backend (push) Successful in 40s
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-29 22:21:29 +00:00
c30b3c714e fix(ci): drop --frozen in tradein test job (uv.lock is gitignored) (#678)
All checks were successful
Deploy Trade-In / build-backend (push) Successful in 40s
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / test (push) Successful in 23s
Deploy Trade-In / build-frontend (push) Successful in 24s
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-29 21:23:56 +00:00