@urun-sh/core 0.3.5 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - **BREAKING: `WtMicUplinkHandle` and `WtCamUplinkHandle` require
6
+ `deliveredDatagrams(): number`; `WtUplinkSink` requires `delivered(): number`.**
7
+ A consumer that supplies only `setSource()` (and `requestKeyframe()` for the
8
+ camera) to `TransportSession.wtMicUplinkSeam` / `wtCamUplinkSeam` no longer
9
+ type-checks. Implementors report the datagrams QUIC has ACCEPTED from that
10
+ lane. There is deliberately no optional-with-fallback form: a lane that
11
+ cannot answer "did anything actually leave?" is the bug being removed
12
+ (urun-sh/urun-infra#2053 — `isProducingMedia` claimed a live microphone from
13
+ handle presence plus `MediaStreamTrack.readyState`, so the SDK reported a
14
+ healthy mic through an entire session in which nothing was transmitted).
15
+ Migration: return a per-lane counter incremented when that lane's datagram
16
+ write resolves. `WtUplinkSink` is internal — it is not exposed by the package
17
+ entrypoints — so only the two handle types affect external implementors.
18
+
19
+ - **Media liveness is level-triggered, and a sender sequence RESTART resyncs
20
+ instead of wedging the leg forever** (urun-sh/urun-infra#2053). Both media
21
+ lanes kept a monotonic high-water mark with no RFC 3550 §A.1 restart rule, so
22
+ a sender that restarted its sequence space was discarded for the life of the
23
+ session — silently, and on video before the keyframe bit was even read. The
24
+ decode-stall watchdog is no longer one-shot, uplink datagram write rejections
25
+ are no longer swallowed, and publication requires delivery evidence.
26
+
5
27
  - **WT uplink lanes now share ONE datagram writer (`getWriter` lock).**
6
28
  `WritableStream.getWriter()` LOCKS the stream — the WHATWG contract is one
7
29
  writer at a time. `WebTransportSession.start()` built its uplink sink by