feat(workflows): wire TaskUnit/Orchestrator activities, add k8s deploy manifests
ci / test (push) Failing after 5s

Implements real activity-calling logic in OrchestratorWorkflow and
TaskUnitWorkflow (previously stubs), adds GitDiffActivity, and expands
PlanningActivity's I/O to carry repo path and prior task results.

Adds k8s/ deployment manifests (worker Deployment, orchestrator Job,
Kustomize base) for the poimen-workflows Temporal worker, using a
dedicated Kubernetes namespace `poimen` and Temporal namespace
`poimen-harness` rather than sharing the Temporal server's own
`temporal`/`production` namespaces.
This commit is contained in:
Test
2026-08-21 21:57:01 -07:00
parent e0947c5ed3
commit 002fe98e17
17 changed files with 702 additions and 22 deletions
+10 -6
View File
@@ -11,9 +11,11 @@ import (
// PlanningInput is input to PlanningActivity.
type PlanningInput struct {
Config statemachine.OrchestratorConfig
BoardState string // JSON or markdown of task board
Milestone string
Config statemachine.OrchestratorConfig
BoardState string // JSON or markdown of task board
RepoPath string // Path to target repository
Milestone string // e.g., "T0"
TaskResults []statemachine.TaskUnitOutput // Results from completed tasks
}
// TaskDispatch represents a dispatched task.
@@ -25,8 +27,9 @@ type TaskDispatch struct {
// PlanningOutput is the output of PlanningActivity.
type PlanningOutput struct {
Tasks []TaskDispatch
SubmilestoneComplete bool
TasksToDispatch []string // Task IDs to dispatch in this cycle
CompletedBranches []string // Branches to squash merge (when milestone complete)
SubmilestoneComplete bool // Whether the milestone is complete
}
// PlanningActivity calls the Planner LLM to decide which tasks to dispatch.
@@ -81,7 +84,8 @@ func PlanningActivity(ctx context.Context, in PlanningInput) (PlanningOutput, er
// This is a stub that allows the test to verify the activity is called
_ = response
return PlanningOutput{
Tasks: []TaskDispatch{},
TasksToDispatch: []string{},
CompletedBranches: []string{},
SubmilestoneComplete: false,
}, nil
}