- 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
36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
---
|
|
brief: 5
|
|
convoy: polish-dag-tiers-cost
|
|
role: role-implementer
|
|
title: PR checks recovery panel
|
|
status: ready
|
|
priority: P2
|
|
slice_dependencies: []
|
|
recommended_model: qwen-coder
|
|
model_tier: local
|
|
---
|
|
|
|
# Brief 5 — `Task-pr-checks-recovery-panel` (Epic 8)
|
|
|
|
## Goal
|
|
|
|
Mission control detail shows PR checks + Retry — `PR checks recovery` benchmark.
|
|
|
|
## Files
|
|
|
|
- `apps/web/server/lib/forge/adapters.ts` — add `getChecks({owner, repo, sha})` stub (GitHub `GET /repos/{owner}/{repo}/commits/{sha}/check-runs` with token, Forgejo `GET /repos/{owner}/{repo}/commits/{sha}/statuses`), returns `{checks: [{name, status, conclusion}], canRetry}`.
|
|
- `apps/web/server/routers/convoys.ts` — add `getChecks` query that loads `convoy.prUrl` + resolves sha via `git ls-remote`, calls adapter.
|
|
- `apps/web/components/mission-control/convoy-detail-panel.tsx` — panel `Checks` tab when `prUrl` present, shows list + `Retry` button (stub re-run if forge supports).
|
|
|
|
## Acceptance
|
|
|
|
- Detail panel `Checks` tab shows checks for PR `sha` (mock if no token → `no token` message, not error).
|
|
- `pnpm lint && pnpm type-check` pass.
|
|
|
|
## Prompt
|
|
|
|
You are `role-implementer` brief 5. Read `plans/Plan-automation-foundation/Epic-forge-webhooks/Task-pr-checks-recovery-panel.md`, `apps/web/server/lib/forge/adapters.ts`. Keep stub simple, never expose token.
|
|
|
|
## Depends
|
|
|
|
None — needs PR `prUrl` from prior convoys but works without.
|