Map reliability, operator UX, and spend-control follow-ons onto epics 1–9 so worker, webhooks, and fleet work have bead-scale task briefs. Co-authored-by: Cursor <cursoragent@cursor.com>
2.4 KiB
| kind | slug | title | plan_slug | status | priority | tenant_id | cursor_epic_id | updated_at |
|---|---|---|---|---|---|---|---|---|
| epic | apps-orchestrator | apps/orchestrator — role dispatch and gate pauses | automation-foundation | done | P1 | global | null | 2026-08-03 |
Epic objective
Long-running apps/orchestrator service: Redis job queue, convoy state machine driver, role dispatcher. Inspired by Symphony concepts (stall detection, token logging) — not Symphony codebase.
On Go: enqueue planning roles serially (ia → ux → architect), stop at convoy_review; after Gate 1, dispatch implementer jobs (parallel when slice_dependencies allow); fan-out audit jobs; stop at pr_review and post-merge gates.
Parallel implementer fan-out: When multiple implementer jobs target the same Mac inference host, orchestrator should pass the same qwen-coder-mlx alias to each job; operator must run a batching-capable MLX server (mlx-openai-server) — see docs/adr-model-routing.md § Local MLX. Cap concurrent implementers per host in orchestrator config if OOM occurs (agent-pipeline multitask playbook).
Each job calls resolveModel(workspace, roleId, convoy, brief) and passes ResolvedModel to worker.
In scope / out of scope
In scope
apps/orchestratorpackage in monorepo.- Redis queue (existing infra).
- Deploy on Coolify beside
web. - Stall detection →
agent_runs/ convoyblocked.
Out of scope
- Worker implementation (Epic 7).
- Symphony / Linear integration.
Dependencies
- Epic 1 (
resolveModel). - Epic 3 (repo link for clone path).
- Epic 4 (transitions).
- Epic 5 (gates — for dogfood; orchestrator can run in dry-run before UI).
Blocks
- Epic 7 (worker consumes jobs).
Acceptance criteria
- Dry-run: orchestrator logs next role for a convoy without worker.
- Live: one implementer brief dispatched and paused correctly at gate.
Tasks
Follow-on tasks (Autensa benchmark)
| Task | Link |
|---|---|
| Agent health auto-nudge & zombie recovery | Task-orchestrator-auto-nudge |
Note
Supersedes Epic-optional-orchestrator deferred stub with a concrete Echodo-native design.