fed0685633a8c9657d9b482b4f15f1cd52542f22
Proves the default-on reconnect protocol end to end through the real gRPC StreamEvents path via the fake worker harness (no live COM). Two facts: - ReconnectInsideRetainedWindow_ReplaysTailNoGap: capacity 16 retains all events; reconnect from a mid-batch after_worker_sequence cursor replays exactly the events with WorkerSequence > cursor (retained tail + events emitted while detached), strictly ascending, distinct, no ReplayGap. - ReconnectWithStaleCursor_EmitsReplayGapSentinelFirst: capacity 3 with 6 events forces eviction; reconnect with AfterWorkerSequence=1 yields the ReplayGap sentinel first (Family=Unspecified, no body, RequestedAfterSequence=1, OldestAvailableSequence=oldest retained), then the retained tail ascending. Single-subscriber mode: the first stream is fully detached (cancel + await the stream task runs EventStreamService's finally, dropping the subscriber count to 0) before reconnect; the distributor + replay ring are created once per session and survive detach, so events emitted while detached are retained. macOS note: fake-worker E2E tests need TMPDIR=/tmp (default macOS TMPDIR pushes the CoreFxPipe Unix-socket path past the 104-byte sun_path limit). Windows CI is unaffected. Server reconnect/replay behavior matched the contract exactly. Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
Description
No description provided
Languages
Java
46.4%
C#
42.3%
Python
3.1%
Rust
3%
Go
2.4%
Other
2.8%