Enhance deployment planner
…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.