| name | session-replay |
| description | Inspect, troubleshoot, and extend Analytics session replay recordings. |
| scope | dev |
Session Replay
Use this skill when working on /sessions, replay ingest, replay storage, or
agent answers about browser recordings in the Analytics template.
Source Of Truth
- Replay ingest writes
session_recordings and session_replay_chunks.
- The UI and agent must use
list-session-recordings,
get-session-replay-summary, and get-session-replay-events.
/sessions/:recordingId is keyed by session_recordings.id, not
analytics_events.session_id.
- Do not add actions that synthesize "sessions" from
analytics_events.
Events can be linked beside a recording through session_id, but they are not
playable replay rows by themselves.
Storage And Access
- Never expose object-storage URLs or raw
session_replay_chunks rows to the
browser or agent.
- Playback bytes must go through scoped server helpers that check
session-recording access before reading private blob refs.
- SQL inline chunks are a local/dev fallback only; production should use
private or encrypted blob storage.
- A local Analytics app pointed at a production database must also use the key
that encrypted those replay blobs. Set
ANALYTICS_SECRETS_ENCRYPTION_KEY in
an untracked local env file; do not replace the workspace-wide
just to read production replay storage.