Files
wiki/memory/2026-06-03.md
2026-06-03 08:10:16 +03:00

43 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-06-03
## Orchestrator — ORCH-1b resilience ГОТОВ + проверен на проде (продолжение дня 02.06)
### Итог: PR #3 = ORCH-1 очередь + ORCH-1b resilience — готов к мержу, ждёт ОК Славы
**Resilience-слой проверен мной вживую на проде (не на слово):**
-**Preflight**`/queue``preflight ok: True`, reason `2.1.142 (Claude Code)`. `claude --version`, токены НЕ тратит. CLI мёртв → job ждёт в очереди, не падает. 🚫 без prompt-ping
-**429-классификатор** (`error_classifier.py`) — живьём: `429`→transient, `overloaded`→transient, traceback→permanent
-**Backoff** — exp `min(2^n*10,600)` + `available_at`/`transient_attempts` колонки + Retry-After, PRAGMA-safe миграция (`_ensure_column`)
-**Circuit breaker** (`queue_worker.py CircuitBreaker`) — `/queue` отдаёт `resilience.breaker` (closed/open/half-open, счётчик, pause_remaining). 3 transient → open 300с, CLI не дёргаем, алерт → half-open проба → closed
- ✅ config: 6 ключей (preflight_cache_ttl=45, backoff_base=10, backoff_max=600, transient_max=5, breaker_threshold=3, breaker_pause=300)
-**110 passed** (26 новых resilience-тестов), 9 fail — те же pre-existing 401 baseline
- ✅ Контейнер пересобран из ветки `feature/ORCH-1-job-queue`, health ok, PR #3 mergeable:True
### Метрики Dev
- `orch1_queue` (база): done, 12m26s, 337k токенов
- `orch1b_resilience`: done, 9m42s, 260k токенов, 7 коммитов поверх базы (запушены)
### ⚠️ Урок про Dev (важный)
Dev **запаниковал** на старте orch1b: «параллельная сессия пишет те же файлы прямо сейчас!» → остановился из осторожности (safety>completion). **Ложная тревога** — другого исполнителя не было, он принял СВОЮ активность за чужую (mtime менялись из-за его же записей). По факту всё доделал, закоммитил и запушил сам. Я только пересобрала контейнер + проверила вживую.
- **Правило:** при «остановился из осторожности» от Dev — не верить на слово что не сделано; проверять `git log`/`git status`/remote. Часто работа УЖЕ сделана и запушена.
### Документация обновлена
- `tasks/orchestrator/PROGRESS_2026-06-02.md` — ORCH-1b помечен 🟢 готов + результаты живой проверки
- `tasks/orchestrator/STATUS.md` — актуальный статус
- `MEMORY.md` — статус orchestrator обновлён
- На сервере Dev: `docs/ARCHITECTURE.md`, `docs/ORCH-1_JOB_QUEUE.md` (раздел resilience), `reports/dev-2026-06-02-orch1b-resilience.md`
### Ждёт ОК Славы
- **Мержить PR #3** (очередь + resilience) в main? После мержа орк = автономный (webhook) + безопасный (multi-repo ORCH-6) + надёжный (очередь restart-safe + retry + 429-устойчивость)
- Висят: PR #19 (enduro-trails), PR #1 (orchestrator worktree) — мержить?
### Бэклог orchestrator
- ORCH-3 (S-2/S-3 rollback), ORCH-4 (M-3 stage-engine), ORCH-5 (M-7 idempotency/webhook dedup)
### Ключевые идентификаторы (для продолжения)
- Хост `slin@82.22.50.71`, репо `/home/slin/repos/orchestrator`, контейнер `orchestrator` (8500)
- Ветка PR #3: `feature/ORCH-1-job-queue`
- Деплой: `docker compose up -d --build && sleep 6 && curl -s :8500/health && curl -s :8500/queue`
- Тесты в контейнере: `IMG=$(docker inspect orchestrator --format '{{.Config.Image}}'); docker run --rm -v /home/slin/repos/orchestrator:/code -w /code --entrypoint python3 $IMG -m pytest tests/ -q`
- ТЗ: `tasks/orchestrator/DEV_TASK_ORCH1_QUEUE.md` (раздел ДОПОЛНЕНИЕ A-D)