Added user_identity field (str | None, default None) to the frozen DomainEvent
Pydantic model, enabling authenticated user identity to be carried as a
first-class event attribute rather than buried in the details dict.
Updated AuditEventSubscriber to prefer event.user_identity over the legacy
details-dict extraction with a backward-compatible fallback: when the field
is set it is used directly (and removed from details to prevent duplication);
when None, the subscriber falls back to popping user_identity from details.
Added Behave BDD scenarios testing user_identity defaults, explicit values,
JSON round-trip, DomainEvent field propagation through the audit pipeline,
field-vs-details precedence, and None fallback. Added Robot Framework
integration tests covering the identity field pipeline, details fallback,
and field precedence. Also fixed a pre-existing test mismatch in
resource_cli_flags_904.feature where the clone-into scenario expected
"container types" but the error message reads "container resource types".
ISSUES CLOSED: #715