Submatter/docs/operations/live-e2e-checklist.md
Randall Stillwell 6f139d6af2 feat(owner-cockpit): forge webhooks + artifacts + copilot (Epic 8/11/12)
- Forge webhook POST /api/webhooks/forge HMAC sha256 verify, marker echodo-convoy → pr_review→merged as automation
- Completion artifacts table 0017, deterministic summary template, gallery /artifacts
- Ops copilot tRPC copilot + context tools (fleet, convoy, backlog) + panel + Draft Task → backlog.createTask
- Doc-writer SOPs: webhook rotation, copilot prompt, published flow examples
- Allow pr_review→merged as automation for webhook

Convoy: .convoys/owner-cockpit-v02

Co-authored-by: orchestrator
2026-08-25 17:49:38 -05:00

3.2 KiB

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

  • 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.