Skip to content

v0.8.2

Choose a tag to compare

@aurimasmi aurimasmi released this 21 Sep 19:59
· 51 commits to main since this release

Reports and crashes now arrive with a short, high-resolution window of CPU and memory usage leading up to the failure, while playback sessions stop carrying the idle CPU/memory samples that made long sessions expensive for no benefit. The web and React SDKs now take their report hotkey from the dashboard, and the SDK surface has been simplified so the platforms behave the same way. On the service side, the dashboard gets a full-page report and error workbench, playback sessions are attributed to the person watching, an error-monitoring stack lands with symbolication and release regression detection, and a read-only MCP endpoint lets coding agents pull the evidence for a bug themselves.

SDKs

All platforms

  • Reports and crashes now include a resource window: CPU and memory sampled at two-second resolution around the moment of the failure, so the evidence is aligned to what went wrong.
  • Session Vitals no longer ships periodic CPU/memory samples. Playback sessions carry only playback events; the resource window above replaces the old low-resolution stream. The service also discards samples from older SDK versions, so nothing needs to be redeployed to benefit.
  • The public SDK surface has been simplified so the platforms have parity with each other, and the size limit for extra data attached to a report has been raised.
  • Report titles can be longer.
  • The screenshot capture deadline has been extended so captures on heavy screens, such as TV home pages, no longer fail.
  • Android, iOS and React Native: structured error details now respect both the emitted JSON and JavaScript byte limits.

Web and React

  • The report hotkey is now configured from the dashboard and applied live by the SDK, including when the configuration is refreshed. The default binding is Mod+Shift+B, and the matcher accepts any two-to-four-key chord.
  • Playback sessions are attributed to the person watching: the web and React SDKs send the same identity they already use for reports along with the vitals summary.

Android

  • Fixed the on-screen keyboard overlapping the report form.

Service and dashboard

Report and error workbench

  • The report drawer is replaced by a full-page workbench. The device sits on a stage at its real aspect ratio inside a phone, tablet, TV or browser frame, with a switch between annotated screenshots and the replay. Beside it, a developer panel offers Trail (every breadcrumb, filterable and searchable, following playback), Network (with request and response bodies where captured, and each row expanding to its full URL), Console, Context, Resources and Thread.
  • A four-lane timeline (taps, screens, network, logs and errors) sits under the stage with a playhead and a compact trail strip. Report time starts at the first event, the recording is shown as a band on the axis, and seeks land paused so you can inspect a moment.
  • The panel docks right or bottom with a fold, remembers its state, and supports a focus mode and keyboard shortcuts (arrows seek, / search, 1–6 switch tabs, j/k move between siblings). On short screens the page flows naturally, the timeline starts folded behind a Timeline toggle, and the stage keeps a usable minimum size.
  • Screenshots are capped at 1120px wide (never upscaled); the lightbox and fullscreen remain for reading larger captures.
  • The error-group page shows one occurrence at a time: pick the latest or step through older and newer ones, see the exception and stack (with Copy), and view the trail relative to the crash, the replay frozen at the crash, network, console and context. The Occurrences tab adds an OS / release / route breakdown above the table. A generic cause view is available, and causes are recovered when a source map arrives late.

Reports and Errors lists

  • Both lists gain search (a word from the title, or the start of an id) plus Platform and Version filters backed by distinct-value facets with counts, so you can pick a version and then widen the date range.
  • The Reports list adds Platform and Version columns, a replay icon in Attachments, a test-ping badge beside the title, and an inline Add to board button.

Error monitoring

  • Error monitoring is integrated into the service: explicit capture, private web, Hermes and R8 artifacts for symbolication, grouping promotion once frames are mapped, release regression detection, and webhook routing.

Playback sessions and people

  • The Sessions section is renamed Playback. Each playback session is attributed to the person watching, across both identity tiers (verified token and self-declared user), and rendered exactly as people appear on reports, including the unverified badge.
  • The playback list has a person column and per-person filter; session detail shows the person; a person's profile lists their playback sessions beside their reports.
  • A person can now be erased: their identity is detached from all sessions and reports, which remain intact and anonymous.

Hosted MCP server

  • A read-only MCP endpoint lets a coding agent fetch bug evidence directly. Eight tools, each scoped to one project: list_projects, get_report, get_screenshot, get_error_group, get_ticket, get_ticket_attachment, search and resolve_link. Paste any dashboard URL into resolve_link and the agent gets the matching report, error group or ticket without knowing any ids. Images are listed and fetched on demand, never dumped into the conversation.
  • Connection uses browser-based authorisation with a consent screen; a grant acts as the person who approved it and is re-checked on every call. There are no write tools, user-submitted text is wrapped in an explicit untrusted-content boundary, content types are decided by sniffing bytes, and refresh tokens rotate with whole-family revocation on reuse.

Companion

  • The Companion tab attaches to one device at a time. Attaching to a second device while connected is refused with a dialog naming the current one; Detach is the only way to move. The attached device is dropped from the list.
  • Fixed Detach staying disabled after a successful detach, which previously required a page reload before re-attaching.
  • Centred dialogs now use an even glow on all sides instead of a shadow that dropped below the bottom edge.

SDK configuration

  • The SDK configuration overview is redesigned into Report Entry, Communication, Session Context and Evidence Trail groups with live previews, a phone-friendly accordion layout, and a hotkey recorder for arbitrary two-to-four-key chords.

For developers

  • Breaking (web and React): the SDK-side config.hotkey option and the public registerHotkey helper are removed. The report hotkey is now the dashboard's reportHotkeyBinding setting (default Mod+Shift+B) and is authoritative; the SDK negotiates and applies it, including on live configuration refreshes.
  • SDK surface parity: the public API was simplified so all platforms expose the same surface. Review the updated SDK documentation when upgrading, as some calls have changed.
  • Session Vitals: the SDKs no longer emit CPU/memory sample entries. The sample type remains accepted by ingest so chunks from older SDKs still validate; the service drops samples after validation and writes nothing for a sample-only chunk.
  • New endpoints:
    • DELETE /api/admin/projects/:projectId/people/:identityId (admin-only) erases a person, setting the identity to null on every referencing record.
    • GET /projects/:id/events/facets returns distinct platform and version values with counts, scoped like the events feed but never by date.
  • MCP: the endpoint is at /mcp over stateless Streamable HTTP. Authorisation implements the OAuth 2.1 subset MCP clients expect — RFC 9728 protected-resource metadata, RFC 8414 authorisation-server metadata, RFC 7591 dynamic client registration, RFC 7636 PKCE (S256 only), RFC 7009 revocation, and RFC 8252 native-app rules including loopback port variation. Clients that cannot run the browser flow can use an API token (txx_api_ prefix) as a bearer credential.