Skip to content

refactor: introduce PipelineRun aggregate for runner-planner protocol (#904)#905

Merged
dieppa merged 1 commit into
masterfrom
refactor/pipelinerun
May 13, 2026
Merged

refactor: introduce PipelineRun aggregate for runner-planner protocol (#904)#905
dieppa merged 1 commit into
masterfrom
refactor/pipelinerun

Conversation

@dieppa
Copy link
Copy Markdown
Member

@dieppa dieppa commented May 13, 2026

Replace the (List, ExecutionResultBuilder) pair carried through the runner
with a single mutable aggregate (PipelineRun) that owns in-flight state and produces the
ExecuteResponseData.

  • New internal.core.pipeline.run: PipelineRun, StageRun, StageState (polymorphic;
    Failed carries ErrorInfo).
  • API change: ExecutionPlanner.getNextExecution(List<AbstractLoadedStage>)
    getNextExecution(PipelineRun). CommunityExecutionPlanner and CloudExecutionPlanner migrated.
  • Intent-named mutators: markStageStarted, markStageCompleted(result),
    markStageFailed(exception) — aggregate derives ErrorInfo from StageExecutionException.
  • Removed ExecutablePipeline (trivial wrapper) and ExecutionResultBuilder;
    ExecutionPlan holds List<ExecutableStage> directly; PipelineRun.toResponse() builds the
    report.

No observable behavior change: runner still fail-fasts on StageExecutionException; response
shape and event firing points are identical.

…#904)

Replace the (List<AbstractLoadedStage>, ExecutionResultBuilder) pair carried through the runner
with a single mutable aggregate (PipelineRun) that owns in-flight state and produces the
ExecuteResponseData.

- New `internal.core.pipeline.run`: **PipelineRun**, **StageRun**, **StageState** (polymorphic;
  Failed carries ErrorInfo).
- API change: `ExecutionPlanner.getNextExecution(List<AbstractLoadedStage>)` →
  `getNextExecution(PipelineRun)`. CommunityExecutionPlanner and CloudExecutionPlanner migrated.
- Intent-named mutators: `markStageStarted`, `markStageCompleted(result)`,
  `markStageFailed(exception)` — aggregate derives ErrorInfo from StageExecutionException.
- Removed **ExecutablePipeline** (trivial wrapper) and **ExecutionResultBuilder**;
  ExecutionPlan holds `List<ExecutableStage>` directly; `PipelineRun.toResponse()` builds the
  report.

No observable behavior change: runner still fail-fasts on StageExecutionException; response
shape and event firing points are identical.
@dieppa dieppa merged commit 37a0acc into master May 13, 2026
4 checks passed
@dieppa dieppa deleted the refactor/pipelinerun branch May 13, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant