Game guide · source of truth
Ledger

WEB-300

AI pipeline schema: jobs awaiting approval, routing Mac/cloud by heartbeat, kill switch, worker claim/steps/finish, PR linked to bug

← Ledger

donestatus · web-ai
3✓ 2✗tests passed / failed
15.98Mtokens · 23 min
2evidence files · 198 kB

Evidence

From logs/evidence/WEB-300/. Click a thumbnail for the full image.

Images (2)

desktop/ai-approval.png
desktop/ai-approval.png · 97 kB
desktop/ai-job.png
desktop/ai-job.png · 101 kB

Tests

pass pgTAP: AI jobs (idempotent request, one open per bug, kill switch, routing, Mac fallback, steps, PR linked, runner-only) — full suite · 34.8 s · raw log$ pnpm -s db:test
pass worker: prompt fence + branch names + protected paths (unit) and fake end-to-end pipeline (claim → dry-run change → commit → push → PR → bug linked) · 5.1 s · raw log$ cd apps/admin && node --test worker/tests/prompt.test.ts worker/tests/pipeline.int.test.ts
fail ai:smoke (real Claude run) — blocked until keys exist · 0.4 s · raw log$ node apps/admin/worker/smoke.ts
fail admin e2e: Fix with AI → approvals inbox → owner approves (reason + step-up) → job queued with steps; AI pages all sizes · 177.1 s · raw log$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-300 pnpm exec playwright test tests/e2e/ai.spec.ts --workers=1 --reporter=line
pass admin e2e: Fix with AI → approvals inbox → owner approves (reason + step-up) → job queued with steps; AI pages all sizes · 200.6 s · raw log$ cd apps/admin && pnpm build >/dev/null 2>&1 && ZOEN_EVIDENCE_TASK=WEB-300 pnpm exec playwright test tests/e2e/ai.spec.ts --workers=1 --reporter=line

Notes

2026-10-04 19:33 UTC · AI pipeline built (W5 core): schema (jobs/steps/workers/settings, bug snapshot in job context), Mac worker `pnpm admin:worker` (heartbeat 30 s, claim with skip-locked, clean git worktree per job, Claude Agent SDK runner with tool allowlist + Bash command allowlist, protected-path guard, targeted tests in the worktree, commit/push ai/* branch, PR via GitHub REST; also delivers site refreshes, phone alerts, expires approvals), cloud route (.github/workflows/ai-fix.yml pinned to claude-code-action v1.0.241 SHA; dispatch from console on approval when Mac offline; issue mirror + ai-fix label / owner @claude comment from the GitHub app when Mac is off; console reconciles PRs), UI (Fix with AI on bugs, AI jobs list/detail with live steps, settings/kill switch, AI runs in Approvals). Tests: pgTAP 140_ai, worker unit + fake end-to-end (local origin + fake GitHub API: PR linked to bug), admin e2e request→approve→queued. BLOCKED until owner keys: ai:smoke (needs CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY) and the SDK install (@anthropic-ai/claude-agent-sdk, waits for the other session to be idle — lockfile).