From 7fc84f1d844af35e4eec6850780dc385475d5b0f Mon Sep 17 00:00:00 2001 From: Stream Date: Wed, 3 Jun 2026 08:10:16 +0300 Subject: [PATCH] auto-sync: 2026-06-03 08:10:01 --- memory/2026-06-03.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 memory/2026-06-03.md diff --git a/memory/2026-06-03.md b/memory/2026-06-03.md new file mode 100644 index 0000000..1448ba0 --- /dev/null +++ b/memory/2026-06-03.md @@ -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)