Skip to content

Enhance deployment planner

Placeholder ppxd requested to merge enhance-deployment-planner into main

…se 6c-iii Tier 2)

The DeploymentPlanner (Phase 6a) validates every (action × target) pair against ITransportCapabilities.SupportedActionTypes and records violations in PlannedTargetDispatch.Validation. However, ExecuteStepsPhase never checked these validations, causing unsupported dispatches to reach the renderer and crash with IntentRenderingException at runtime.

This change adds a graceful per-dispatch capability filter in PrepareStepActionsAsync that skips invalid dispatches before handler resolution, emitting a new ActionCapabilityFilteredEvent lifecycle event instead of letting the renderer crash.

Changes:

  • Add IsDispatchBlockedByCapability() + EmitCapabilityFilteredAsync() to 6_ExecuteStepsPhase.Prepare.cs
  • Add ActionCapabilityFilteredEvent lifecycle event
  • Add DeploymentLifecycleHandlerBase switch arm + virtual method
  • Add DeploymentActivityLogger warning log for filtered actions
  • Update PlanDeploymentPhase XML docs to reflect Tier 2 is now active

Tests (14 new test cases):

  • 8 executor unit tests covering skip/execute/mixed/multi-target/null-plan/ all-invalid/run-on-server/dispatch-missing scenarios
  • 4 planner tests for SSH+Helm violation, mixed targets, SSH+Script pass, Execute-mode throw
  • 2 preview tests for blocking reasons surfacing

All 3971 existing tests continue to pass with zero regressions.

Merge request reports

Loading