37 lines
1.4 KiB
Markdown
37 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.
|