task(agents-task-runner-vds-deploy): guard verified; always-on HALTED pending grant

- .admin claim-guard pushed + verified: claim-gate run over real .admin board
  skips all 4 claimable .admin tasks with reason=needs-human (zero slip-through).
- Always-on bring-up started (docker mongo+reconciler) then torn down per user
  "don't start pollers without permission". Host task-runner never started — no
  claim/spawn occurred. .env/secrets.env/guard left in place, ready.
- Worker config decided: this workstation; AGENT_RUNTIME=claude-opus;
  AGENT_CAPABILITIES=needs-internet; headless claude login suffices.
- Caught a stale-claimable task (MoreThenCms cms-maljarka-https-mode-bug-fix was
   ready though the bug was fixed today) — closed it. Lesson recorded: sweep
  boards for stale-claimable before enabling always-on.
- GATE: starting pollers awaits explicit user grant.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 15:47:05 +03:00
parent 949724729d
commit 054fceeae8
2 changed files with 19 additions and 4 deletions

View File

@@ -30,11 +30,26 @@ Gitea-board. Машина клеймит только то, что умеет (c
где TS-only касался projects-meta-mcp.
- 2026-06-08: Re-scoped (из STATUS-блока): VDS = board-host only, VDS-as-worker dropped.
Poller живёт на worker-машинах (workstation / factory Linux).
- 2026-06-08: guard `.admin/.tasks/policy.toml` (default_weight=needs-human) **запушен**
(`94972472`) + **верифицирован**: прогон dist-модулей claim-gate на реальном `.admin` board
→ все 4 claimable `.admin`-таски скипаются `reason=needs-human`, ноль проскочивших.
- 2026-06-08: always-on bring-up НАЧАТ (`.env` RECONCILER_ENABLED=true, secrets.env, docker
build + `mongo`+`reconciler` up через host-override) — затем **ОСТАНОВЛЕН и снесён** (`compose
down`) по запрету user'а "не запускай поллеров без разрешения". host task-runner так и НЕ
стартовал → ни одного claim/spawn не было. Конфиг (.env/secrets.env) остался на диске, готов.
- 2026-06-08: **находка, валидирующая gating** — DRY_RUN-кандидат
`OpeItcLoc03/MoreThenCms/cms-maljarka-https-mode-bug-fix` был ⚪ ready, хотя баг починен сегодня
(cross-board stale: фикс жил в `.admin`, таска — на MoreThenCms board, никто не закрыл). Без
паузы always-on заспавнил бы агента «чинить» уже починенное. Таска закрыта user-confirmed
(MoreThenCms `890eae27`). Урок: до always-on нужен sweep board'ов на stale-claimable.
## Open questions
- [ ] **Первая worker-машина** — эта workstation (Windows) или factory Linux? (user-решение)
- [ ] Headless-auth: `ANTHROPIC_API_KEY` или `claude login`? Cheap-модель (sonnet/haiku) для impl-polling.
- [ ] Capability-filter: что именно эта машина объявляет в requirements/runtime_allowed.
- [ ] **GATE: запуск поллеров требует явного разрешения user'а** (2026-06-08 — "не запускай
поллеров без моего разрешения"). До гранта — НЕ стартовать host task-runner и НЕ поднимать
reconciler с RECONCILER_ENABLED=true.
- [x] Первая worker-машина → **эта workstation** (user-решение 2026-06-08).
- [x] Headless-auth → `claude login` достаточно (spawn наследует env хост-процесса; API-key не нужен).
- [x] Capability-filter → `AGENT_CAPABILITIES=needs-internet` (минимально), `AGENT_RUNTIME=claude-opus`.
## Completed steps
- [x] 2026-06-08: orientation — раннер локализован (`~/projects/.common/lib/agents-task-runner`,