Submatter/docs/operations/live-e2e-checklist.md

53 lines
3.2 KiB
Markdown
Raw Normal View History

# 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.
8. (Epic 8 — forge webhook) Merge PR triggers `POST /api/webhooks/forge` with `X-Hub-Signature-256`/`X-Forgejo-Signature` HMAC `FORGE_WEBHOOK_SECRET` → convoy `pr_review→merged` (`automation`, `convoy_events` `status_change`) and Mission Control shows `merged` within 5s; invalid signature returns 401, missing marker returns 200 no-op.
## 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
## Docs
- Webhook rotation: [`docs/operations/webhook-secret-rotation.md`](./webhook-secret-rotation.md)
- Copilot prompts (gate + ops): [`docs/copilot-prompt.md`](../copilot-prompt.md)
- SOP published flow: [`docs/examples/sop-published-flow.md`](../examples/sop-published-flow.md)
## 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.