auto-sync: 2026-06-01 20:20:01
This commit is contained in:
@@ -189,3 +189,95 @@
|
||||
- Серверный pipeline gps_collect.py по cron, отдельная БД gps_tracks.sqlite
|
||||
- Дедупликация: bbox-bucket + length + date
|
||||
- Визуализация: vector tiles на z8-11, GeoJSON на z12+
|
||||
# 2026-06-01
|
||||
|
||||
## Orchestrator: Полная интеграция с Plane
|
||||
|
||||
### Что сделано
|
||||
- Написано ТЗ для Dev-агента: `tasks/multi-agent/DEV_TASK_PLANE_FULL_INTEGRATION.md` (12 задач)
|
||||
- Dev-агент реализовал все 12 пунктов, acceptance checks пройдены
|
||||
- Обновлена документация: `ORCHESTRATOR_DOCS.md` (полностью переписана)
|
||||
- Обновлена таблица расхождений: `PROPOSAL_VS_REALITY.md` (18/33 = 55% done)
|
||||
|
||||
### Реализованные фичи (Plane integration)
|
||||
- 8 статусов Issue: Backlog, Todo, In Progress, Needs Input, In Review, Blocked, Done, Cancelled
|
||||
- Analyst questions flow: 01-questions.md → Needs Input → ответ Славы → relaunch (макс 3 раунда)
|
||||
- :rejected: с причиной + relaunch analyst / rollback
|
||||
- :approved: → In Progress → advance
|
||||
- Tester FAIL → developer retry (до 3 раз → Blocked)
|
||||
- Deploy FAIL → Blocked + rollback + notification
|
||||
- Architect conflict (10-conflict.md) → rollback to analysis
|
||||
- QG-0 при создании Issue (title 5-80, description ≥2 предложений)
|
||||
- Ссылки в комментариях Plane (branch URL + PR link)
|
||||
|
||||
### Модели агентов — обновлено
|
||||
- **Architect и Reviewer переключены на Opus** (claude-opus-4-7) — подтверждено Славой
|
||||
- **Analyst возвращён на Sonnet** (01.06 — экономия лимитов Max 5x)
|
||||
- Developer, Tester, Deployer — Sonnet (claude-sonnet-4-6)
|
||||
- Добавлено поле `model` в AGENT_CONFIGS + `--model` в команду запуска launcher.py
|
||||
- Контейнер пересобран и задеплоен
|
||||
|
||||
### Оставшиеся TODO (🟡)
|
||||
- E2E тесты (Playwright)
|
||||
- Event dedup (idempotency)
|
||||
- Budget tracking
|
||||
- Test/prod environments split
|
||||
|
||||
### Баги
|
||||
|
||||
#### 🐛 Plane comment webhook — ПОЧИНЕН (01.06 ~16:00 UTC)
|
||||
- **Симптом:** Слава написал `:approved:` в Plane, orchestrator не получил webhook
|
||||
- **Причина:** Plane шлёт comment event с полем `"issue": "<uuid>"`, а код искал `"work_item_id"` и `"issue_id"`
|
||||
- **Фикс:** fallback chain `work_item_id → issue_id → issue` + читать `comment_stripped` первым
|
||||
- **Файл:** `src/webhooks/plane.py` — функция `handle_comment`
|
||||
- **Коммит:** `e27e489` fix(plane-webhook): read issue/comment_stripped fields from Plane comment payload
|
||||
- **Статус:** ✅ починен, протестирован
|
||||
|
||||
#### 🐛 Claude CLI зависает при rate limit (Max 5x)
|
||||
- **Симптом:** run 35, 36 зависли — процесс не стартовал, лог пустой (только git output)
|
||||
- **Причина:** rate limit после run 34 (Opus, 9 мин работы)
|
||||
- **Фикс:** добавлен startup timeout 120 сек + kill + Telegram уведомление (задеплоен 01.06)
|
||||
- **Статус:** ✅ починен
|
||||
|
||||
#### 🐛 Analyst не использовал Write tool (run 34)
|
||||
- **Симптом:** analyst вывел артефакты в stdout, файлы на диске не создал
|
||||
- **Причина:** в prompt не было явной инструкции использовать Write tool
|
||||
- **Фикс:** добавлен раздел "КРИТИЧЕСКИ ВАЖНО: Используй Write tool!" в analyst.md (merged в main)
|
||||
- **Статус:** ✅ починен
|
||||
|
||||
#### 🐛 Popen launcher зависает (не rate limit)
|
||||
- **Симптом:** architect run_id=38 завис — лог пустой, CLI при ручном запуске работает
|
||||
- **Причина:** вероятно shell expansion `$(cat .task.md)` ломается в контексте Popen
|
||||
- **Workaround:** ручной запуск через `docker exec -e HOME=/home/slin`
|
||||
- **Статус:** нужно разобраться с launcher.py (как именно формируется cmd)
|
||||
|
||||
### Изменения модели (01.06.2026)
|
||||
- Analyst: opus → sonnet (вернули обратно, экономия лимитов Max 5x)
|
||||
- Architect: sonnet → opus (оставили)
|
||||
- Reviewer: sonnet → opus (оставили)
|
||||
|
||||
### ET-008: GPS-треки с публичных платформ
|
||||
- Issue создан в Plane (id: 020811f2-eaf0-434e-8257-f5e0d141274b)
|
||||
- Sequence: ET-008 (в Plane отображается как #4)
|
||||
- Branch: feature/ET-008-gps
|
||||
- Analyst завершён v2 (артефакты запушены, 6 файлов в docs/work-items/ET-008/)
|
||||
- Слава approve'нул → architect запущен (run_id=38, Opus)
|
||||
- **Pipeline прогресс (01.06 финал ~17:00 UTC):**
|
||||
- ✅ analysis (run_id=37, sonnet)
|
||||
- ✅ architecture (run_id=38/39, opus) — 7 ADR, infra/data requirements, tech risks
|
||||
- ✅ development (run_id=40, sonnet) — backend + frontend + 48 тестов
|
||||
- ✅ review (run_id=41, opus) — нашёл 1xP0, 4xP1 → developer починил
|
||||
- ✅ testing (run_id=42, sonnet) — PASS
|
||||
- ✅ deploy (deployer) — merge PR → tag → deploy → smoke ✓
|
||||
- ✅ done — Issue закрыт в Plane
|
||||
- Источники MVP: OSM GPS Traces + EnduroRussia + ttrails (Wikiloc/Strava/Komoot — out of scope)
|
||||
- Серверный pipeline gps_collect.py по cron, отдельная БД gps_tracks.sqlite
|
||||
- Дедупликация: bbox-bucket + length + date
|
||||
- Визуализация: vector tiles на z8-11, GeoJSON на z12+
|
||||
- **Pending:** `docker compose up -d gps-collector` на mva154 (ждёт Славу)
|
||||
|
||||
### Итог дня
|
||||
- 3 бага починены (webhook, rate limit timeout, analyst Write tool)
|
||||
- ET-008 прошёл полный pipeline analyst→architect→developer→reviewer→tester→deployer→done
|
||||
- Orchestrator документация актуализирована
|
||||
- MEMORY.md обновлена
|
||||
|
||||
Reference in New Issue
Block a user