PhaseTransitionEvent#

Distinguish UI streams, extension notifications, and external replies. See the guide.

class zett_agent.extensions.events.PhaseTransitionEvent(previous_phase, current_phase, occurred_at, monotonic_ns)[source]#

One validated request-state transition published after the phase changes.

context.state.phase already equals current_phase while subscribers process this event. Rejected transitions never publish an event.

Parameters:
occurred_at: datetime#

UTC wall-clock time suitable for persistence, logs, and user interfaces.

monotonic_ns: int#

Process-local monotonic reading used only to calculate elapsed durations.