auto-sync: 2026-06-09 00:40:01
This commit is contained in:
@@ -405,8 +405,14 @@
|
||||
- **Схема обновления (запомнить):** CLI = npm-пакет `@anthropic-ai/claude-code` глобально на ХОСТЕ (`/usr/lib/node_modules/...`, npm prefix /usr, root-owned). В контейнер маунтится read-only как `/opt/claude-code`. node v22, npm 10.9.
|
||||
- **Шаги:** (1) бэкап `/home/slin/cli-backup-20260609-002048` (package.json 2.1.142 + credentials); (2) `echo PASS | sudo -S npm install -g @anthropic-ai/claude-code@latest` → 2.1.168; (3) **npm пересоздал каталог с НОВЫМ inode** → контейнерный bind-mount указывал на старый → `claude.exe No such file` в контейнере; (4) **`docker restart orchestrator`** перемонтировал → починилось.
|
||||
- ✅ **КРИТ-ТЕСТ пройден:** `--effort high` и `--effort xhigh` на opus-4-8 теперь дают нормальный JSON (rc=0, len~1450). OAuth (sub max) жив. Орк после рестарта здоров (queue_worker/reconciler/reaper started).
|
||||
- ⚠️ **МОЙ БАГ при requeue ORCH-81 (урок TZ):** выставила `available_at` через `time.strftime` в КОНТЕЙНЕРНОМ TZ (MSK), а `claim_next_job` сравнивает с `datetime('now')` = **UTC** → available_at оказался в будущем на 3ч → job не клеймился. Фикс: `available_at=NULL`. **ПРАВИЛО: времена в jobs.available_at писать В UTC (datetime('now')/utcnow), НЕ в локальном TZ.**
|
||||
- ⚠️ **МОЙ БАГ при requeue ORCH-81 (РУЧНОЙ, НЕ системный — Слава поправил «время на MSK везде перевели»):** я выставила `available_at` руками через `time.strftime` = localtime (MSK), смешав с UTC-миром БД. Фикс: available_at=NULL.
|
||||
- ✅ **ПРАВИЛЬНОЕ ПОНИМАНИЕ TZ (разобралась, была неправа в правиле UTC):** ДВА РАЗНЫХ СЛОЯ, не конфликтуют:
|
||||
- 📋 **Логи орка → MSK** (TZ=Europe/Moscow в .env, фикс Славы 08.06, для читаемости). Это про отображение.
|
||||
- 🗄️ **БД орка → UTC by design:** весь штатный код пишет время через SQLite `datetime('now')` (ВСЕГДА UTC, независимо от TZ контейнера), и claim сравнивает с тем же `datetime('now')`. Внутри БД всё консистентно (created_at/available_at/updated_at — всё UTC).
|
||||
- **ПРАВИЛО (исправлено):** руками В БД орка писать время ТОЛЬКО через `datetime('now')` (как штатный код), НЕ через python time.strftime/now (localtime). Это НЕ противоречит MSK-логам — разные слои.
|
||||
- ✅ ORCH-81 разблокирована: analyst run_id=407 pid=241 запущен НА CLI 2.1.168 (первый запуск после фикса). Если CLI был корнем — отработает нормально (не зависнет). ORCH-85 можно закрывать (сделано вручную).
|
||||
- ✅✅ **ПОДТВЕРЖДЕНО: CLI был корнем.** analyst run 407 НА НОВОМ CLI отработал ЧИСТО: started 21:25 → finished 21:29, **exit_code=0, 4 мин** (не завис на 1800s как 405/406 на старом). BRD/ТЗ/AC эталонные.
|
||||
- **ORCH-082 BRD APPROVED (~00:36 MSK) → architect run_id=408.** Аналитик нашёл ТОЧНЫЙ root-cause (AC-1): PR создаётся ТОЛЬКО в `launcher._ensure_pr`, ТОЛЬКО при agent==developer + свежий коммит + push. developer-run без нового коммита (R-A) / тихий сбой (R-B) / разъехавшаяся ветка (R-C) → PR никогда не создаётся. Решение: `merge_gate.ensure_open_pr` (идемпотентно, base==main фильтр) врезан в _handle_merge_verify ПЕРЕД merge_pr + kill-switch + защита ORCH-073 ЦЕЛА (AC-4). 11 AC.
|
||||
|
||||
## 📝 ORCH-86 заведена — reconciler шлёт шум «ET-002 done разблокирована» в Telegram (08.06 ~21:24 UTC, Слава: «приходит периодически, заводи исправление»)
|
||||
- **Продолжение ORCH-068** (тот livelock-фикс done, но НЕ закрыл этот путь). seq=86 id=d8133fbe-d16f-4787-85a4-3cabec4338c2, Backlog, MEDIUM.
|
||||
|
||||
Reference in New Issue
Block a user