Repository navigation
v2.1.0
Internal hardening, new test tooling, and documentation. No CLI or API changes — every invocation from 2.0.0 keeps working. First release since v2.0.0; behaviour-preserving, so a minor bump.
Added
- Automated browser-driven WHEP test (
tests/browser/): drives real Chrome through the WHEP handshake via Puppeteer and asserts decoded video frames climb, guarding against the connected-but-silent version-skew regression. Emits a pass/fail verdict + JSON even when Chrome can't launch. Verified for this release (frames 0 → 141, H264 1280×720). - ADR-0005: watchdog-triggered pipeline restarts routed through the supervisor.
- Regenerated animated architecture diagram with editable Excalidraw source + renderer.
Changed
- Watchdog restarts now flow through the pipeline supervisor rather than the coordinator; pipeline
quit/lifecycle control lives behind thePipelineLifecycleseam (ADR 0005). - Tests exercise the signal plane through the public
SignalHandle; the internal command enum is private, list/reset unified through one request path. - Stream bus-reap channel is constructor-injected and typed by branch id.
add_branchcleans up its own half-attached branch on failure, on the coordinator's critical path (restores the ADR-0002 teardown bound).- Core GStreamer element names single-sourced from a
stream::namingmodule; coordinator config defaults single-sourced as constants. - Folded the SDP newtypes' shared string-conversion boilerplate behind a macro.
- Refreshed
CONTEXT.mdand the shared-lock → coordinator-actor architecture narrative.
Full changelog: https://github.com/Eyevinn/srt-whep/blob/v2.1.0/CHANGELOG.md