46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
|
|
# Live E2E Dogfood Checklist — `Task-worker-live-e2e-dogfood.md` (A1 verify)
|
||
|
|
|
||
|
|
This is the **operator** checklist for `plans/Plan-automation-foundation/Epic-apps-worker-v1/Task-worker-live-e2e-dogfood.md`. Mark the Task `done` only when every box below is true on your deploy (Coolify or local Redis).
|
||
|
|
|
||
|
|
## Env (document names only, no secrets)
|
||
|
|
|
||
|
|
- `ORCHESTRATOR_DRY_RUN=0` on orchestrator service
|
||
|
|
- `WORKER_DRY_RUN=0` on worker service
|
||
|
|
- `REDIS_URL` set on both (same `echodo:orchestrator:jobs` queue)
|
||
|
|
- `DATABASE_URL` `echodo` on both + web (migrations 0015+ applied)
|
||
|
|
- Workspace has `model_providers` alias + `role_model_routes role-implementer → qwen-coder` and `harness_providers alias: minimal` (or `doc-writer` for doc)
|
||
|
|
|
||
|
|
## Steps
|
||
|
|
|
||
|
|
1. Connected repo reachable from worker: `apps/worker` can `git clone`/`git push` the `repo_links` URL (or monorepo root when `WORKER_REPO_ROOT` unset).
|
||
|
|
2. Create or reconcile convoy with implementer brief: either `Plans → Start → Convoy` on a `ready` Task or `create_convoy` + `create_brief` via MCP `reconcile_from_files`.
|
||
|
|
3. Advance to `ready` (Gate 1 `human-gate-1` approve if `convoy_review`).
|
||
|
|
4. Worker logs show `dequeuing job` → `claimed backlog=... run=...` → `tools=...` → `complete_task` → `role_complete` `convoy_events.metadata.harnessAlias` present.
|
||
|
|
5. Settings → Runs (`/[workspaceSlug]/settings/runs`) shows row with `model_alias` + `tokensTotal` for that `runId`.
|
||
|
|
6. Mission Control detail `apps/web/app/(app)/[workspaceSlug]/mission-control/page.tsx:12` shows `role_complete` event within 5s (SSE `/api/fleet/events` or poll fallback).
|
||
|
|
7. (Preferred, after `Task-worker-draft-pr`) Draft PR exists with marker `echodo-convoy: <convoyId>` consumable by Epic 8 webhook; for doc tasks `doc_review → published` without PR but `published` visible.
|
||
|
|
|
||
|
|
## Record
|
||
|
|
|
||
|
|
- Convoy slug:
|
||
|
|
- Run id (`agent_runs.id`):
|
||
|
|
- `harnessAlias` / `modelAlias`:
|
||
|
|
- PR url (if code):
|
||
|
|
|
||
|
|
## Dry-run fallback still works
|
||
|
|
|
||
|
|
- With `DATABASE_URL` missing or `REDIS_URL` unset, `pnpm --filter @tasks/worker dev` logs `DRY-RUN mode — dequeue loop idle` and exits 0; `ORCHESTRATOR_DRY_RUN=1` logs dispatch without enqueue.
|
||
|
|
|
||
|
|
## Not this task
|
||
|
|
|
||
|
|
- Forge webhooks (Epic 8) — verified separately
|
||
|
|
- New worker features — use sibling tasks
|
||
|
|
|
||
|
|
## Links
|
||
|
|
|
||
|
|
- Task: `plans/Plan-automation-foundation/Epic-apps-worker-v1/Task-worker-live-e2e-dogfood.md`
|
||
|
|
- Convoy: `.convoys/worker-closeout-docwriter.md`
|
||
|
|
- Worker closeout context: `.convoys/worker-closeout-docwriter/brief-1-draft-pr-forge.md`
|
||
|
|
|
||
|
|
Fill convoy slug + run id above, then flip Task status `ready → done` and `exportBacklogItemToMarkdown` will persist it.
|