Skip to content

Releases

v0.4.0

Choose a tag to compare

@calebl calebl released this 05 Nov 13:58
98e9168

Session replay

  • Local-only viewer: the replay viewer answers only requests made on the same machine, including through a local proxy. config.replay.viewer can only narrow access further, never widen it.
  • Replay expiry: stored replays expire after 7 days by default. Configure with config.replay.max_age (Ruby) or replay_max_age in 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

Choose a tag to compare

@calebl calebl released this 04 Nov 20:13
089e333

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
end

and 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 contenteditable elements is masked (config.replay.show_typed_text = true shows it; passwords are always masked).
  • Use rrweb's rr-block (not recorded) and rr-mask (text replaced with *) classes to hide other page content.
  • replay is added to filter_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

Choose a tag to compare

@calebl calebl released this 28 Oct 18:39
8ed88b6

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"