Skip to content

Support processor-backed sessions - #10682

Open
markerikson wants to merge 8 commits into
mainfrom
feature/processor-session-support
Open

markerikson wants to merge 8 commits into
mainfrom
feature/processor-session-support

Conversation

@markerikson

Copy link
Copy Markdown
Collaborator

This PR:

  • Bumps @replayio/protocol to 0.106.0 for the processor-session commands
  • Tracks whether Recording.createSession returned a processor-backed session (processorBacked in the app slice, replayClient.isProcessorBacked())
  • Loads React, Redux, and jump-to-code data from the new commands on processor sessions, in place of routine annotations:
    • React panel builds React DevTools operations from React.getComponentTree at each pause
    • Redux panel maps Redux.getActions to the existing action annotation shape
    • Jump-to-code maps Session.getInteractionHandlers to the existing jump annotation shape
  • Shows React and Redux panel visibility from Session.getLibraryStatus, including a new error message when the backend reports failed
  • Lifts the 60 s focus window cap and the long-recording routine gates on processor sessions
  • Adds a ?processor URL param that requests a processor session via experimentalSettings.useProcessorController, and E2E_PROCESSOR_SESSIONS=1 to pass it in e2e runs

Controller sessions use the same annotation code paths as before.


🤖 Description

Details

  • listenerPoint from getInteractionHandlers is a bare ExecutionPoint, but seeking needs a time. listenerPointCache looks it up on click with findPoints at the handler's firstBreakablePosition, limited to that point. A backend follow-up will send a TimeStampedPoint, and then the lookup can go.
  • Component trees use a constant renderer ID of 1. Multiple React versions on one page have not been checked yet.
  • The processor React panel keeps its React DevTools store mounted between pauses, and shows a loader until the new tree arrives.
  • The Redux panel's "this may take a while" timeout is 180 s on processor sessions (30 s on controller sessions), since cold getLibraryStatus calls took 20-190 s.

E2E results against prod processor sessions

Production build against wss://dispatch.replay.io. Controller: 91 passed, 10 failed (9 environment failures in authenticated/* and the redux-fundamentals example, plus repaint-06). Processor: the same 9, 11 that fail only from cold starts under parallel load, and 6 others:

  • react_devtools-01: fixed in this PR
  • file-search-01, logpoints-07: the processor does not pretty-print content-hashed bundles (backend fix pending)
  • react_devtools-02: old recording's runtime can't run the React analysis; needs re-recording
  • react_devtools-03: React 16 is unsupported by the analysis engine; test/example change needed
  • playwright-04: playback stalls while screenshot requests wait behind a long evaluation (backend)

- Panel visibility from Session.getLibraryStatus, with a failed state
- React panel from React.getComponentTree, synthesized into RDT operations
- Redux panel from Redux.getActions
- Jump-to-code from Session.getInteractionHandlers
E2E tests add it when E2E_PROCESSOR_SESSIONS is set.
@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
devtools Ready Ready Preview Oct 27, 2026 3:50pm UTC

Request Review

@socket-security

socket-security Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​replayio/​protocol@​0.104.1 ⏵ 0.106.084 +310078 +193 +4100

View full report

This branch was successfully deployed

1 active deployment
Preview — d81a66ed Deployed Oct 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant