{"id":"pst_01M5YJN25V9X30VMWRYBTFPW0Q","url":"https://openvibe.blog/@openvibe/patch-notes-81-changes-across-39-sites-oct-27","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 81 changes across 39 sites (Oct 27)","summary":"What shipped on OpenVibe on 2026-10-27: 81 changes to OpenVibe.Actor, OpenVibe.Bot, OpenVibe.Community, OpenVibe.Chat, OpenVibe.Games, OpenVibe.Blog and 33 more.","body_markdown":"What shipped on OpenVibe on 2026-10-27: 81 changes to OpenVibe.Actor, OpenVibe.Bot, OpenVibe.Community, OpenVibe.Chat, OpenVibe.Games, OpenVibe.Blog and 33 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## OpenVibe.Actor\n\n[openvibe.actor](https://openvibe.actor) · [repository](https://github.com/OpenVibers/OpenVibe.Actor)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#129) ([`2aa0e9a`](https://github.com/OpenVibers/OpenVibe.Actor/commit/2aa0e9a2ff7df4e5f3ea4cc2202a7fb52303c73f))\n- Each task its own desk (Desks plan D1): on a machine that runs several, desk \"private\" is a desk named for the run, stopped when the run ends; a model never names one (#130) ([`42ad1fa`](https://github.com/OpenVibers/OpenVibe.Actor/commit/42ad1fa0498a1d15bf46168b7bf1fa12fcf1cb9e))\n- computer_browser: element refs (ref e7) and receipts (changed) from Node's browser (Desks plan D3); the elements list instead of links, sized to one tool result (#131) ([`65a9746`](https://github.com/OpenVibers/OpenVibe.Actor/commit/65a974600355ac9c23e31780d011a6316118bb92))\n- Hand it to me: hand_to_person and Watch links (Desks plan D4) (#132) ([`e764664`](https://github.com/OpenVibers/OpenVibe.Actor/commit/e7646647d1c44379a3a101cd8565fd511c0f1aca))\n- A task waiting for its person says so on its record (needs_you: what and the desk's link), so Vibe can ask them in the chat (Desks plan D4) (#133) ([`986a193`](https://github.com/OpenVibers/OpenVibe.Actor/commit/986a1937334933541488fe88d6f73f117c98e5e4))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#134) ([`5f71c81`](https://github.com/OpenVibers/OpenVibe.Actor/commit/5f71c81d3225c44e6adfcef887f25a85c5813696))\n\n## OpenVibe.Bot\n\n[openvibe.bot](https://openvibe.bot) · [repository](https://github.com/OpenVibers/OpenVibe.Bot)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#175) ([`010278b`](https://github.com/OpenVibers/OpenVibe.Bot/commit/010278b2d7cffcf4ccbf26ba4bccae8f410f71ea))\n- Named desks (Desks plan D1, contracts 0.215.0): commands, the audit and the live screen name a desk-<name>; a machine on an older Node runs its private desk only; each desk is its own screen for the person-first rule (#176) ([`d426f7e`](https://github.com/OpenVibers/OpenVibe.Bot/commit/d426f7e9ded91623bf2819df4d4757e499c85245))\n- Watch and take over an agent's desk (Desks plan D4): a task's link opens its desk on the owner's screen page, and the owner's mouse and keyboard go to the desk shown, as the owner (#177) ([`63dcd8c`](https://github.com/OpenVibers/OpenVibe.Bot/commit/63dcd8cce8c4d29b7cf14821915a18f23c842380))\n- Desk turn (Desks plan D4): GET /api/v1/machines/:id/desk-turn says whether a person is using a desk and when they last did, so an agent that handed its person a step waits for them (#178) ([`6f8cb07`](https://github.com/OpenVibers/OpenVibe.Bot/commit/6f8cb0751c7db20b9438c02b5576d7c95c4aab4d))\n- A desk host's desks are seen and driven: screen, input and the live view on a desk check the desk's own capabilities (desk.screen, desk.input), not the machine's own screen, which a desk host does not have (#179) ([`7b6499e`](https://github.com/OpenVibers/OpenVibe.Bot/commit/7b6499e7024d884cf8265ebe407cbcf1d203f25b))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#180) ([`55abc24`](https://github.com/OpenVibers/OpenVibe.Bot/commit/55abc249a05c756302d55d1e2b5c51302a4e757a))\n\n## OpenVibe.Community\n\n[openvibe.community](https://openvibe.community) · [repository](https://github.com/OpenVibers/OpenVibe.Community)\n\n- A paste's code block is a labelled region in the tab order, so keyboard users can reach and scroll it (axe scrollable-region-focusable) (#145) ([`937b011`](https://github.com/OpenVibers/OpenVibe.Community/commit/937b011320f9b59c53f0c68b9e106217a8e78d2a))\n- A paste link that picked up trailing punctuation (a full stop, a bracket, Markdown's **) redirects to the paste instead of answering Paste not found (#146) ([`c8adb3e`](https://github.com/OpenVibers/OpenVibe.Community/commit/c8adb3e89da70ad81f4567ca19e9cff01bed94c6))\n- Markdown pastes read as documents (source a click away); the renderer gains pipe tables and nested lists; prose pastes wrap by default; links in Markdown are underlined (#147) ([`cf353a2`](https://github.com/OpenVibers/OpenVibe.Community/commit/cf353a2a4674c417dbcaf879f5320b17fd8da0e4))\n- A Markdown paste's opening heading is left out when it only repeats the title (the page's h1 shows it) (#148) ([`42ca7b1`](https://github.com/OpenVibers/OpenVibe.Community/commit/42ca7b1eed6ab7200fd24d40d101a30704394a83))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#149) ([`38cb465`](https://github.com/OpenVibers/OpenVibe.Community/commit/38cb465906e830a637d277769fa1e5797a8e9692))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#150) ([`7b3a375`](https://github.com/OpenVibers/OpenVibe.Community/commit/7b3a37531259bdee4f905dff939c02cb3998ee63))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- The core slur list catches every inflection of the n-word family (an -erin' form passed a channel's nudge and the global feed); real words that share its first letters still pass (#199) ([`cfe3c78`](https://github.com/OpenVibers/OpenVibe.Chat/commit/cfe3c7800bf0404d248116d5f692c8b44351c06b))\n- Vibe's answers render tables and nested lists (model answers use both; they showed as pipes and flat bullets) (#200) ([`0377217`](https://github.com/OpenVibers/OpenVibe.Chat/commit/0377217f10848371f283dae129b685f405a468b9))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#201) ([`0888368`](https://github.com/OpenVibers/OpenVibe.Chat/commit/088836884c9c5915a446f85b2928e2ba5d63b759))\n- Vibe asks the person in the chat when their agent hands them a step on its desk (Desks plan D4), once per hand-off, with the link (#202) ([`bde0c4f`](https://github.com/OpenVibers/OpenVibe.Chat/commit/bde0c4ff7800f9e3df70322c6aeafc84b47f37e9))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#203) ([`8214b0c`](https://github.com/OpenVibers/OpenVibe.Chat/commit/8214b0c3c4c3911050af2cf37e1db5ae4fb95545))\n\n## OpenVibe.Games\n\n[openvibe.games](https://openvibe.games) · [repository](https://github.com/OpenVibers/OpenVibe.Games)\n\n- STATUS and README name today's pins (docs-status now reads workspace packages) (#169) ([`4264423`](https://github.com/OpenVibers/OpenVibe.Games/commit/4264423e6a8389bc5389fb6698947a3a1127cf5c))\n- Top-down worlds: a press on the game canvas acts without pointer lock (tools, gathering, the hotbar wheel); the HUD and menus keep their own clicks (#170) ([`4e65aa0`](https://github.com/OpenVibers/OpenVibe.Games/commit/4e65aa023e100a6d5417826a3540ef3f55fdc583))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#171) ([`0eb4301`](https://github.com/OpenVibers/OpenVibe.Games/commit/0eb4301bed6bff3f83b906229b8e1c1ad32112c7))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#172) ([`2a71e8e`](https://github.com/OpenVibers/OpenVibe.Games/commit/2a71e8e54b791672023a0a55ef82cca7220842ea))\n\n## OpenVibe.Blog\n\n[openvibe.blog](https://openvibe.blog) · [repository](https://github.com/OpenVibers/OpenVibe.Blog)\n\n- A blog on the vibe preset follows the reader's OpenVibe theme (the official blog's front page pinned vibe's blue over the season's colours) (#91) ([`3700a21`](https://github.com/OpenVibers/OpenVibe.Blog/commit/3700a216820bf36ee464f3ac7acfbf63797b5152))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#92) ([`c65c82e`](https://github.com/OpenVibers/OpenVibe.Blog/commit/c65c82e147cdde97930143d0ab25b2dbdab31dfc))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#93) ([`ea60945`](https://github.com/OpenVibers/OpenVibe.Blog/commit/ea609456dab4d1b3216364f1f7a7a37246b4319d))\n\n## OpenVibe.Codes\n\n[openvibe.codes](https://openvibe.codes) · [repository](https://github.com/OpenVibers/OpenVibe.Codes)\n\n- ADR pages draw the decision records' pipe tables (14 ADRs have them; they showed as a paragraph of pipes) (#117) ([`bf7efec`](https://github.com/OpenVibers/OpenVibe.Codes/commit/bf7efec86bc74cae2a8b4741559afb217870f1a4))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#118) ([`7c927d4`](https://github.com/OpenVibers/OpenVibe.Codes/commit/7c927d4df8c5a0b4a7b541dc95eb12d8a56ae848))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#119) ([`284c15f`](https://github.com/OpenVibers/OpenVibe.Codes/commit/284c15f5eba5d1f9ceed06a42bba91534273d055))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- openvibe-contracts v0.214.1 (was v0.214.0) (#189) ([`d0ebe8a`](https://github.com/OpenVibers/OpenVibe.Media/commit/d0ebe8a68601a89b563c8f2227169cf684794442))\n- No thumbnail retries for what has no picture: a clip whose cut failed answers 404 with no job, and a recording under review that gives no frame fails as media_unavailable (404) instead of a retryable 500 (#190) ([`81d0c93`](https://github.com/OpenVibers/OpenVibe.Media/commit/81d0c931f3fe096b4f93ef1fed95501ac2a05bc9))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#191) ([`6489a61`](https://github.com/OpenVibers/OpenVibe.Media/commit/6489a61e045662824db6a8c093321055159043a0))\n\n## OpenVibe.AI\n\n[ai.openvibe.services](https://ai.openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#162) ([`a4ed660`](https://github.com/OpenVibers/OpenVibe.AI/commit/a4ed6601e100e886c5c756f3916dbdb74a3fd6ec))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#163) ([`208295d`](https://github.com/OpenVibers/OpenVibe.AI/commit/208295d1aaaad216b1e98797b2c7318086f0e3e0))\n\n## OpenVibe.Billing\n\n[billing.openvibe.network](https://billing.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Billing)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#106) ([`7a47b32`](https://github.com/OpenVibers/OpenVibe.Billing/commit/7a47b32911635383b4e8a579d9d8d14de30df911))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#107) ([`fe55ad7`](https://github.com/OpenVibers/OpenVibe.Billing/commit/fe55ad7216344c570f846e7a139af050840c64a7))\n\n## OpenVibe.Coupons\n\n[openvibe.coupons](https://openvibe.coupons) · [repository](https://github.com/OpenVibers/OpenVibe.Coupons)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#104) ([`5c96f6d`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/5c96f6d77b68e4fdc3126e14eff77d596dfa41ab))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#105) ([`f3f8897`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/f3f8897b8b2d8eada7703a10d753114579c64731))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#103) ([`05d2c78`](https://github.com/OpenVibers/OpenVibe.Deals/commit/05d2c78ee7fe369405c778ee20754dc7ed5350b7))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#104) ([`682f811`](https://github.com/OpenVibers/OpenVibe.Deals/commit/682f811837b0c896ff8c56f4f1481f04de35a633))\n\n## OpenVibe.Events\n\n[openvibe.events](https://openvibe.events) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#124) ([`2ea29b1`](https://github.com/OpenVibers/OpenVibe.Events/commit/2ea29b143ca6556132e688ec2643f8049cdacbd4))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#125) ([`0b4e210`](https://github.com/OpenVibers/OpenVibe.Events/commit/0b4e210103e3823f9d5e8faf771081dfd7a09877))\n\n## OpenVibe.Food\n\n[openvibe.food](https://openvibe.food) · [repository](https://github.com/OpenVibers/OpenVibe.Food)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#100) ([`8f15c39`](https://github.com/OpenVibers/OpenVibe.Food/commit/8f15c397293cda1f58aec29caf01d159620fe29c))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#101) ([`3b5159a`](https://github.com/OpenVibers/OpenVibe.Food/commit/3b5159a33fa54a459328a3d4ce99a4acaa6da991))\n\n## OpenVibe.Help\n\n[openvibe.help](https://openvibe.help) · [repository](https://github.com/OpenVibers/OpenVibe.Help)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#100) ([`c6402cb`](https://github.com/OpenVibers/OpenVibe.Help/commit/c6402cb864e702554fc176b6a0fde7c5cc8754f2))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#101) ([`0d3782b`](https://github.com/OpenVibers/OpenVibe.Help/commit/0d3782bb6aa4e786c98f59d17ac4b6adaede43ad))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#165) ([`19813fc`](https://github.com/OpenVibers/OpenVibe.Host/commit/19813fcac263e4ed59a8695499469bf29844912a))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#166) ([`fd510c0`](https://github.com/OpenVibers/OpenVibe.Host/commit/fd510c01e1829c4da5932598c532cd1d4bad9022))\n\n## OpenVibe.Inventory\n\n[inventory.openvibe.network](https://inventory.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Inventory)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#89) ([`59b7e13`](https://github.com/OpenVibers/OpenVibe.Inventory/commit/59b7e133845adf20cfe1402bfa1a800ce939d8cd))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#90) ([`267767c`](https://github.com/OpenVibers/OpenVibe.Inventory/commit/267767ce183abab6838ae7e0c1252d98eaddcc65))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#397) ([`d40745e`](https://github.com/OpenVibers/OpenVibe.Live/commit/d40745eb9fd0604edee44cc8a71aa492d3c428fb))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#398) ([`e8011b1`](https://github.com/OpenVibers/OpenVibe.Live/commit/e8011b1313c29e27d564cce2d6458f6c4f62f0e4))\n\n## OpenRestream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRestream)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#112) ([`3d1d12d`](https://github.com/OpenVibers/OpenRestream/commit/3d1d12da6b0e5da698036465022922749620ddbe))\n- openvibe-contracts v0.216.0 (was v0.215.0) (#113) ([`6d54a7e`](https://github.com/OpenVibers/OpenRestream/commit/6d54a7e1df32c26670d5a629fc5c26e6219e6f79))\n\n## OpenVibe.Rent\n\n[openvibe.rent](https://openvibe.rent) · [repository](https://github.com/OpenVibers/OpenVibe.Rent)\n\n- Rent's navbar fits a laptop: short labels (Sign in wrapped onto two lines and Community was cut off at 1024-1366 px) (#106) ([`b0df23f`](https://github.com/OpenVibers/OpenVibe.Rent/commit/b0df23f4d20bdd09f389757176d06fe853e2ee99))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#107) ([`e1ae065`](https://github.com/OpenVibers/OpenVibe.Rent/commit/e1ae0655b39652870a495bedc438d25eba4ceac0))\n\n## OpenVibe.Services\n\n[openvibe.services](https://openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.Services)\n\n- ADR pages draw the decision records' pipe tables (14 ADRs have them; they showed as a paragraph of pipes) (#116) ([`93f8718`](https://github.com/OpenVibers/OpenVibe.Services/commit/93f8718c9ed28178d0f40491c4c2a81996b18fc2))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#117) ([`9b69296`](https://github.com/OpenVibers/OpenVibe.Services/commit/9b692962b70c63cab98b71de2485610726b3ca31))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- STATUS and README name today's pins (docs-status now reads workspace packages) (#110) ([`da85e7f`](https://github.com/OpenVibers/OpenVibe.Tools/commit/da85e7f84a701c1bdcbaf2c37662fde787af21c5))\n- openvibe-contracts v0.215.0 (was v0.214.1) (#111) ([`96aad8b`](https://github.com/OpenVibers/OpenVibe.Tools/commit/96aad8b5ce34b4ae3682f7256eecc1674c620637))\n\n## OpenVibe.MediaHub\n\n[openvibe.video](https://openvibe.video) · [repository](https://github.com/OpenVibers/OpenVibe.MediaHub)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#153) ([`1f32916`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/1f329162bc1c862dbb6b8278286e8158520b88ef))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#350) ([`7cb1616`](https://github.com/OpenVibers/OpenVibe.Network/commit/7cb16169532071490abf96b957bec92415d112fd))\n\n## OpenVibe.News\n\n[openvibe.news](https://openvibe.news) · [repository](https://github.com/OpenVibers/OpenVibe.News)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#104) ([`bb36522`](https://github.com/OpenVibers/OpenVibe.News/commit/bb365221a21472e6c293d5e50a0803017a5ef4e3))\n\n## OpenVibe.Play\n\n[play.openvibe.network](https://play.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Play)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#52) ([`ea59665`](https://github.com/OpenVibers/OpenVibe.Play/commit/ea59665578b1d982d37f6fb38a0393b3c38de5d2))\n\n## OpenVibe.Quest\n\n[openvibe.quest](https://openvibe.quest) · [repository](https://github.com/OpenVibers/OpenVibe.Quest)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#97) ([`80e5e2a`](https://github.com/OpenVibers/OpenVibe.Quest/commit/80e5e2a3c39de709df230f4e91ac87eb1320c820))\n\n## OpenVibe.Reviews\n\n[openvibe.reviews](https://openvibe.reviews) · [repository](https://github.com/OpenVibers/OpenVibe.Reviews)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#109) ([`68bc6df`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/68bc6df4ce6342dbdef4570e172fe44dd5def59d))\n\n## OpenVibe.Run\n\n[openvibe.run](https://openvibe.run) · [repository](https://github.com/OpenVibers/OpenVibe.Run)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#83) ([`8d52dac`](https://github.com/OpenVibers/OpenVibe.Run/commit/8d52daca2a535d5c85551120111ba66de42792b4))\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.215.0 (was v0.214.1) (#101) ([`7af6cca`](https://github.com/OpenVibers/OpenVibe.Search/commit/7af6cca18ac51aff699d8924a8b0b35f7da4b91b))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#113) ([`ac6b512`](https://github.com/OpenVibers/OpenVibe.Sources/commit/ac6b5123725fe965f752dd0567332216c59bb9cd))\n\n## OpenVibe.Space\n\n[openvibe.space](https://openvibe.space) · [repository](https://github.com/OpenVibers/OpenVibe.Space)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#96) ([`87e322e`](https://github.com/OpenVibers/OpenVibe.Space/commit/87e322e76ad3da4e930d2860a165f641853b7bfa))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#98) ([`a781094`](https://github.com/OpenVibers/OpenVibe.Tips/commit/a7810944186433b8351d204e15747a9fe69e782b))\n\n## OpenVibe.Trade\n\n[openvibe.trade](https://openvibe.trade) · [repository](https://github.com/OpenVibers/OpenVibe.Trade)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#106) ([`45f9eff`](https://github.com/OpenVibers/OpenVibe.Trade/commit/45f9eff55d2f7eb376bd6f2d26ed44d863e08a3a))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#94) ([`a726678`](https://github.com/OpenVibers/OpenVibe.VIP/commit/a726678d99421914373ce05089237b7abc53b230))\n\n## OpenVibe.Watch\n\n[openvibe.watch](https://openvibe.watch) · [repository](https://github.com/OpenVibers/OpenVibe.Watch)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#106) ([`5e0dc58`](https://github.com/OpenVibers/OpenVibe.Watch/commit/5e0dc581036bb08afe6b14b84390ee0500d0f6ae))\n\n## OpenVibe.Wiki\n\n[openvibe.wiki](https://openvibe.wiki) · [repository](https://github.com/OpenVibers/OpenVibe.Wiki)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#116) ([`5c94ec5`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/5c94ec58dca62d479f30a4fe86d596caae197e8d))\n\n## OpenVibe.Work\n\n[openvibe.work](https://openvibe.work) · [repository](https://github.com/OpenVibers/OpenVibe.Work)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#89) ([`acd8d4d`](https://github.com/OpenVibers/OpenVibe.Work/commit/acd8d4dfb525fb7ab79de131853fee420a3668f5))\n\n## OpenVibe.Zone\n\n[openvibe.zone](https://openvibe.zone) · [repository](https://github.com/OpenVibers/OpenVibe.Zone)\n\n- openvibe-contracts v0.215.0 (was v0.214.1) (#50) ([`fb9c14a`](https://github.com/OpenVibers/OpenVibe.Zone/commit/fb9c14a1812781184517f1b1e468978f132f4284))\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-27T11:41:41.968Z","revised_at":"2026-10-27T11:41:41.954Z","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","actor","bot","community","chat","games","blog","codes","media","ai","billing"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}