feat: implement proper orchestrator workflow with reconciliation loop
ci / test (push) Failing after 1m2s
ci / test (push) Failing after 1m2s
Rewrite OrchestratorWorkflow as true reconciliation loop: - PlanningActivity decides what tasks to dispatch - Fan-out TaskUnit workflows for parallel execution - Each TaskUnit runs Implementer → Test → Judge → Commit - Judge reviews code quality, retries on failure with lessons - Fan-in waits for all TaskUnits - Board update and squash merge on success - continue-as-new for long-running workflows - Proper error handling and signal support Key changes: - statemachine/orchestrator.go: Reconciliation loop (Plan → Dispatch → Review → Repeat) - statemachine/taskunit.go: Task execution with retry loop & judge review - statemachine/types.go: Updated TaskUnitInput/Output for new workflow - cmd/worker/main.go: Register RunIntegrationTestActivity - action/integration.go: Renamed from integration_test.go (fix Go build issue) Models: - Planner: reasoning (OpenAI-compatible from local LLM API) - Judge: reasoning (reviews diff + tests, gates success) - Implementer: ornith:35b (executes tasks) Verification: go build ./cmd/worker ./cmd/starter ✓
This commit is contained in:
+11
-8
@@ -69,20 +69,23 @@ type OrchestratorOutput struct {
|
||||
|
||||
// TaskUnitInput is the input to the TaskUnit workflow.
|
||||
type TaskUnitInput struct {
|
||||
TaskID string
|
||||
TargetRepoPath string
|
||||
JudgeSpec PromptSpec
|
||||
ImplementerSpec PromptSpec
|
||||
BaseTimeout time.Duration
|
||||
MaxJudgeRetries int
|
||||
TaskID string
|
||||
RemoteURL string
|
||||
TargetRepoPath string
|
||||
Milestone string
|
||||
Config OrchestratorConfig
|
||||
DryRun bool
|
||||
}
|
||||
|
||||
// TaskUnitOutput is the output of the TaskUnit workflow.
|
||||
type TaskUnitOutput struct {
|
||||
TaskID string
|
||||
Verdict string // "pass" or "fail"
|
||||
Critique string
|
||||
Status string // "success" or "failed"
|
||||
Verdict string // "pass" or "fail" from judge
|
||||
Critique string // feedback from judge
|
||||
Branch string
|
||||
Reason string // error reason if failed
|
||||
Changes string // summary of changes
|
||||
}
|
||||
|
||||
// SkillRef references a skill source.
|
||||
|
||||
Reference in New Issue
Block a user