- 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
1.2 KiB
1.2 KiB
| brief | convoy | role | title | status | priority | slice_dependencies | recommended_model | model_tier |
|---|---|---|---|---|---|---|---|---|
| 4 | polish-dag-tiers-cost | role-implementer | Repo preflight check before clone | ready | P2 | qwen-coder | local |
Brief 4 — Task-repo-setup-preflight (Epic 3)
Goal
POST /api/connected-repos/preflight checks git ls-remote + worktree writability before clone, UI shows result — Autensa benchmark row repo setup preflight.
Files
apps/web/server/routers/connected-repos.ts— addpreflightprocedureinput:{url}→git ls-remote url(timeout 5s) +fs.access(WORKER_WORKTREE_BASE, W_OK), returns{ok, reason}. Reuseforge adapters.apps/web/app/(app)/[workspaceSlug]/settings/repos/page.tsx— callpreflighton paste, show green/red beforecreate.
Acceptance
- Invalid URL
https://nope.invalid/repo.git→ok:false reason: ls-remote failed; validhttps://github.com/octocat/Hello-World.git→ok:true. pnpm lint && pnpm type-checkpass.
Prompt
You are role-implementer brief 4. Read plans/Plan-automation-foundation/Epic-connected-repos/Task-repo-setup-preflight.md, apps/web/server/routers/connected-repos.ts, apps/worker/src/git/worktree.ts. Keep timeout small, no creds leak.
Depends
None.