This test scenario was identified by a cross-SDK conformance audit comparing every Sendspin client/server implementation. See the audit docs on branch claude/stream-sync-correction-sdks-AWoNC.
What it tests
The harness counts client/time messages over a 30 s window and
asserts the distribution matches the recommended cadence (bursts of
8, 10 s apart) within tolerance. See
spec issue: clock synchronization for the proposed normative
text.
Why we need it
Only sendspin-cpp, sendspin-jvm, and sendspin-js actually
implement bursts inside the SDK. The other six leave cadence to the
embedder, which means real-world cadence depends entirely on what
the embedder does. sendspin-cli, for example, runs aiosendspin
at a fixed 10 s single-message cadence — no burst denoising at
all. Without a test, this regresses silently.
Implementation sketch
- Server adapter logs receive timestamps for all
client/time
messages over a fixed observation window.
- Harness asserts: (a) ≥ 4 bursts of ≥ 4 messages within 500 ms;
(b) gap between bursts is 8–12 s.
- Tolerance loose enough that median-of-3 (sendspin-js variant) also
passes.
Source: docs/clock-synchronization.md §recommendations
This test scenario was identified by a cross-SDK conformance audit comparing every Sendspin client/server implementation. See the audit docs on branch
claude/stream-sync-correction-sdks-AWoNC.What it tests
The harness counts
client/timemessages over a 30 s window andasserts the distribution matches the recommended cadence (bursts of
8, 10 s apart) within tolerance. See
spec issue: clock synchronization for the proposed normative
text.
Why we need it
Only
sendspin-cpp,sendspin-jvm, andsendspin-jsactuallyimplement bursts inside the SDK. The other six leave cadence to the
embedder, which means real-world cadence depends entirely on what
the embedder does.
sendspin-cli, for example, runsaiosendspinat a fixed 10 s single-message cadence — no burst denoising at
all. Without a test, this regresses silently.
Implementation sketch
client/timemessages over a fixed observation window.
(b) gap between bursts is 8–12 s.
passes.
Source:
docs/clock-synchronization.md§recommendations