Carries bounded lifecycle-recorder state across mailbox transitions.
PID-bearing watch and pending-exit maps remain private. Public status and queries are derived into safe scalar and retained-event values.
Summary
Types
@type clock() :: (-> integer())
@type t() :: %BeamConsole.Lifecycle.Recorder.State{ active?: boolean(), collector: GenServer.server() | nil, config: BeamConsole.Recorder.Config.t(), deferred: non_neg_integer(), demanded?: boolean(), eligible: non_neg_integer(), flush_scheduled?: boolean(), history: BeamConsole.Recorder.History.t(), monotonic_clock: clock(), omitted: non_neg_integer(), paused?: boolean(), pending_events: [BeamConsole.Lifecycle.Event.t()], pending_exits: %{ required(String.t()) => BeamConsole.Lifecycle.PendingExit.t() }, reconcile_scheduled?: boolean(), recording_started_at_ms: integer() | nil, recording_started_monotonic_ms: integer() | nil, reset_pending?: boolean(), source_epoch: String.t() | nil, start_event_pending?: boolean(), system_clock: clock(), watches_by_pid: %{required(pid()) => BeamConsole.Lifecycle.Watch.t()}, watches_by_ref: %{required(reference()) => pid()} }