{"id":"pst_01M4YX4M7970PXCV0PZCGHP7YE","url":"https://openvibe.blog/@openvibe/patch-notes-92-changes-across-37-sites","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 92 changes across 37 sites","summary":"What shipped on OpenVibe from 2026-10-14 to 2026-10-15: 92 changes to OpenVibe.Media, OpenVibe.Actor, OpenVibe.Network, OpenVibe.Bot, OpenVibe.Chat, OpenVibe.News and 31 more.","body_markdown":"What shipped on OpenVibe from 2026-10-14 to 2026-10-15: 92 changes to OpenVibe.Media, OpenVibe.Actor, OpenVibe.Network, OpenVibe.Bot, OpenVibe.Chat, OpenVibe.News and 31 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Media:** Media: the S3 surface and zones (ADR-031) — SigV4, access keys, zone projection and deletion, one object for two doors (#108) ([`9a6c2ed`](https://github.com/OpenVibers/OpenVibe.Media/commit/9a6c2edac245235c88084a146bdcf0edab52c72a))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- Media: the S3 surface and zones (ADR-031) — SigV4, access keys, zone projection and deletion, one object for two doors (#108) ([`9a6c2ed`](https://github.com/OpenVibers/OpenVibe.Media/commit/9a6c2edac245235c88084a146bdcf0edab52c72a))\n- Media S3: multipart uploads (Create, UploadPart, Complete, Abort, ListParts, ListMultipartUploads) with S3's rules (#109) ([`1729745`](https://github.com/OpenVibers/OpenVibe.Media/commit/17297456a6ffeb56ae533e6cef12b4f24418912a))\n- Media S3: a HEAD that Cloudflare forwards as GET is served (header-signed only; presigned HEAD URLs never read the body) (#110) ([`73d7e90`](https://github.com/OpenVibers/OpenVibe.Media/commit/73d7e9051d2ed4aea25d1e86efdbc12875968065))\n- Media S3: per-zone usage — requests, egress and stored bytes counted, every closed hour sent as media.usage.recorded (contracts 0.175.0) (#111) ([`6211b40`](https://github.com/OpenVibers/OpenVibe.Media/commit/6211b40726640d9d1d4d67f7a30729ec3f11c6c2))\n- Media S3 (security): no S3 answer can be cached at the edge — private, no-store and CDN no-store always; the stored Cache-Control is never sent (#112) ([`6577cff`](https://github.com/OpenVibers/OpenVibe.Media/commit/6577cffba2fd50bf5e40aff19de388e99af2c5b0))\n- Media S3: CopyObject and UploadPartCopy — server-side copies through the one commit path (#113) ([`e54f2df`](https://github.com/OpenVibers/OpenVibe.Media/commit/e54f2df104539a8d93476db9ec7f7b02cac0d621))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#114) ([`b598962`](https://github.com/OpenVibers/OpenVibe.Media/commit/b598962787ecab6fbf6b5cbb681dc26f276596c3))\n\n## OpenVibe.Actor\n\n[openvibe.actor](https://openvibe.actor) · [repository](https://github.com/OpenVibers/OpenVibe.Actor)\n\n- Actor: computer_browser — the agent's own browser on the person's computer (open, click, fill, press, back, read) (#64) ([`4dcf2f3`](https://github.com/OpenVibers/OpenVibe.Actor/commit/4dcf2f3ef4e806c418cb8c89353c90a43c856eba))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#65) ([`3e05de8`](https://github.com/OpenVibers/OpenVibe.Actor/commit/3e05de81fa40ef11b40aa7e5f143657fa22f1422))\n- Actor README: computer_browser, and approvals from the Node's tray (#66) ([`73479d1`](https://github.com/OpenVibers/OpenVibe.Actor/commit/73479d1c553f09034a3a5090b383f764ccec82a0))\n- Actor Console: phone pass (status dots keep their column), approvals from the Node's tray, your own resources on Services (#67) ([`44fe036`](https://github.com/OpenVibers/OpenVibe.Actor/commit/44fe0361dd2b1acaf9e380ff4dc45236457679d2))\n- Actor Console: Lately (the events feed) and /me/spend (30 days) (#68) ([`6072529`](https://github.com/OpenVibers/OpenVibe.Actor/commit/6072529198a94247879b0a426baaa7d0adf51c0d))\n- openvibe-shared v4.1.5 (was v4.1.3) (#69) ([`3e37a58`](https://github.com/OpenVibers/OpenVibe.Actor/commit/3e37a58badb77763fa92f4f9ff989be6624e0ed8))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Network: OpenVibe.Zone joins (sign-in client, grants for Zone and Services, openvibe.zone unparked; contracts 0.173.0) (#191) ([`1b01e30`](https://github.com/OpenVibers/OpenVibe.Network/commit/1b01e30e394a369f7ba100f1c9b3058ea0df753d))\n- Network: Media's per-zone usage rollups (media.usage.recorded) count in a project's usage; contracts 0.175.0 (#192) ([`bf4c3f5`](https://github.com/OpenVibers/OpenVibe.Network/commit/bf4c3f5e9b51512a5cdbef57ad5a8af30939f7d8))\n- Network: Services may control a person's robot, room, restream definition and paste for them (contracts 0.176.0) (#193) ([`4c5bb86`](https://github.com/OpenVibers/OpenVibe.Network/commit/4c5bb86cdb691fa14328a351f4a8ef71d0f718dc))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#194) ([`5062950`](https://github.com/OpenVibers/OpenVibe.Network/commit/5062950a1033d883a127ab33bb204b0bec09a2a7))\n- openvibe-shared v4.1.5 (was v4.1.4) (#195) ([`c526458`](https://github.com/OpenVibers/OpenVibe.Network/commit/c5264583b39bcde7f4d4b61c80379c2ca4e8107c))\n\n## OpenVibe.Bot\n\n[openvibe.bot](https://openvibe.bot) · [repository](https://github.com/OpenVibers/OpenVibe.Bot)\n\n- Bot: browser — the agent's own browser on a person's machine, audited by host and length only (contracts 0.174.0) (#106) ([`67abdc3`](https://github.com/OpenVibers/OpenVibe.Bot/commit/67abdc346a2c111bc177aa8549f841e81045cb2a))\n- Bot: a robot's owner stops and resumes it from OpenVibe.Services (bot.resource.control, contracts 0.176.0) (#107) ([`5f8cff0`](https://github.com/OpenVibers/OpenVibe.Bot/commit/5f8cff0fa4cb0c245bd5e3c3f4b3783921dbb6be))\n- Bot docs: approving from the tray and notifications; the browser kind (#108) ([`80888b1`](https://github.com/OpenVibers/OpenVibe.Bot/commit/80888b122da5832e4b3adea57eeccda62b683c5c))\n- openvibe-shared v4.1.5 (was v4.1.3) (#109) ([`0e09263`](https://github.com/OpenVibers/OpenVibe.Bot/commit/0e092639384fbed271dc6110119a072fcd701041))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Chat: a room's owner archives it from OpenVibe.Services (chat.resource.control, contracts 0.176.0) (#85) ([`2b667f7`](https://github.com/OpenVibers/OpenVibe.Chat/commit/2b667f7296284649f465ae801df26c0278bdb54c))\n- Chat: archiving a room works before migration 0010 runs (it waits behind 0009's contract window) (#86) ([`d9a1969`](https://github.com/OpenVibers/OpenVibe.Chat/commit/d9a1969746e8cf8f2b41b5a7dcb5ac6eecffcc41))\n- Chat: the front page says what OpenVibe.Chat does, under the global room (#88) ([`d2240da`](https://github.com/OpenVibers/OpenVibe.Chat/commit/d2240dad957e8b01188179cf654d42d186bbecb7))\n- openvibe-shared v4.1.5 (was v4.1.3) (#89) ([`9daa273`](https://github.com/OpenVibers/OpenVibe.Chat/commit/9daa273c5958b6f0c6a9ff22460a10bf94f567ae))\n\n## OpenVibe.News\n\n[openvibe.news](https://openvibe.news) · [repository](https://github.com/OpenVibers/OpenVibe.News)\n\n- News: clusters match on their core terms, so one story cannot swallow the wire; resplit regroups the old ones (#51) ([`b9a59e2`](https://github.com/OpenVibers/OpenVibe.News/commit/b9a59e2571ff1c9e9454b187850cfc4260c269c3))\n- News: dates and an outlet's boilerplate never join reports, and a join needs four shared words (#52) ([`7c8664b`](https://github.com/OpenVibers/OpenVibe.News/commit/7c8664b2770b1e78cf7ac330fa764dc72adb3d91))\n- News: common words are counted over a month, so a big story keeps its own words (#53) ([`cd6bd1d`](https://github.com/OpenVibers/OpenVibe.News/commit/cd6bd1d1087d1a9c13094eb0eed34f3246bde100))\n- openvibe-shared v4.1.5 (was v4.1.3) (#54) ([`fe010d9`](https://github.com/OpenVibers/OpenVibe.News/commit/fe010d964bafce3e52233566694e174e0789a948))\n\n## OpenRestream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRestream)\n\n- Record the 2026-10-09 launch, mark B0(a) done, list the webrtc unit (#67) ([`370f0a9`](https://github.com/OpenVibers/OpenRestream/commit/370f0a96d7465fac80b6baff388c5919a493366d))\n- OpenRestream: a definition's owner suspends and resumes it from OpenVibe.Services (openre.resource.control, contracts 0.176.0) (#69) ([`5368543`](https://github.com/OpenVibers/OpenRestream/commit/5368543289a7436712dd9020f9ef137cf224db6e))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#70) ([`3c5bdcd`](https://github.com/OpenVibers/OpenRestream/commit/3c5bdcdca84e9879da569dad2342d5dd13e1b958))\n- openvibe-shared v4.1.5 (was v4.1.3) (#71) ([`c725534`](https://github.com/OpenVibers/OpenRestream/commit/c725534f74ba5aaeff73f86e6b1d4a0f50afc3cf))\n\n## OpenVibe.Services\n\n[openvibe.services](https://openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.Services)\n\n- Services: OpenVibe.Zone's zones in the console, with delete for project admins (contracts 0.173.0) (#60) ([`3f2d578`](https://github.com/OpenVibers/OpenVibe.Services/commit/3f2d5787ecc6247f62738e50d19c7101e3f5da17))\n- Services: act on your own resources — stop/resume a robot, archive a room, suspend/resume a stream, delete a paste (contracts 0.176.0) (#61) ([`5a47cc4`](https://github.com/OpenVibers/OpenVibe.Services/commit/5a47cc4987aeac5e5e7375409a19955e121e29d0))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#62) ([`5049348`](https://github.com/OpenVibers/OpenVibe.Services/commit/50493483ef44c587bb72931b780159fa94c0ef3c))\n- openvibe-shared v4.1.5 (was v4.1.3) (#63) ([`4a071f5`](https://github.com/OpenVibers/OpenVibe.Services/commit/4a071f5b72e77255722197a035cf39819d5cecd1))\n\n## OpenVibe.Wiki\n\n[openvibe.wiki](https://openvibe.wiki) · [repository](https://github.com/OpenVibers/OpenVibe.Wiki)\n\n- Wiki: the official space revised from today's READMEs (Play, Zone, Node added; 21 stale sections rewritten) (#49) ([`7ad2954`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/7ad2954c49fedc0c4f7b4b8ae33f78f733670d1a))\n- Wiki seed: Zone (multipart, copies, usage), Node (browser, desktop approvals), Services (control) (#50) ([`84c2e0a`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/84c2e0abf008b14fe5ba05e9d8198ef748fca46d))\n- Wiki: the front page shows what is inside the official space, and the empty community section says how to start one (#51) ([`94fc7d3`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/94fc7d3d74bc530a6ce1cd69debd82ca96451535))\n- openvibe-shared v4.1.5 (was v4.1.3) (#52) ([`862980a`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/862980a773eadf918bb1a5c06af8fc8cf6b4ac6d))\n\n## OpenVibe.Zone\n\n[openvibe.zone](https://openvibe.zone) · [repository](https://github.com/OpenVibers/OpenVibe.Zone)\n\n- Zone: the docs say large files go up in parts (Media takes multipart uploads now) (#1) ([`9fef237`](https://github.com/OpenVibers/OpenVibe.Zone/commit/9fef237de8f0c7f03a2193325abab55491a77544))\n- Zone: Media's per-zone rollups (media.usage.recorded) arrive signed and sum into the usage series and the console; contracts 0.175.0 (#2) ([`ac3009e`](https://github.com/OpenVibers/OpenVibe.Zone/commit/ac3009e6ae64c919fee37cbcf893f1f88bf7af11))\n- Zone: README sections (purpose, owns, depends on, capabilities, security, tests, deploy); STATUS current (#3) ([`e45c26b`](https://github.com/OpenVibers/OpenVibe.Zone/commit/e45c26b48fd94a8a902d63277ea87b8d8b6d7585))\n- openvibe-shared v4.1.5 (was v4.1.4) (#4) ([`6df8629`](https://github.com/OpenVibers/OpenVibe.Zone/commit/6df86297a1f0a97e6df79a8ecd6f63582dc01c83))\n\n## OpenVibe.AI\n\n[ai.openvibe.services](https://ai.openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- Point manifest and live patch docs at ai.openvibe.services (#64) ([`a9dc89b`](https://github.com/OpenVibers/OpenVibe.AI/commit/a9dc89bc9a095e601c616fa906f5b1f863609fd5))\n- AI: media whisper cannot read fails as media.unreadable and never opens whisper's circuit for everyone (#67) ([`264a407`](https://github.com/OpenVibers/OpenVibe.AI/commit/264a407075202d8794b3e1420889ac4d0e61ff4e))\n- openvibe-shared v4.1.5 (was v4.1.3) (#68) ([`bddbd22`](https://github.com/OpenVibers/OpenVibe.AI/commit/bddbd224aa6f87cb01e1c4ff641f2b627a670482))\n\n## OpenVibe.Community\n\n[openvibe.community](https://openvibe.community) · [repository](https://github.com/OpenVibers/OpenVibe.Community)\n\n- Community: a paste's owner deletes it from OpenVibe.Services (community.resource.control, contracts 0.176.0) (#73) ([`4d10c5d`](https://github.com/OpenVibers/OpenVibe.Community/commit/4d10c5d34f27421c82be553488230dea43f960dc))\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#74) ([`d61a907`](https://github.com/OpenVibers/OpenVibe.Community/commit/d61a90731ae001226b34958319dfdf3d2e5dcc39))\n- openvibe-shared v4.1.5 (was v4.1.3) (#75) ([`25e17af`](https://github.com/OpenVibers/OpenVibe.Community/commit/25e17afdac9a0b11206890e3cea9fae3587f531f))\n\n## OpenVibe.Events\n\n[openvibe.events](https://openvibe.events) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#74) ([`7de77c9`](https://github.com/OpenVibers/OpenVibe.Events/commit/7de77c98336bda6283ca3c653550ed1948b8b19c))\n- Events: the front page meets the edges, shows each curl sample whole, and lays the webhook steps two by two (#75) ([`f0ef3ad`](https://github.com/OpenVibers/OpenVibe.Events/commit/f0ef3ad1678e3adcca542cba4f7075992235f051))\n- openvibe-shared v4.1.5 (was v4.1.3) (#76) ([`2bd4d29`](https://github.com/OpenVibers/OpenVibe.Events/commit/2bd4d29dcdff8e99521510964e25ea778a5ba0a4))\n\n## OpenVibe.Games\n\n[openvibe.games](https://openvibe.games) · [repository](https://github.com/OpenVibers/OpenVibe.Games)\n\n- Games M6: KTX2 surface textures — compressed on the GPU, decoded in workers, a quarter smaller; decoder vendored, JPEG fallback (#70) ([`e9e941a`](https://github.com/OpenVibers/OpenVibe.Games/commit/e9e941acb4764546c097e1a2c57e136fd3bfc4c2))\n- Games: the Vibe Heroes art fills its card on the home page instead of sitting in a banded square (#71) ([`23a0c85`](https://github.com/OpenVibers/OpenVibe.Games/commit/23a0c8583868e04d53bbc3af4b759e913934638a))\n- openvibe-shared v4.1.5 (was v4.1.3) (#72) ([`6f7fa31`](https://github.com/OpenVibers/OpenVibe.Games/commit/6f7fa316e275e0d1e39afd7d5a3a3a82033755ac))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#122) ([`783e866`](https://github.com/OpenVibers/OpenVibe.Live/commit/783e86682e01f294b713cd52ccc33aebe26f0f1b))\n- Live: a recording's transcript stops at a window AI cannot do yet and retries from there, instead of keeping a hole (#123) ([`5cc0aef`](https://github.com/OpenVibers/OpenVibe.Live/commit/5cc0aef37bab3ec61bd0640ba2c376447a6b60d6))\n- openvibe-shared v4.1.5 (was v4.1.3) (#124) ([`0423e27`](https://github.com/OpenVibers/OpenVibe.Live/commit/0423e271652af75b8feefbdba5479e3b06a7ad4e))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#47) ([`a44221b`](https://github.com/OpenVibers/OpenVibe.Sources/commit/a44221baa977277ef9135ee44e2755b4a9ea0a63))\n- Sources: an Atom entry with only <updated> is dated by it (GOV.UK's reports had no date) (#48) ([`3ed5fa1`](https://github.com/OpenVibers/OpenVibe.Sources/commit/3ed5fa18dd0da16e3c5b5c75047a0bec345cd323))\n- openvibe-shared v4.1.5 (was v4.1.3) (#49) ([`7eda184`](https://github.com/OpenVibers/OpenVibe.Sources/commit/7eda1846e0a465e390b217dde9bb3f8bd82ff60e))\n\n## OpenVibe.Blog\n\n[openvibe.blog](https://openvibe.blog) · [repository](https://github.com/OpenVibers/OpenVibe.Blog)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#43) ([`924b4af`](https://github.com/OpenVibers/OpenVibe.Blog/commit/924b4afbf07a80b12c0b9bbe89f148ec7a1be75f))\n- openvibe-shared v4.1.5 (was v4.1.3) (#44) ([`df96438`](https://github.com/OpenVibers/OpenVibe.Blog/commit/df964387eac9cbfc80e187985f930a1616d4375d))\n\n## OpenVibe.Codes\n\n[openvibe.codes](https://openvibe.codes) · [repository](https://github.com/OpenVibers/OpenVibe.Codes)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#67) ([`c2a3034`](https://github.com/OpenVibers/OpenVibe.Codes/commit/c2a30347a91ce1f0c009475d71b9925a43653ff5))\n- openvibe-shared v4.1.5 (was v4.1.3) (#68) ([`ced051d`](https://github.com/OpenVibers/OpenVibe.Codes/commit/ced051dbdb627c44af5cfffcbbe2a17809b343de))\n\n## OpenVibe.Coupons\n\n[openvibe.coupons](https://openvibe.coupons) · [repository](https://github.com/OpenVibers/OpenVibe.Coupons)\n\n- Coupons: the front page's search, recent codes and shops are designed like the rest of the network (#49) ([`b423514`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/b423514c3f6b1e81e610a40dabe2f0f2e88682fc))\n- openvibe-shared v4.1.5 (was v4.1.3) (#50) ([`9bfd83c`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/9bfd83c76101b196f47d65693173327490da46ef))\n\n## OpenVibe.Inventory\n\n[inventory.openvibe.network](https://inventory.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Inventory)\n\n- Inventory: the home's kind count matches the kinds it shows (said 6 over 4 cards) (#40) ([`e20018c`](https://github.com/OpenVibers/OpenVibe.Inventory/commit/e20018c0717515ae466330efb51bbcd98e201320))\n- openvibe-shared v4.1.5 (was v4.1.3) (#39) ([`2e2ff95`](https://github.com/OpenVibers/OpenVibe.Inventory/commit/2e2ff95b711a5185a0ad8c164d13db64364c7ae4))\n\n## OpenVibe.Reviews\n\n[openvibe.reviews](https://openvibe.reviews) · [repository](https://github.com/OpenVibers/OpenVibe.Reviews)\n\n- Reviews: the front page is a scoreboard (score, meter and what it rests on), with six features (#50) ([`12f6833`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/12f683343399812501761fe926c37fd0f1aef9cb))\n- openvibe-shared v4.1.5 (was v4.1.3) (#51) ([`dd790b9`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/dd790b9545c5b28d6c3a866f79b44a832a80034f))\n\n## OpenVibe.Space\n\n[openvibe.space](https://openvibe.space) · [repository](https://github.com/OpenVibers/OpenVibe.Space)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#46) ([`03058d3`](https://github.com/OpenVibers/OpenVibe.Space/commit/03058d39af7224fcd0793564ffaf7719b2d265cf))\n- openvibe-shared v4.1.5 (was v4.1.3) (#47) ([`da3baa1`](https://github.com/OpenVibers/OpenVibe.Space/commit/da3baa10e1f74aec793a1809cc94fda73c841794))\n\n## OpenVibe.Watch\n\n[openvibe.watch](https://openvibe.watch) · [repository](https://github.com/OpenVibers/OpenVibe.Watch)\n\n- STATUS.json current: the pinned contracts, sdk and shared versions; updated 2026-10-15 (#60) ([`9137e0d`](https://github.com/OpenVibers/OpenVibe.Watch/commit/9137e0d7650c013d4de6192f72e5fd88884f4404))\n- openvibe-shared v4.1.5 (was v4.1.3) (#61) ([`87e45d9`](https://github.com/OpenVibers/OpenVibe.Watch/commit/87e45d95add2660127ca607a6d4fad87cf1d1abb))\n\n## OpenVibe.Billing\n\n[billing.openvibe.network](https://billing.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Billing)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#54) ([`3bafe5c`](https://github.com/OpenVibers/OpenVibe.Billing/commit/3bafe5cdb6e8c1f98bd8d0d13d20c8c22e773797))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#49) ([`e243166`](https://github.com/OpenVibers/OpenVibe.Deals/commit/e243166f6358d6477c434ff39b6f2c28c6f20c82))\n\n## OpenVibe.Food\n\n[openvibe.food](https://openvibe.food) · [repository](https://github.com/OpenVibers/OpenVibe.Food)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#34) ([`faa595b`](https://github.com/OpenVibers/OpenVibe.Food/commit/faa595b4ee6dfed4ad636a588d00ed3d042382eb))\n\n## OpenVibe.Help\n\n[openvibe.help](https://openvibe.help) · [repository](https://github.com/OpenVibers/OpenVibe.Help)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#36) ([`b95308a`](https://github.com/OpenVibers/OpenVibe.Help/commit/b95308aff04ed35103627cb2c9ce230ad4795f8e))\n\n## OpenVibe.MediaHub\n\n[openvibe.video](https://openvibe.video) · [repository](https://github.com/OpenVibers/OpenVibe.MediaHub)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#44) ([`1451720`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/1451720562db8ae5838e8eb0ca349deef873d021))\n\n## OpenVibe.Play\n\n[play.openvibe.network](https://play.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Play)\n\n- openvibe-shared v4.1.5 (was v4.1.4) (#3) ([`4406ae4`](https://github.com/OpenVibers/OpenVibe.Play/commit/4406ae45e11ad6cc58c6ad202da7ad6b0a15d4ad))\n\n## OpenVibe.Quest\n\n[openvibe.quest](https://openvibe.quest) · [repository](https://github.com/OpenVibers/OpenVibe.Quest)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#36) ([`66b42f8`](https://github.com/OpenVibers/OpenVibe.Quest/commit/66b42f8972a17d13882592cea1bdd78d10fe2139))\n\n## OpenVibe.Rent\n\n[openvibe.rent](https://openvibe.rent) · [repository](https://github.com/OpenVibers/OpenVibe.Rent)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#36) ([`0932a07`](https://github.com/OpenVibers/OpenVibe.Rent/commit/0932a071d085e32b1766a2b742244eeb5e10f4cd))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#53) ([`e39539c`](https://github.com/OpenVibers/OpenVibe.Search/commit/e39539c51ce91d084740bba2ee53fb729d72de4a))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#50) ([`413b6f5`](https://github.com/OpenVibers/OpenVibe.Tips/commit/413b6f5ce2d30d0d86e1f486dbdf9469a8a5d3d4))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#57) ([`9b713ff`](https://github.com/OpenVibers/OpenVibe.Tools/commit/9b713ff6f959b096e02adb13459e50325522524b))\n\n## OpenVibe.Trade\n\n[openvibe.trade](https://openvibe.trade) · [repository](https://github.com/OpenVibers/OpenVibe.Trade)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#51) ([`febca92`](https://github.com/OpenVibers/OpenVibe.Trade/commit/febca925dbd24e202f8e37d80dd681cf26fd72f0))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#50) ([`71aa125`](https://github.com/OpenVibers/OpenVibe.VIP/commit/71aa1254a78de3b4a2f2533c6cb4be9548f1e1c2))\n\n## OpenVibe.Work\n\n[openvibe.work](https://openvibe.work) · [repository](https://github.com/OpenVibers/OpenVibe.Work)\n\n- openvibe-shared v4.1.5 (was v4.1.3) (#34) ([`56ee9b2`](https://github.com/OpenVibers/OpenVibe.Work/commit/56ee9b2578ad1589150ba6a47896e4fb7491816c))\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-15T04:29:15.919Z","revised_at":"2026-10-15T04:29:15.891Z","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","media","actor","network","bot","chat","news","openre","services","wiki","zone"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}