{"id":"pst_01M51DVS0FPXXV86ZX96E8EZGB","url":"https://openvibe.blog/@openvibe/patch-notes-55-changes-across-15-sites","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 55 changes across 15 sites","summary":"What shipped on OpenVibe from 2026-10-15 to 2026-10-16: 55 changes to OpenVibe.Network, OpenVibe.MediaHub, OpenVibe.Games, OpenVibe.Events, OpenVibe.Quest, OpenVibe.Search and 9 more.","body_markdown":"What shipped on OpenVibe from 2026-10-15 to 2026-10-16: 55 changes to OpenVibe.Network, OpenVibe.MediaHub, OpenVibe.Games, OpenVibe.Events, OpenVibe.Quest, OpenVibe.Search and 9 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Games:** Games: creator worlds — players build a world in the editor, publish it at /worlds, anyone joins (#87) ([`62508a5`](https://github.com/OpenVibers/OpenVibe.Games/commit/62508a5b4f17fb9d4c5efa3be58c9b3452aaa3a8))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Network: sandbox apps may define quests (openvibe.quest audience, quest.app_quest.manage); contracts 0.193.1 (#229) ([`c10c469`](https://github.com/OpenVibers/OpenVibe.Network/commit/c10c469184bf10b379a537bb0cd4ddd88a3644a1))\n- openvibe-contracts v0.193.2 (was v0.193.1) (#230) ([`ed441f8`](https://github.com/OpenVibers/OpenVibe.Network/commit/ed441f8ccb614bdace9bff6176b6cddeda175d25))\n- openvibe-contracts v0.194.0 (was v0.193.2) (#231) ([`976e09d`](https://github.com/OpenVibers/OpenVibe.Network/commit/976e09d5a12ec47403b5ce7c3cf2db1b252e0955))\n- openvibe-contracts v0.195.0 (was v0.194.0) (#232) ([`73ff558`](https://github.com/OpenVibers/OpenVibe.Network/commit/73ff558fb6dbdc5ce9ce975cd889d2687484bc7d))\n- openvibe-contracts v0.195.1 (was v0.195.0) (#233) ([`84b0d58`](https://github.com/OpenVibers/OpenVibe.Network/commit/84b0d58c8931b6c7ff3418e8dcb44bbcf55b2c3f))\n- Network: media-hub may write its own Search documents (search.document.write), for OpenVibe.Video's public uploads (#234) ([`dbcefa7`](https://github.com/OpenVibers/OpenVibe.Network/commit/dbcefa71c1ae9fd77538d1dc11210b760dee5078))\n- Network: food may write its own Search documents (search.document.write), for checked library recipes (#235) ([`8f0b6d0`](https://github.com/OpenVibers/OpenVibe.Network/commit/8f0b6d063696227d75a8782230f9e2ad54cf7cfd))\n- Network: bot may write its own Search documents (search.document.write), for the robot model pages (#236) ([`46bcf40`](https://github.com/OpenVibers/OpenVibe.Network/commit/46bcf40c94d32877ff80ae2aa24f0b19cdbe6ada))\n- Network: media-hub may run pics.describe_image on OpenVibe.AI (OpenVibe.Pics alt text) (#237) ([`b6a5188`](https://github.com/OpenVibers/OpenVibe.Network/commit/b6a51885deb94daaefb333ae9fe39cb20e89ae4f))\n- openvibe-contracts v0.195.2 (was v0.195.1) (#238) ([`ed9b3e8`](https://github.com/OpenVibers/OpenVibe.Network/commit/ed9b3e830587385c8498d772770a855a6812e3a3))\n- Network: media-hub may publish its events (mediahub.video.published, mediahub.picture.uploaded) (#239) ([`b532180`](https://github.com/OpenVibers/OpenVibe.Network/commit/b532180df95fb1dcf254ef3d103a899373004a9b))\n\n## OpenVibe.MediaHub\n\n[openvibe.video](https://openvibe.video) · [repository](https://github.com/OpenVibers/OpenVibe.MediaHub)\n\n- Video: playlists hold uploads too (kind upload), with Save to playlist and Up next on an upload's page (#74) ([`7031c29`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/7031c296b04ae84dd789d5358aa748cf61b202c2))\n- Download: back a folder up from your computer (sync keys on /sync for the openvibe-download command) (#75) ([`08bf5c0`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/08bf5c0126f75ef598e30de0a22208dc36ae6300))\n- Download: uploads without an account (drops), built and off until plan T10's gate (#76) ([`71ad2f3`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/71ad2f35c66450c980e95f1ce6d5930b39e3ed6a))\n- Video: public uploads are in OpenVibe.Search (owner media-hub, type video) (#77) ([`b94ed94`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/b94ed9496ed835702c15a15a063873e19a6d372a))\n- Pics: resize and convert (/i/<slug>/w/<width>.<webp|avif|jpg|png>) (#78) ([`cd8dc36`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/cd8dc36d8bf16a467c82eacda2002689037f3b19))\n- Pics: alt text, written by the uploader or drafted by OpenVibe.AI when they ask (#79) ([`9c1c080`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/9c1c080b16b3b6256c9903abbe229c050b66ff33))\n- Video: the AI cut, an edited copy of an upload with the pauses cut out or a highlights reel (#80) ([`3a17aa1`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/3a17aa1e216f77f460fcc9577ba1844f931f57bc))\n- MediaHub README: the status line names Video uploads, the AI cut, backup and Pics' resize and alt text (#81) ([`6a170f5`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/6a170f5152f212b5233310d74f9fe595c6710489))\n- openvibe-contracts v0.196.0 (was v0.188.2) (#82) ([`96c2d90`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/96c2d901af29cf3f892ca7ad776183d5ca6f698f))\n- MediaHub publishes its first events: mediahub.video.published and mediahub.picture.uploaded (#83) ([`2ca35e7`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/2ca35e7e8efc74e5affe4965870fa1f82245141d))\n\n## OpenVibe.Games\n\n[openvibe.games](https://openvibe.games) · [repository](https://github.com/OpenVibers/OpenVibe.Games)\n\n- Games: creator worlds — players build a world in the editor, publish it at /worlds, anyone joins (#87) ([`62508a5`](https://github.com/OpenVibers/OpenVibe.Games/commit/62508a5b4f17fb9d4c5efa3be58c9b3452aaa3a8))\n- openvibe-contracts v0.194.0 (was v0.188.2) (#88) ([`a8e0416`](https://github.com/OpenVibers/OpenVibe.Games/commit/a8e04165d67bcd52177958d653ee368445af8452))\n- Games: creator worlds announce their first publication (games.world.published) and staff actions; saves accept Cloudflare's weak ETag (#89) ([`011b37a`](https://github.com/OpenVibers/OpenVibe.Games/commit/011b37a3590925d70398d7c7f359acf6f2640e87))\n- openvibe-contracts v0.195.0 (was v0.194.0) (#90) ([`98bc07e`](https://github.com/OpenVibers/OpenVibe.Games/commit/98bc07ea84c90464c46f5f015b8defc946870922))\n- Games: published creator worlds get their own page (/worlds/<id>) and are in OpenVibe.Search (#91) ([`f8ea243`](https://github.com/OpenVibers/OpenVibe.Games/commit/f8ea243621ca304bb5eb8af4ce27b44706de92f7))\n- Games /worlds: three steps under the lede; hidden rows stay hidden (More worlds showed with no worlds) (#92) ([`27c67c5`](https://github.com/OpenVibers/OpenVibe.Games/commit/27c67c566963006c8b15ed95c30edb917e968759))\n- Games editor: a creator world shows no upload buttons and no Paint tool (both need uploads) (#93) ([`c58f720`](https://github.com/OpenVibers/OpenVibe.Games/commit/c58f7202d928555069ba32d7d4c8d8366ed6b517))\n\n## OpenVibe.Events\n\n[openvibe.events](https://openvibe.events) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- Events README: request telemetry (telemetry_samples, one-minute aggregates, 14 days) (#86) ([`ad09413`](https://github.com/OpenVibers/OpenVibe.Events/commit/ad094138def39a046e98c7cb5a686d5de64884c0))\n- openvibe-contracts v0.194.0 (was v0.190.0) (#89) ([`76fb0ed`](https://github.com/OpenVibers/OpenVibe.Events/commit/76fb0edb80a0cbcb15caafd4646e5e60cd27dbef))\n- openvibe-contracts v0.195.0 (was v0.194.0) (#90) ([`2375d4a`](https://github.com/OpenVibers/OpenVibe.Events/commit/2375d4afce561cf989c96744afcd0d0edc8c48d6))\n- Events: a hyphenated service publishes in its namespace without the hyphen (media-hub → mediahub.*) (#91) ([`a0ea2f0`](https://github.com/OpenVibers/OpenVibe.Events/commit/a0ea2f0105c85f53d54287c20c0ca6a9cd764d69))\n- openvibe-contracts v0.196.0 (was v0.195.0) (#92) ([`2b114cd`](https://github.com/OpenVibers/OpenVibe.Events/commit/2b114cdf2be910e983e78c323b564b8bc2d90a20))\n\n## OpenVibe.Quest\n\n[openvibe.quest](https://openvibe.quest) · [repository](https://github.com/OpenVibers/OpenVibe.Quest)\n\n- Quest: app quests — developer apps define quests on their own events (quest.app_quest.manage, contracts 0.193.1) (#55) ([`fadc8b3`](https://github.com/OpenVibers/OpenVibe.Quest/commit/fadc8b3e7101553ee6a26b9707e5e73787496bc9))\n- openvibe-contracts v0.194.0 (was v0.193.1) (#56) ([`f5bf68c`](https://github.com/OpenVibers/OpenVibe.Quest/commit/f5bf68c61d98e43a364fd6916a68e6734adee392))\n- Quest: Publish a creator world (games.world.published, contracts 0.194.0) (#57) ([`1418965`](https://github.com/OpenVibers/OpenVibe.Quest/commit/1418965de0cc2749aa55db0d19aa43a68ecba35b))\n- openvibe-contracts v0.196.0 (was v0.194.0) (#58) ([`ef90b2e`](https://github.com/OpenVibers/OpenVibe.Quest/commit/ef90b2e0f7612ada1044e21d1002de945b6e719b))\n- Quest: Publish a video and Share a picture (mediahub.video.published, mediahub.picture.uploaded; contracts 0.196.0) (#59) ([`4a3f495`](https://github.com/OpenVibers/OpenVibe.Quest/commit/4a3f495a4c409d07dea2fe9e800cbfabfd9fb59b))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- openvibe-contracts v0.195.0 (was v0.188.2) (#65) ([`b434e3e`](https://github.com/OpenVibers/OpenVibe.Search/commit/b434e3e0d97a8c3efa3376c64ae6f882d2efab2d))\n- Search: front-page cards for OpenVibe.Video (media-hub, through the owner API) and OpenVibe.Host; Games names its worlds (#66) ([`1c7e9a9`](https://github.com/OpenVibers/OpenVibe.Search/commit/1c7e9a90766384a49dc5776f766cc75def20b1fb))\n- Search: an OpenVibe.Food card (checked recipes, through the owner API) (#67) ([`d568256`](https://github.com/OpenVibers/OpenVibe.Search/commit/d5682568ca07dfed74d79adee4165d6c9d4bd297))\n- Search: an OpenVibe.Bot card (robot model pages, through the owner API) (#68) ([`5656b91`](https://github.com/OpenVibers/OpenVibe.Search/commit/5656b9196af98d564495441164f5d258fe15497f))\n- openvibe-sdk v0.49.1 (was v0.46.0) (#69) ([`69e1133`](https://github.com/OpenVibers/OpenVibe.Search/commit/69e1133d74fd208c42339fc44cf2f23811830898))\n\n## OpenVibe.Food\n\n[openvibe.food](https://openvibe.food) · [repository](https://github.com/OpenVibers/OpenVibe.Food)\n\n- Food: the recipe library as a JSON feed (/recipes/library.json?since=) for OpenVibe.Blog's budget-recipes desk (#57) ([`56a9ff3`](https://github.com/OpenVibers/OpenVibe.Food/commit/56a9ff32fd23abb8081aeb1ba1845277f15ae5f0))\n- Food: checked library recipes are in OpenVibe.Search (owner food, type recipe) (#58) ([`174d312`](https://github.com/OpenVibers/OpenVibe.Food/commit/174d31292ac624ee912d74cc3655e72ce2e9a7df))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- Live: restream stream keys never reach the log through ffmpeg's own error text (#140) ([`0dcb4fd`](https://github.com/OpenVibers/OpenVibe.Live/commit/0dcb4fd1a5c634c2a59d22ce2b03541e2f831e14))\n- Live: the Kick chat relay asks Kick for its Pusher key (the old one failed with 4001); restream RTP ports are checked free before ffmpeg binds them (#141) ([`432cdc9`](https://github.com/OpenVibers/OpenVibe.Live/commit/432cdc9e0c80b310e4028f51ba2e0d58180e05d3))\n\n## OpenVibe.Services\n\n[openvibe.services](https://openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.Services)\n\n- openvibe-contracts v0.193.1 (was v0.188.2) (#78) ([`e5792c2`](https://github.com/OpenVibers/OpenVibe.Services/commit/e5792c27aa485657079311df3b1cd9e4a148035f))\n- openvibe-sdk v0.48.0 (was v0.46.0) (#80) ([`f19538c`](https://github.com/OpenVibers/OpenVibe.Services/commit/f19538cdbe450dd0b69a9f4754f3a947f49f7b7e))\n\n## OpenVibe.AI\n\n[ai.openvibe.services](https://ai.openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- AI: pics.describe_image — alt text, a caption and tags for one OpenVibe.Pics picture (#95) ([`4fa1df5`](https://github.com/OpenVibers/OpenVibe.AI/commit/4fa1df5a063f577a33c05b7ad5363f6a30529e57))\n\n## OpenVibe.Blog\n\n[openvibe.blog](https://openvibe.blog) · [repository](https://github.com/OpenVibers/OpenVibe.Blog)\n\n- Blog: a Budget recipes desk from OpenVibe.Food's recipe library (Food's blog on openvibe.blog) (#61) ([`a3de707`](https://github.com/OpenVibers/OpenVibe.Blog/commit/a3de707d130c806cfae7c334b94d095c6c025b4c))\n\n## OpenVibe.Bot\n\n[openvibe.bot](https://openvibe.bot) · [repository](https://github.com/OpenVibers/OpenVibe.Bot)\n\n- Bot: the robot model pages are in OpenVibe.Search (owner bot, type model) (#130) ([`8945fd8`](https://github.com/OpenVibers/OpenVibe.Bot/commit/8945fd80ae1b7e82a7c117b904d2b8a68d42b109))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- Sources STATUS.json: contracts v0.191.0 (what package.json pins) (#67) ([`a021e5e`](https://github.com/OpenVibers/OpenVibe.Sources/commit/a021e5ea818aaf0824bb2316c003b40d408f7bec))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- Tools: food.openvibe.tools sends people to OpenVibe.Food (301); the food finder API stays (#72) ([`765798c`](https://github.com/OpenVibers/OpenVibe.Tools/commit/765798c6e64ae48be43eb861a284f310677bb959))\n\n## OpenVibe.Wiki\n\n[openvibe.wiki](https://openvibe.wiki) · [repository](https://github.com/OpenVibers/OpenVibe.Wiki)\n\n- Wiki seed: Food, Rent, MediaHub and Games revised from today's READMEs (#65) ([`c66404b`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/c66404b54780649b0d768a365544e4b6f50d5a30))\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-16T04:00:00.549Z","revised_at":"2026-10-16T04:00:00.535Z","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","network","media-hub","games","events","quest","search","food","live","services","ai"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}