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
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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