Repository navigation
Releases
v0.4.0
Session replay
- Local-only viewer: the replay viewer answers only requests made on the same machine, including through a local proxy.
config.replay.viewercan only narrow access further, never widen it. - Replay expiry: stored replays expire after 7 days by default. Configure with
config.replay.max_age(Ruby) orreplay_max_agein seconds (Python). Expired replays are cleaned up at the next report, app start, or replay view, and are never shown once expired. - Python apps: turning replay off does not remove existing replays; delete the old replay directory yourself.
v0.3.0
Session replay (opt-in)
pocket-kit can now attach a short session replay to feedback notes and page error reports. Each page records with rrweb and keeps about the last 30 seconds in memory only (never localStorage, IndexedDB, cookies, or the network); the recording is sent only with a report, to the app's own endpoint.
Off by default. Enable it per app:
PocketKit.configure do |config|
config.replay.enabled = true
endand add <%= pocket_kit_replay_tag %> to the layout. With replay off, the recorder is never loaded and reports are unchanged.
Privacy defaults
- Typed text in inputs, textareas, selects, and
contenteditableelements is masked (config.replay.show_typed_text = trueshows it; passwords are always masked). - Use rrweb's
rr-block(not recorded) andrr-mask(text replaced with*) classes to hide other page content. replayis added tofilter_parameters; playback blocks cross-origin resources.
Storage: each accepted replay is saved as <uuid>.json in config.replay.directory (default tmp/pocket_kit/replays), readable only by the app's user; the report references the file. Retention is bounded by config.replay.keep and size by config.replay.max_bytes.
Viewing: open the report's replay.viewer path (e.g. /pocket-kit/replays/<uuid>) in the app, or open viewer/replay.html from a pocket-kit checkout and pick the file.
Install: gem "pocket_kit", github: "calebl/pocket-kit", tag: "v0.3.0"
Full changes: v0.2.0...v0.3.0
v0.2.0
Error reporting
pocket-kit now includes self-hosted error monitoring that works across frameworks. A framework-free browser core captures errors and sends them as a shared JSON report. Errors are grouped so repeats show up together. A Rails adapter captures errors from requests and background jobs.
Python helper
A standard-library-only Python helper sends errors from Python apps in the same report format.
Feedback button
The feedback button now runs on the same framework-free browser core. The existing Stimulus controller still works.
Install with:
gem "pocket_kit", github: "calebl/pocket-kit", tag: "v0.2.0"