auto-sync: 2026-06-03 08:10:01
This commit is contained in:
42
memory/2026-06-03.md
Normal file
42
memory/2026-06-03.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user