The recording panel shares one live stream per tab (#1247) #1355
Loading…
Reference in a new issue
No description provided.
Delete branch "perf/1247-shared-recording-stream"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The recording panel and Table mode each opened their own
/record/stream. A small registry (recordingStream.js) now opens one EventSource per session on the first subscriber, closes it when the last leaves (ref-counted), and fans readings out.useRecordingsubscribes through it; reconnect and error handling are unchanged.New tests cover one stream for two hooks, partial and full unmount, StrictMode, separate sessions, and fan-out.
Refs #1247.
🤖 Generated with Claude Code
Full frontend suite (orchestrator), docker-test, committed code
71dfe4c2: 5,727 passed, 15 failed, 1 skipped. eslint has 0 errors.recordingStream.test.jsx(6),RecordingPanel.test.jsx(24) andGmTable.test.jsx(96). OnlyRecordingPanel.jsx,GmTable.jsxandrecording.jsimport it.CampaignSettingsGeneral,DesignReference,Home,AppFrame,LevelUp,SheetEdit,StartCharacter,wiki/FrontandSuggestionsFacts. They'rewaitFortimeouts at a host load average of 45–60, the "busy host" case in the project profile. An earlier run at a load of about 60 had 41 such failures plus vitest worker timeouts.Cleaned up:
qb-fe-1247bandqb-fe-modules-1247b.