{"id":"pst_01M5N61G9EWYMDGBAV5J018FHX","url":"https://openvibe.blog/@openvibe/patch-notes-the-adoption-report-oct-23","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: The adoption report (Oct 23)","summary":"What shipped on OpenVibe on 2026-10-23: 28 changes to OpenVibe.Live, OpenVibe.Host, OpenVibe.Media, OpenVibe.MediaHub, OpenVibe.Chat, OpenVibe.Deals and 2 more.","body_markdown":"What shipped on OpenVibe on 2026-10-23: 28 changes to OpenVibe.Live, OpenVibe.Host, OpenVibe.Media, OpenVibe.MediaHub, OpenVibe.Chat, OpenVibe.Deals and 2 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Host:** The adoption report: streams, the go-live funnel and its 14-day return, money and platform counts, read-only (#142) ([`a8997e5`](https://github.com/OpenVibers/OpenVibe.Host/commit/a8997e563aec3faf1dad398ef8b512638346c3f6))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- openvibe-sdk v0.62.0 (was v0.61.0) (#320) ([`aab3501`](https://github.com/OpenVibers/OpenVibe.Live/commit/aab35016443ab5fb66e158e2675abca739198ba6))\n- First-stream follow-up names who chatted, links the best clip and carries the recording's picture (#321) ([`5054541`](https://github.com/OpenVibers/OpenVibe.Live/commit/505454184962cc86d2b09d11a3c225c8ed67f6ef))\n- Channel chat and the player's diagnostics scroll from the keyboard (axe scrollable-region-focusable) (#322) ([`9080dca`](https://github.com/OpenVibers/OpenVibe.Live/commit/9080dca4822daee4cee2af93eee26fe9c53b3ecc))\n- A browser stream with no video or audio for 30 minutes ends (dead air); a long passthrough stall logs every 5 minutes (#323) ([`3dc4334`](https://github.com/OpenVibers/OpenVibe.Live/commit/3dc4334a3e6c13b76f3ed66a3f3c0145d2f9e04e))\n- The Rundown reads chat again (after_id), and the WHIP host answers WHIP only (#324) ([`ac2e939`](https://github.com/OpenVibers/OpenVibe.Live/commit/ac2e9397bb7994960b788cb2c6f28a3dee6ee73c))\n- Timeline adoption runs once per stream, not per row (it hit the 15 s timeout on every run) (#325) ([`02a00f5`](https://github.com/OpenVibers/OpenVibe.Live/commit/02a00f5a38561f4e8d0d4f06f6346c82f5fd6234))\n- The view beacon's answer may be read by openvibe.video (helmet's same-origin resource policy refused it) (#326) ([`6ee927b`](https://github.com/OpenVibers/OpenVibe.Live/commit/6ee927bb866251945ee11f0e64683512940bc60b))\n- A stream records why it ended (streamer, staff, broadcaster_left, ingest_ended, heartbeat_lost, dead_air) (#327) ([`ccb2a55`](https://github.com/OpenVibers/OpenVibe.Live/commit/ccb2a55d7a5395674da8d42bf8f5eb106860da31))\n- The live player's retry and stall timers do nothing once the player is torn down (RUM: Cannot set properties of null) (#328) ([`fba5d39`](https://github.com/OpenVibers/OpenVibe.Live/commit/fba5d397e832e0fa9a03fda1072579fba1f03b72))\n- On a phone the live player keeps its 16:9 box from the first paint (channel CLS 0.166 to 0) (#329) ([`2a72ecc`](https://github.com/OpenVibers/OpenVibe.Live/commit/2a72ecc71d0c692ada47148a3d8801b12a14ede5))\n- Live's Events relay stops at shutdown, while the database is open (it published on past the pool's end) (#330) ([`6b76779`](https://github.com/OpenVibers/OpenVibe.Live/commit/6b76779120d1158b5c4d4242b2acd278bf9eac4f))\n- On a phone the channel header's followers, game and category stay whole, and the Most watched ranges stay one line each (#331) ([`b010463`](https://github.com/OpenVibers/OpenVibe.Live/commit/b010463e7ccf13af8689c3d414bcaae3aa30710e))\n- After a follow, the channel offers go-live alerts on this device (browser push), one press away (#332) ([`ab420c2`](https://github.com/OpenVibers/OpenVibe.Live/commit/ab420c2640e63ede15f0b42e157f01a6e2d2b2bf))\n- The go-live sign-in gate says what a guest gets: live from this browser, no OBS, no download, no follower minimum (#333) ([`c9447cf`](https://github.com/OpenVibers/OpenVibe.Live/commit/c9447cf0cb4c6b86f6d7b3789994ffa1060c264c))\n- When Live ends a stream itself (dead air, a lost heartbeat), it closes the stream's WHIP sessions too (#335) ([`12795aa`](https://github.com/OpenVibers/OpenVibe.Live/commit/12795aad169140008ebff9b85995e86e32b87493))\n- The Arena's tables go (contract 0015, after 0008); arena_opt_outs stays for the Rundown (#334) ([`930af13`](https://github.com/OpenVibers/OpenVibe.Live/commit/930af13f4f1fdf3d82f07b1ac2cd30df9a8eda82))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- certs renew runs again: a database without host_domains (dropped by 0008) has no custom domains (#141) ([`5b99133`](https://github.com/OpenVibers/OpenVibe.Host/commit/5b99133f2b81a9c1b348c15053f22b504240ad6d))\n- The adoption report: streams, the go-live funnel and its 14-day return, money and platform counts, read-only (#142) ([`a8997e5`](https://github.com/OpenVibers/OpenVibe.Host/commit/a8997e563aec3faf1dad398ef8b512638346c3f6))\n- The adoption report splits first streams under a minute by why they ended (Live's end_reason) (#143) ([`28f256b`](https://github.com/OpenVibers/OpenVibe.Host/commit/28f256b0e5bb40bc2a3bec6118c637c6841888d3))\n- ovhost drops Stage B's tenant vhosts and custom-domain certificates; openvibe.host is a repo vhost (#144) ([`5a75dfd`](https://github.com/OpenVibers/OpenVibe.Host/commit/5a75dfd1c05170b317201cbefb48e44961666fc2))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- openvibe-sdk v0.62.0 (was v0.60.0) (#160) ([`eed85d7`](https://github.com/OpenVibers/OpenVibe.Media/commit/eed85d77de98e762a7839d91359fc09c8e752408))\n- Thumbnails are open to every origin (Live's player reads a thumbnail's colours; every offline channel page logged a CORS error) (#161) ([`236344a`](https://github.com/OpenVibers/OpenVibe.Media/commit/236344aa1c50f4b5e652d0a63989b4a8584803fd))\n\n## OpenVibe.MediaHub\n\n[openvibe.video](https://openvibe.video) · [repository](https://github.com/OpenVibers/OpenVibe.MediaHub)\n\n- Native HLS plays in CORS mode, with the file as its fallback (offloaded segments failed to parse: VOD 5925 stopped at 1:23:35) (#117) ([`cbf2636`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/cbf2636544008f0061985f7cbb12d91d4510936c))\n- A private recording's signed playlist stays in no-cors mode (Media serves it without CORS) (#118) ([`c19c6f8`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/c19c6f819504aed3a2a1f3965ab8477c4d0378d8))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Chat refuses the same line a fourth time in 30 s from one sender in a room (punctuation-only lines count as one) (#133) ([`f80eaf2`](https://github.com/OpenVibers/OpenVibe.Chat/commit/f80eaf2b3d34e7a7294827d62634e6f1cc6a26d2))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- Hotness tick snapshots are kept a day, not 7 (2.68M rows, 805 MB), pruned 50,000 at a time (#81) ([`99e43be`](https://github.com/OpenVibers/OpenVibe.Deals/commit/99e43be3b423cf33785ffa50f170549990935f60))\n\n## OpenVibe.Food\n\n[openvibe.food](https://openvibe.food) · [repository](https://github.com/OpenVibers/OpenVibe.Food)\n\n- A food's page shows BLS's US city average price for the newest month and for its pack, for the 13 items BLS prices (#78) ([`46641e6`](https://github.com/OpenVibers/OpenVibe.Food/commit/46641e6147737ac62d407713db3d20c3f27d8bef))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Status page: the developer path names every step; the analytics prune test stops depending on the date (#311) ([`9976b8f`](https://github.com/OpenVibers/OpenVibe.Network/commit/9976b8f938f05d3a737facdd1ffb44d11bb471af))\n\n---\n\nPatch notes are put together automatically when enough changes have shipped, or when a large feature lands. See every site's own updates page for the live list.","revision":1,"state":"published","visibility":"public","published_at":"2026-10-23T20:08:08.266Z","revised_at":"2026-10-23T20:08:08.249Z","author":{"subject":"usr_01KKT9AC60KM7CRTB3WN1Z8P56","name":"goosely","username":"goosely"},"authorship":{"mode":"imported","workflow":null,"reviewed":false,"disclosure":{"mode":"imported","short":"Imported","long":"Imported from Commit messages from the OpenVibers repositories on GitHub; originally by OpenVibers."}},"tags":["patch-notes","live","host","media","media-hub","chat","deals","food","network"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}