Skip to content
-
openvibe-sdk v0.35.0 (was v0.26.0) (#19)OpenVibers · 7 Oct 2026
9b211d3
-
openvibe-contracts v0.112.0 (was v0.76.0) (#18)OpenVibers · 7 Oct 2026
ea270ea
-
openvibe-shared 2.13.0: release notifications connect to openvibe.events (plan T7) (#17)OpenVibers · 7 Oct 2026
4fcfbe4
-
openvibe-shared 2.12.0: the showcase home and the Frame footer set their font (they rendered serif) (#16)OpenVibers · 7 Oct 2026
d3af71e
-
OpenRe: the viewer signaling URL is wss://<host>/w/<id> behind the TLS vhost (it gave the loopback worker port). (#15)OpenVibers · 7 Oct 2026
f7edb56
-
OpenRe.Stream: a showcase home that leads with browser go-live; llms.txt says only what runs today. (#14)OpenVibers · 7 Oct 2026
9271a1f
-
OpenRe.Stream: robots.txt names a sitemap, sitemap.xml and llms.txt (browser WHIP first); /metrics never proxied. (#13)OpenVibers · 7 Oct 2026
683900b
-
Serve WHIP ingest on ingest.openre.stream and document its cutover (#12)OpenVibers · 4 Oct 2026
4bc46be
-
Bump openvibe-shared v2.3.1 → v2.5.0 (#11)OpenVibers · 3 Oct 2026
abd1921
-
Let cutover-preflight --slot all check every Live slot read-only (#10)OpenVibers · 2 Oct 2026
0c62c54
-
Require ready ingest workers for stored stream protocols (#9)OpenVibers · 2 Oct 2026
e7e1c55
-
Move the API shutdown onto openvibe-sdk/service gracefulStop (#8)OpenVibers · 2 Oct 2026
d272503
-
Take robots.txt Cache-Control from openvibe-shared cache-policy (#7)OpenVibers · 2 Oct 2026
29f2c7e
-
Plan T4: the RFC 9725 follow-ups the independent review of PR 5 left… (#6)OpenVibers · 2 Oct 2026
af1fb50
-
Restart ICE, check If-Match and Bearer on WHIP PATCH and DELETE (#5)OpenVibers · 2 Oct 2026
ff2048b
-
Merge pull request #4 from OpenVibers/agent/openre-plan-t4-drop-unported-stub-233027-muq637w3OpenVibers · 2 Oct 2026
f156ef9
-
Plan T4 — the unported-transport stub is gone; status files match the…OpenVibers · 2 Oct 2026
31e80e4
-
Merge pull request #3 from OpenVibers/agent/openre-stream-plan-t0-the-await-guard-au-195533-mupyeuvgOpenVibers · 1 Oct 2026
bf19c59
-
finish-f1: Changed: workers/rtmp-ingest.js onlyOpenVibers · 1 Oct 2026
15ccce3
-
Plan T0 — await/guard audit for OpenRe.StreamOpenVibers · 1 Oct 2026
cad3e37
-
Merge pull request #2 from OpenVibers/agent/bump-openvibe-shared-v2.3.1-mupv9nfrOpenVibers · 1 Oct 2026
c079601
-
Bump openvibe-shared v1.28.0 → v2.3.1OpenVibers · 1 Oct 2026
e1c11c7
-
OpenRe's webrtc worker (plan T4, transports step 2): WHIP ingest, the mediasoup SFU and viewer signaling in one worker kind (workers/webrtc.js + webrtc/{sfu,sdp,signaling}.js; UDP 10200-10300 beside Live's 10000-10100), a WHIP session going live on ICE connected as Live's handler does, browser broadcasters over /b/<key> and viewers over /w/<playback id>, a loopback RTP egress API (describe, PlainRTP consumer to a local port pair) for the restream worker, Media's RTP recorder and the thumbnail grabber. Recording a webrtc session goes through Media's RTP ingest (migration 0003: rtp_handle and the port pair); live thumbnails come from the worker that owns the source and are uploaded as Media objects (namespace live) and carried as thumbnail_url on openre.session.updated. Admission, leases and drains follow the rtmp/jsmpeg workers. The worker refuses to start in production without MEDIASOUP_ANNOUNCED_IP. mediasoup, sdp-transform and ws are dependencies, werift a dev dependency for test/webrtc-e2e.test.js (a real WebRTC client: WHIP offer to RTP egress, a counted viewer, recording through Media's RTP ingest, a browser broadcaster, refusals, DELETE, a lost lease, a drain). npm test 21/25 (4 PostgreSQL-only skips) and test:pg 25/25 (verified).OpenVibers · 29 Sept 2026
75a5dd7
-
OpenRe carries JSMPEG (plan T4, transports step 1): one protocol name per transport (rtmp, webrtc, jsmpeg; whip accepted on input as webrtc; worker kinds rtmp-ingest, restream, webrtc, jsmpeg; migration 0002 rewrites stored names), and a real jsmpeg worker: MPEG-TS POST /<key>/<w>/<h>/ admitted by key like RTMP, WebSocket viewers by playback id (viewer count in heartbeats and the session), a loopback tap for restream, generations/drain/lease like the RTMP worker; the playback descriptor carries jsmpeg { ws_url, width, height }; restream reads the tap; a jsmpeg recording request fails with a stated reason (openre.recording.failed), never silently. The webrtc-ingest and sfu stubs become one webrtc stub. [email protected]; cutover.md gains the JSMPEG slot procedure. npm test 19/23 (4 need PostgreSQL), test:pg 23/23.OpenVibers · 29 Sept 2026
63c9ad0
-
OpenRe's workers no longer drop async failures on the floor (Node ends a process on an unhandled rejection, which would drop every publisher on a worker): the coordinator's outbox prune catches its rejection; the restream worker awaits its start inside the boot's catch; an RTMP admission whose success handler fails (sessions.finish before the publisher went live) is logged instead of unhandled; SIGTERM/SIGINT drains catch their rejection; the runtime's stop() records the stopped row with a handled rejection; log lines survive a rejection with no Error. The HTTP GET handlers were already covered by openvibe-shared's routeAsyncErrors (installed by instrument()); test/http-async.test.js pins that (a rejecting store answers 500 openre.internal, no unhandled rejection), and test/worker-async.test.js pins the worker paths. Found by the estate-wide floating-promise sweep; reviewed independently (its items fixed or shown covered). npm test 17/20 (3 need PostgreSQL), test:pg 20/20. npm test 17/20 test files passed, 3 skipped (api-restart.test.js: api-restart: skipped (OpenRe proc.OpenVibers · 29 Sept 2026
5d062bf
-
The SQLite era is gone (on PostgreSQL since 2026-09-28; no compatibility kept): the one-time migrate-to-postgres script, the *_DB_PATH settings (config, .env.example, systemd unit, test helpers), the unused better-sqlite3 dependency and its lockfile entries, and docs, docstrings and STATUS lines about SQLite or its rollback window. Reviewed independently before shipping. npm test 15/18 test files passed, 3 skipped (api-restart.test.js: api-restart: skipped (OpenRe proc.OpenVibers · 29 Sept 2026
36c7026
-
Worker runtime: hooks can no longer reject unhandled, and an idle draining worker records its stop before exiting. Hooks (onDrain, onDrainDeadline, onEndRequested, onHeartbeat) run beside the heartbeat as before (they stop publishers and wait for them to leave; awaiting them in the beat stalled the end-to-end flow), now through one call() that logs a failure whether the hook is sync or async. exitWhenIdle() writes the 'stopped' row and only then exits: before, the write could be lost, leaving the worker ready/draining until its lease expired and new sessions routed to a dead generation. The coordinator test waits for the exit instead of one tick. npm test 15/18 (3 need PostgreSQL), npm run test:pg 18/18.OpenVibers · 29 Sept 2026
1d4c476
-
OpenRe.Stream on PostgreSQL (ADR-035, roadmap WS-X2 G5): openvibe-sdk/db, async throughout, every transaction serializable.OpenVibers · 28 Sept 2026
405682c
-
npm test no longer counts a skipped test as passed (roadmap WS-Q task 7; openvibe-shared/test-runner, Shared v1.25.0). test/run.js counted every file that exited 0 as passed, so rtmp-e2e without ffmpeg, which checks nothing and exits 0, read as green. It is now the shared runner (same files, one at a time as before, 180 s timeout per file): a test prints "<label>: skipped (<why>)" for what it could not run, and that file is listed with ○ and its reasons and not counted as passed; --strict makes a skip fail the run. rtmp-e2e now prints "rtmp-e2e: skipped (no ffmpeg on PATH)" (it said SKIPPED, in words no runner read); without ffmpeg the run reads 17/18 test files passed, 1 skipped. openvibe-shared is pinned at v1.25.0 (from v1.24.0; README and STATUS.json follow). npm test (Node 22, ffmpeg installed) 18/18.OpenVibers · 28 Sept 2026
d9f4240
-
OpenRe's /api/ready is in the openvibe-shared/ready shape (roadmap WS-Q task 7, Shared v1.24.0). It answered { status, checks: { db: true, key: true }, … }, an ad-hoc body Network's registry could only read by HTTP status, so the status page showed OpenRe up (basis ready-legacy) on a 200 alone; since Network ac71bb4 it shows degraded for that reason. Now createReadiness with required db and network_key (as before: 503 without them) and optional workers (a ready rtmp-ingest and restream worker), coordinator (a valid lease) and events_relay, so a worker generation rolling over degrades the API, which keeps serving reads, rather than failing it. A restore drill's relay is skipped ("restore drill: never publishes"), never ok. The body keeps mode, store, workers, coordinator and events for scripts/cutover-preflight.js, which already requires status ready. openvibe-shared is pinned at v1.24.0 (from v1.22.0); README and STATUS.json name it. Tests: api (shape, required flags, no workers → degraded, preflight fields kept) and drill-mode (relay skipped). npm test (Node 22) 18/18.OpenVibers · 28 Sept 2026
0afc069
More commits