Fast Path Pipeline: State machine + orchestration hook
- Dominant language
- TypeScript
- Stars
- 102
- Forks
- 25
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 22
Description
Part of #557
## Problem
The existing pipeline orchestration (`useGitHubPipelineOrchestration`) is tightly coupled to the agent flow: setup PR → wait → agent trigger → wait → agent PR → wait → deploy. The fast path needs a fundamentally different flow: generate files → single PR → deploy. Trying to add fast path states to the existing 16-state machine would make it hard to reason about.
## Changes
Create a parallel orchestration path:
- **`useFastPathPipelineState.ts`** — simpler reducer with ~10 states: `Configured` → `DockerfileDetected` → `FastPathGenerating` → `FastPathPRCreating` → `FastPathPRAwaitingMerge` → `PipelineRunning` → `Deployed`. Shares terminal states with the agent path.
- **`fastPathOrchestration.ts`** — `createFastPathPR()` creates a single branch and pushes all deployment files (workflow + manifests) in one PR, following the same error handling patterns as the existing `createSetupPR` (branch cleanup on failure).
- **`useFastPathOrchestration.ts`** — main orchestration hook. Composes shared sub-hooks (auth, PR polling, workflow polling, deployment health) with the fast path state machine. Key callback: `handleDeploy()` generates templates, creates PR, dispatches workflow.
Contributor guide
Research direction
Start by reading the existing createSetupPR error-handling flow and the current pipeline orchestration hook. Then trace the shared auth, PR polling, workflow polling, and deployment-health hooks before implementing the three named fast-path files. Done means the fast path can generate deployment files, create one PR with branch cleanup on failure, dispatch the workflow, and reach the shared terminal states.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, kubernetes, typescript
- Domain
- desktop, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100