Skip to content

Pin examples to reactor-runtime 3.2.5 - #157

Open
ggoldens wants to merge 1 commit into
mainfrom
german/pin-examples-runtime-3.2.5
Open

Pin examples to reactor-runtime 3.2.5#157
ggoldens wants to merge 1 commit into
mainfrom
german/pin-examples-runtime-3.2.5

Conversation

@ggoldens

@ggoldens ggoldens commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Why

The brightness and echo examples pin reactor-runtime 3.2.4, which depends on reactor-webrtc 0.12.0. That binding rejects the end-of-candidates marker — an empty ICE candidate string that browsers such as Firefox trickle per m-section (RFC 8838) — with a hard error. On the session path this aborts SDP negotiation, so clients on those browsers never connect against a locally built image, while Chrome (which signals end-of-gathering differently) works.

reactor-runtime 3.2.5 takes reactor-webrtc 0.12.1, which accepts the marker as a no-op (#154).

What Changed

Bumps both examples from 3.2.4 to 3.2.5, keeping the two places in sync as the pins require: the reactor-runtime== line in requirements.txt and build.runtime_version in reactor.yaml. Images produced by reactor build after this change carry the fixed binding.

Also pins the contract itself: an integration test (test_add_ice_accepts_the_end_of_candidates_marker) feeds an empty marker to a negotiated peer against the real binding. libwebrtc's own candidate callback never produces one, so no existing test covered it — 0.12.0 fails it with the production error (Expected candidate got ), 0.12.1 passes, and any future binding downgrade breaks the suite instead of browser sessions.

@ggoldens
ggoldens requested a review from a team as a code owner August 27, 2026 21:23
reactor-runtime 3.2.4 depends on reactor-webrtc 0.12.0, whose
IceCandidate constructor rejects the end-of-candidates marker (an
empty candidate string, RFC 8838) that browsers like Firefox trickle
per m-section. The rejection aborts SDP negotiation, so sessions from
those browsers never connect against a locally built image.

reactor-runtime 3.2.5 takes reactor-webrtc 0.12.1, which accepts the
marker as a no-op. Bumping the examples' pin and reactor.yaml's
build.runtime_version makes images built with reactor build carry the
fixed binding. An integration test feeds the marker to a negotiated
peer so a binding downgrade breaks the suite instead of sessions.

Signed-off-by: Germán Goldenstein <german.goldenstein@gmail.com>
@ggoldens
ggoldens force-pushed the german/pin-examples-runtime-3.2.5 branch from 97796c2 to affa93a Compare August 27, 2026 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant