1 Commits

Author SHA1 Message Date
HAL9000 0125c15039 fix(domain): enforce immutability on Plan and Action identity fields
Freeze PlanIdentity (plan_id, parent_plan_id, root_plan_id) and
NamespacedName (name, namespace) using Pydantic frozen=True.
Block PlanTimestamps.created_at reassignment via __setattr__ override.
Mutable state fields (phase, processing_state, updated_at, etc.) remain
fully assignable. Add 17 Behave scenarios verifying all invariants.

ISSUES CLOSED: #7553
2026-04-20 06:08:50 +00:00