You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: Make Session Replay stable for offline or intermittent network (#67)
- Make BatchWorker aware that any http request can fail, by creating
failingItems which gonna be tried until network appears
- Network Backoff
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Reworks transport to an actor-based BatchWorker that routes queue
items by exporter with concurrency and exponential backoff, adds
exporter typing to payloads/queue, exposes UserInteractionManager, and
wires touch events into Session Replay.
>
> - **Transport**:
> - **BatchWorker**: Convert to `actor`; add per-exporter concurrency
limits, cost budgeting, earliest scheduling, and exponential backoff
with jitter; track in-flight exporters/cost; async start/stop.
> - **Queue/Items**: Store events by `exporterTypeId`; add
`exporterClass` to `EventQueueItemPayload`; new `earliest(...)` and
`removeFirst(...)` APIs; derive `exporterTypeId` in `EventQueueItem`.
> - **Exporters**: Make `EventExporting` `Sendable`; add `typeId`
helper; remove `MultiEventExporter`.
> - **TransportService**: Call batch worker start/stop asynchronously.
> - **Observability/UI**:
> - Add `userInteractionManager` to `ObservabilityContext`; make
`UserInteractionManager` public with multiple `TouchInteractionYield`s;
update `TouchCaptureCoordinator` to use optional yield and new alias.
> - Keep tracing on interactions via `UserInteractionManager` in
factory.
> - **Session Replay**:
> - Register touch interaction yield to enqueue interactions; add
`SessionReplayExporter` to `BatchWorker` and start transport.
> - Update payloads (`TouchInteraction`, `ScreenImageItem`) to specify
`exporterClass`; minor event generator flow tweaks.
> - **Logs**:
> - `LogItem` now specifies `exporterClass` for routing.
> - **Network**:
> - Minor `HttpService` response handling tidy-up.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f509f7d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
0 commit comments