Commit graph

2 commits

Author SHA1 Message Date
Madhura68
4d28e084dd fix(runner): NODE_PATH voor pg-resolution + cache-bust ARG + soft quota-probe
Drie kleine fixes voor de runner uit PBI-4 die in een lokale smoke-test
naar boven kwamen:

1. NODE_PATH=/opt/scrum4me-mcp/node_modules in Dockerfile ENV — anders
   vindt tsx de top-level `pg` import in bin/run-one-job.ts niet (resolve
   start vanaf /opt/agent/bin/, zoekt geen scrum4me-mcp/node_modules).

2. ARG MCP_CACHE_BUST in Dockerfile vóór de scrum4me-mcp clone-laag.
   BuildKit cached anders de clone op MCP_GIT_REF=main, ook als main
   intussen nieuwere commits heeft. Rebuild met
   `--build-arg MCP_CACHE_BUST=$(date +%s)` invalidate't deze laag
   deterministisch.

3. quotaProbe in run-one-job.ts soft-failt nu bij niet-zero exit, geen
   pct-veld, of geen rate-limit-headers in response. De Anthropic API
   retourneert niet altijd headers; dit zou de runner niet hard moeten
   crashen. Komt overeen met CLAUDE.md stap 0.4 ("anders: ga door").

Lokale smoke-test bevestigt nu dat een IDEA_GRILL job correct geclaimd
wordt met `--model=claude-sonnet-4-6 --permission-mode=plan --effort=high`
en de juiste 10 allowed_tools.

Apart probleem ontdekt (NIET in deze PR): IDEA_GRILL/IDEA_MAKE_PLAN/
PLAN_CHAT draaien default in --permission-mode plan. In autonomous batch-
mode kan Claude in plan-mode mogelijk geen update_job_status aanroepen
(plan-mode wacht op human approval), waardoor jobs FAILED raken na
2x lease-expiry. Verdient eigen issue/PR voor permission_mode review.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 11:19:06 +02:00
Madhura68
a6079892d7 feat(PBI-4/ST-005): runner haalt queue-loop uit Claude (één invocation per job)
Vervangt de lange seed-prompt-loop door een Node-runner die per iteratie
precies één geclaimde job afhandelt. Eén Claude-invocation = één job met
de juiste per-kind config (model/permission-mode/effort/allowed_tools)
volgens PBI-67's resolveJobConfig.

- T-18/19/20/21: bin/run-one-job.ts (nieuw, ESM tsx). Imports direct uit
  /opt/scrum4me-mcp/src/. Stappen: auth → quota-probe → claim met
  LISTEN-fallback 270s → getFullJobContext → attachWorktreeToJob (TASK)
  → payload schrijven → CLI-args bouwen + mapBudgetToEffort → spawn claude
  → token-expiry detection → rollbackClaim bij exit≠0 zonder
  update_job_status → cleanup. Logging met ISO-timestamps voor elke fase.
  setInterval(60s) lease-renewal alleen voor SPRINT_IMPLEMENTATION.
- T-22: bin/run-agent.sh — SEED_PROMPT + ALLOWED_TOOLS verwijderd; claude
  -p vervangen door `tsx /opt/agent/bin/run-one-job.ts`. TOKEN_EXPIRED
  detectie uitgebreid met exit_code==3 trigger.
- T-23: CLAUDE.md herschreven — operationele loop weg, architectuur-
  uitleg toegevoegd, hardstop-regels (geen wait_for_job, check_queue_empty,
  job_heartbeat, git push).

T-24 smoke-test gedeferd tot na merge scrum4me-mcp PR (Dockerfile clone't
via MCP_GIT_REF, default 'main'); zie test_result-log voor verificatie-
commando's.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 17:22:43 +02:00