- MCP create-backlog-item for natural language Plan/Epic/Task authoring - Worker non-code: optional worktree + per-harness allowlist + doc_review→published - Harness registry: harness_providers/role_harness_routes, WorkerAdapter (minimal|crewai|langgraph|remote-ag-ui), AG-UI POST /api/ag-ui, Settings → Harnesses with Test - Plans tree: backlog.listTree + createPlan/Epic/Task + Start→Convoy, web CRUD without CLI - Fleet: /fleet rollup across workspaces + SSE /api/fleet/events Decision: docs/decisions/2026-08-25-second-brain-os-pivot.md Convoy: .convoys/second-brain-os-v01 Co-authored-by: orchestrator
2.3 KiB
2.3 KiB
| kind | slug | title | plan_slug | epic_slug | status | priority | tenant_id | owner | cursor_todo_id | updated_at | agent_prompt |
|---|---|---|---|---|---|---|---|---|---|---|---|
| task | worker-minimal-tool-loop | apps/worker — minimal tool loop and worktree-per-brief | automation-foundation | apps-worker-v1 | done | P1 | global | unassigned | null | 2026-08-12 | Epic: apps/worker v1. Read docs/worker.md and docs/adr-model-routing.md. Consume orchestrator jobs from Redis; resolve model via workspace registry. claim_task / complete_task parity with MCP. Run pnpm lint && pnpm type-check && pnpm test before done. |
Task summary
Ship the baseline apps/worker consumer: dequeue role_dispatch jobs, run WorkerSession tool loop against a git worktree, and close with model + token metadata on complete_task.
Description
Core v1 scope from Epic-apps-worker-v1. Builds on existing package skeleton (handle-job.ts, minimal-session.ts, allowlisted tools, worktree helpers).
Worker loop
BLPOPonechodo:orchestrator:jobs(same key as orchestrator).- Load brief path + role from job payload; resolve model via shared resolver.
claim_taskon matching backlog item; runread_file/write_file/grep/run_command(allowlist:pnpm lint,pnpm type-check,pnpm test,git status,git diff).complete_taskwithmodelAlias, token totals, outcome.
Git
- One worktree per brief under
WORKER_WORKTREE_BASE. - Branch naming convention documented for Epic 8 PR linking.
PR output
- Open draft PR via forge adapter from connected repo (Epic 3).
Subtasks
- Wire live dequeue loop (non-dry-run) end-to-end
- Role prompt =
.cursor/agents/role-*.md+ brief markdown path - Worktree create/teardown on success and failure
- Draft PR via forge adapter when implementer completes
docs/worker.mdmatches shipped behavior
Estimation
L
Acceptance criteria
- One implementer brief from
.convoys/completes unattended on a connected repo complete_taskincludes model alias + token totals- Failed runs tear down worktree and mark run
failed WORKER_DRY_RUN=1still exits cleanly without Redis
Links
- Epic:
./Epic-apps-worker-v1.md - Plan:
../Plan-automation-foundation.md - Design reference: Autensa convoy build phase (concepts only — no OpenClaw dependency)