auto-sync: 2026-06-07 11:50:01

This commit is contained in:
Stream
2026-06-07 11:50:01 +03:00
parent 3c9563d223
commit c864c74e57

View File

@@ -112,3 +112,40 @@ backward-compat при пустом EXPECTED_REVISION чтобы не слома
**NB на будущее:** vibecode-баланс может кончиться молча → Dev-спавн падает на старте.
Проверять модель/баланс при спавне Dev-агента. Фолбэк-модели с балансом: tokenator
(opus/sonnet), anthropic напрямую, GLM, DeepSeek.
## ORCH-58 — retag-фикс ДОЖАТ (вечер 07.06, обновление)
Путь B сработал. **Dev-агент на `tokenator/claude-opus-4-8` довёл реализацию** (предыдущий
на vibecode/claude-sonnet-4.6 упал на старте — кончились кредиты, см. выше; opus 4.8 имел
баланс → `modelApplied: true`).
**Что внёс Dev (коммит `f0c2986`, запушен в `feature/ORCH-058-self-deploy-retag-staging`):**
- `scripts/orchestrator-deploy-hook.sh` (+27): объявления `REVISION_LABEL=org.opencontainers.image.revision`,
`EXPECTED_REVISION="${EXPECTED_REVISION:-}"`; fail-closed provenance guard ВНУТРИ
`if [[ -n "$SOURCE_IMAGE" ]]` ПЕРЕД `docker tag` (инспект label → нормализ `<no value>` →
`[[ -z "$IMG_REV" || "$IMG_REV" != "$EXPECTED_REVISION" ]]` → exit 1); весь guard обёрнут
в `if [[ -n "$EXPECTED_REVISION" ]]` → пустой = пропуск (backward-compat для ORCH-36);
новый режим `--build-staging` (`GIT_SHA=$(git rev-parse HEAD)` + `docker build --build-arg GIT_SHA`).
- `Dockerfile` (+4 после WORKDIR): `ARG GIT_SHA` + `LABEL org.opencontainers.image.revision=$GIT_SHA`.
- Заминка окружения: ветка «залипла» на stale-worktree `/repos/_wt/...` (физически отсутствовал)
→ `git worktree prune` + checkout в основном репо. Тесты НЕ переписаны, чужой python не тронут.
**Проверка (моя независимая + Dev):** 4 целевых теста PASSED; полный прогон **627 passed**
(на хосте git есть → test_git_worktree/test_merge_gate тоже зелёные, не 614); **CI ветки `success`**
(был `failure`). grep: guard/режим 11 совпадений, Dockerfile 2. Реальный код.
**Нюанс возврата в конвейер:** мой ре-триггер (flip In Review→Approved/двиг stage) конвейер
понял как «Needs Input answered» → **перезапустил СВОЕГО конвейерного developer** (job 207,
run_id=265) поверх уже зелёной ветки, вместо прямой gate-перепроверки. Не страшно (ветка
зелёная, конвейерный дев увидит готовое), но УРОК: **возврат задачи в конвейер через In
Progress = relaunch developer-агента, а не просто re-check gate.** Если надо только
перепроверить gate без нового dev-прохода — искать другой механизм (не flip через In Progress).
**Статус на конец сессии:** ORCH-58 в конвейере, job 207 running (догоняет штатно).
Дальше сам: dev-gate (CI зелёный → пройдёт) → Review → Testing → merge-gate → **deploy**.
На deploy-стадии нужен **апрув Славы** (как ORCH-36) — дёрнуть его.
**УРОК про Dev-агента:** конвейерный developer склонен к недожиму (написал тесты, не
дописал реализацию — TDD без доводки). Прямой Dev-агент с УЗКИМ ТЗ (точные строки, готовые
тесты как спека) надёжнее для доводки. Но финал мержа/деплоя — всё равно через конвейер с гейтами.