Manages active recordings in ETS and delegates persistence to the
configured PhoenixReplay.Storage backend.
Events are appended via pure ETS writes — no GenServer call on the hot path. When a LiveView process exits, the recording is finalized and persisted.
Summary
Functions
Append an event to an active recording. Called from the LiveView process. Pure ETS insert — no GenServer call, no read-modify-write.
Returns a specification to start this module under a supervisor.
Delete all finalized recordings. Useful in tests.
Finalize a recording — collect events from ETS, persist via the storage backend.
Get an active (in-progress) recording snapshot from ETS.
Get a finalized recording by ID from the storage backend.
List active recordings that have user interaction, most recent first.
List all finalized recording summaries, most recent first.
List all finalized recordings, most recent first.
Start recording a session. Called from the LiveView process. Monitors the calling process to auto-finalize on exit.
Functions
Append an event to an active recording. Called from the LiveView process. Pure ETS insert — no GenServer call, no read-modify-write.
Returns a specification to start this module under a supervisor.
See Supervisor.
Delete all finalized recordings. Useful in tests.
Finalize a recording — collect events from ETS, persist via the storage backend.
Recordings with no user events (no handle_event, at most one handle_params)
are silently discarded to avoid storing empty page views.
Get an active (in-progress) recording snapshot from ETS.
Get a finalized recording by ID from the storage backend.
List active recordings that have user interaction, most recent first.
Uses the monitor registry to enumerate active recording IDs —
no :sys.get_state calls or private LiveView APIs.
List all finalized recording summaries, most recent first.
List all finalized recordings, most recent first.
Start recording a session. Called from the LiveView process. Monitors the calling process to auto-finalize on exit.