Submatter/.convoys/polish-dag-tiers-cost/brief-1-cost-caps.md
Randall Stillwell e3af2c33e6 feat(polish): cost caps + DAG + tiers + preflight + checks panel
- Cost caps: budget_caps table, MTD spend ledger, tRPC budgets router, orchestrator pause on cap
- DAG viz: convoy-dag.tsx SVG for brief dependencies in Mission Control
- Automation tiers: manual|assist|auto per convoy, orchestrator respects manual
- Preflight: connected-repos preflight endpoint
- Checks panel: forge checks stub in detail panel
- Budget caps schema + tRPC router + Settings UI stub

Convoy: .convoys/polish-dag-tiers-cost

Co-authored-by: orchestrator
2026-08-25 20:33:10 -05:00

1.8 KiB

brief convoy role title status priority slice_dependencies recommended_model model_tier
1 polish-dag-tiers-cost role-implementer Cost budget UI + caps — month-to-date spend and dispatch pause ready P1
qwen-coder local

Brief 1 — Task-cost-budget-ui-and-caps (Epic 1 follow-on)

Goal

Month-to-date spend per alias/tier visible, caps pause dispatch when exceeded. Autensa benchmark row cost tracking & budget caps plans/Plan-automation-foundation/Plan-automation-foundation.md:236.

Files

  • packages/database/src/schema/budget_caps.ts NEW — id uuid, workspace_id fk, cap_usd numeric(12,2), period varchar monthly, enabled bool, created_at. + spend_ledger view or convoy_events sum query.
  • apps/web/server/routers/budgets.ts NEW — getSpend(workspaceId) sums convoy_events.estimated_cost_usd month-to-date grouped by model_alias; getCap/upsertCap/deleteCap admin only; shouldPauseDispatch helper for orchestrator.
  • apps/orchestrator/src/tick.ts — call shouldPauseDispatch before enqueueJob, return pause action when cap exceeded.
  • apps/web/app/(app)/[workspaceSlug]/settings/ai/budgets/page.tsx NEW — table cap + spend chart (simple bar), Test.

Acceptance

  • /settings/ai/budgets shows MTD $42/$100 (example), upsertCap cap_usd:100 → orchestrator tick returns pause reason: budget cap when sum > cap.
  • pnpm lint && pnpm type-check pass.

Prompt

You are role-implementer brief 1. Read plans/Plan-automation-foundation/Epic-model-provider-registry/Task-cost-budget-ui-and-caps.md, packages/database/src/schema/convoy_events.ts, apps/orchestrator/src/tick.ts, docs/adr-model-routing.md. Keep ledger query simple (sum estimated_cost_usd where occurred_at >= month_start).

Depends

None.