{"id":"pst_01M55GJ20ZE8XAR610MJ6NMW48","url":"https://openvibe.blog/@openvibe/patch-notes-84-changes-across-38-sites-oct-17","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 84 changes across 38 sites (Oct 17)","summary":"What shipped on OpenVibe on 2026-10-17: 84 changes to OpenVibe.Live, OpenVibe.MediaHub, OpenVibe.AI, OpenVibe.Network, OpenVibe.Rent, OpenVibe.Bot and 32 more.","body_markdown":"What shipped on OpenVibe on 2026-10-17: 84 changes to OpenVibe.Live, OpenVibe.MediaHub, OpenVibe.AI, OpenVibe.Network, OpenVibe.Rent, OpenVibe.Bot and 32 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- AI tags on public items drop looks too ('red-beanie', 'bearded', 'man', 'tanktop'): live pastes, moment pastes and backfilled paste tags pass db.noLooksTags (#203) ([`2fa95a0`](https://github.com/OpenVibers/OpenVibe.Live/commit/2fa95a0fc74dd2a1c786d71e01adb5c0fcb28ee8))\n- Chat popover + profile AI tab: no looks in any AI string; session titles about looks not used (#204) ([`f0d4477`](https://github.com/OpenVibers/OpenVibe.Live/commit/f0d44779640a34792ba7ac80e0b39b78e7e6ed45))\n- AGENTS.md: public AI text passes db.noLooks / noLooksTags / hasLooks (prompts alone miss about one in ten) (#205) ([`138dc0a`](https://github.com/OpenVibers/OpenVibe.Live/commit/138dc0aca499b91971bf1c8d79f870227aa4405c))\n- Home: paint the hero frame with the HTML (largest paint was 2.9 s, after the hero API) (#206) ([`e5822ec`](https://github.com/OpenVibers/OpenVibe.Live/commit/e5822ecbdcabc9878df8a641ab1a22abe3da8856))\n- Channel chat history: older scrollback goes above the newest 120 rows a piece at a time, not all 1000 rows in one idle task (2.7 s on a phone CPU, TBT 3.7 s on /@goosely); the cached first paint renders only its newest piece (#207) ([`f67fe00`](https://github.com/OpenVibers/OpenVibe.Live/commit/f67fe00aaea3beb8036481fed397197e22d71242))\n- measure-page: name the element behind the largest layout shift (clsEl) and collapse whitespace in element descriptions (#208) ([`41d61a5`](https://github.com/OpenVibers/OpenVibe.Live/commit/41d61a5c13b2a20c0ee1988e5eb9f95b7add75b3))\n- Channel chat history: older scrollback in 25-row pieces, as many as fit in each idle moment (120-row pieces were still ~240 ms tasks on a phone CPU: TBT 2.6 s on /@goosely) (#209) ([`2dbcefa`](https://github.com/OpenVibers/OpenVibe.Live/commit/2dbcefaa042ca03cd7971fb2d0a8a45a56237d32))\n- Channel chat history: the newest 50 rows first, then 10-row pieces per idle moment (A/B against production on /@goosely, phone CPU: TBT 2.3 s → 1.3 s, longest task 751 → 383 ms) (#210) ([`d3f0fe0`](https://github.com/OpenVibers/OpenVibe.Live/commit/d3f0fe09493bac97f65b4e27ed03a9f74ae90a49))\n- trace-page --tasks: each main-thread task over 100 ms with what ran inside it (totals alone did not say which task was long) (#211) ([`2f17d4f`](https://github.com/OpenVibers/OpenVibe.Live/commit/2f17d4f46eadf4e64ed852117149aabeae1d0b1c))\n- Patch notes list: read the git log through the current link (a static-only release does not restart the process; the list stopped at #206 while #207–#210 were live) (#212) ([`b177bd0`](https://github.com/OpenVibers/OpenVibe.Live/commit/b177bd0ef36c34529712ad8a9cb7d3ff25a15cf6))\n- Channel API: clippers' names and AI overviews in one query each, not one per clip/VOD in turn (~80 sequential round trips on a full channel page) (#213) ([`49a056f`](https://github.com/OpenVibers/OpenVibe.Live/commit/49a056f69e32b05c21ea9e0f2198ee6f6a108d44))\n- VOD and clip API: their independent lookups (names, stream, AI state, Media's clip list, view count, Community's comment count) run together instead of one after another (#214) ([`f675c1b`](https://github.com/OpenVibers/OpenVibe.Live/commit/f675c1b10809cfd46e3cdba09cebae1356a20f1f))\n- /internal/analytics-summary: one computation per window per 10 minutes, shared by concurrent callers (the full stats behind a few totals took ~4 s of database time at p95) (#215) ([`6c245b1`](https://github.com/OpenVibers/OpenVibe.Live/commit/6c245b1fafd2cc0ac7348c552afb2e1d10f96f5f))\n- Offline channel page: 'most watched' is asked for with the channel, not after it, and its picture (the page's largest paint) loads at once with high priority instead of lazily (A/B on /@goosely, phone CPU: LCP 2.69 → 2.45 s) (#216) ([`b7bcac1`](https://github.com/OpenVibers/OpenVibe.Live/commit/b7bcac123f8efc6d27aeda5719cceafbfa80ed89))\n- Real-user measurements: on a quarter of page loads, once idle, the browser reports its own TTFB/FCP/LCP/CLS/INP/blocking time and up to three script errors in one beacon; kept only as aggregates per page kind and device (staff… ([`6b701fb`](https://github.com/OpenVibers/OpenVibe.Live/commit/6b701fb3e1cd03dca0f75071e8b935cb6b2d2980))\n- Real-user measurements: the ten most frequent script errors on /metrics too (live_rum_errors{message}), readable on the host without a staff session (#218) ([`5906382`](https://github.com/OpenVibers/OpenVibe.Live/commit/59063822ddd3b310bc45ac72af8e96d585d7a46e))\n- Docs: the 2026-10-17 measurements (largest paints, the channel page's blocking time, real-user data) and how chat history renders in pieces (#219) ([`a8961ed`](https://github.com/OpenVibers/OpenVibe.Live/commit/a8961ed7aca5c9974c21eabf1a5676a8932136b6))\n- Real-user measurements: time to a live channel's first picture (ttff, set by the player when live media first renders on a directly opened channel); beacons name the page they were loaded on, not where the SPA went since (#220) ([`f872c62`](https://github.com/OpenVibers/OpenVibe.Live/commit/f872c62aa00cf0f1d4a43de3282c442978d43a50))\n- Docs: frozen tables are gone from Live's database (fix a dead anchor) (#221) ([`74d343b`](https://github.com/OpenVibers/OpenVibe.Live/commit/74d343b015788ff3babca1754e9745720c9f95a8))\n- Boot: the AI-text looks repair scans ~20k rows once per version of the scrub rules (a hash of their source), not on every boot (~0.8 s of database time each) (#222) ([`ee541e1`](https://github.com/OpenVibers/OpenVibe.Live/commit/ee541e10cabc3c9c1971de99842a09f43b7754b7))\n- Real-user measurements skip automated browsers (navigator.webdriver, crawler and headless user agents, checked in the page only): the first samples were our own headless test runs (FCP 180 ms) (#223) ([`7374b85`](https://github.com/OpenVibers/OpenVibe.Live/commit/7374b8503ec5471ef82c2b7072bb5a552bc1dfc2))\n- Channel chat history: about 200 rows are built at once; older ones load as the reader scrolls up to them (a visit built up to ~1000 rows a phone then laid out on every new message) (#224) ([`b48250b`](https://github.com/OpenVibers/OpenVibe.Live/commit/b48250bc6b75fd2b790bbb219749dad951b17e1e))\n- Offline channel: the header and screen stay invisible (still laid out) until the channel's data, instead of outlines the social links then pushed down 135 px (CLS 0.12 → 0 on /@goosely, phone) (#225) ([`aa876cc`](https://github.com/OpenVibers/OpenVibe.Live/commit/aa876ccb85d5e3cc1a520d9f65fb5c381480991a))\n- Chat page on phones: one row is held for the voice channel list, so the chat below does not move down when the list lands (CLS 0.04 → 0.024) (#226) ([`1e02174`](https://github.com/OpenVibers/OpenVibe.Live/commit/1e0217412e1fadeb8fd7d54e5e5b123a6bee52b3))\n- Real-user measurements on every page load (not automated browsers): a quarter gave no page kind five samples in 45 minutes at this traffic; the privacy page says when (#227) ([`e225825`](https://github.com/OpenVibers/OpenVibe.Live/commit/e2258258c9f0f2295338ffee356d23a3ff66dd4f))\n- Docs: 10-17 measurements continued (chat history on scroll, offline header CLS, chat page CLS) (#228) ([`44ffeac`](https://github.com/OpenVibers/OpenVibe.Live/commit/44ffeac73cc5b2c5e8712943896066f51f56195c))\n- A channel page whose stream ends stops asking for that stream's live recording: open tabs polled it every 20 s for 12 hours after an end (1,628 404s for one stream on 10-17); the offline card now tears the old player down, as leaving the… ([`b30b22f`](https://github.com/OpenVibers/OpenVibe.Live/commit/b30b22ff42992b086c9a3a5fdd7a4dee28d53378))\n\n## OpenVibe.MediaHub\n\n[openvibe.video](https://openvibe.video) · [repository](https://github.com/OpenVibers/OpenVibe.MediaHub)\n\n- Watch pages: the player shows the recording's or clip's picture until it plays (poster; LCP waited for the first video frame, 3.8 s on a phone-speed CPU) (#94) ([`0b03921`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/0b039219d0176af02e38d69b35226aac0f172061))\n- Watch pages: chapters, comments, chat replay, the playlist form and up next are asked together, not one after another (/v/:id p95 581 ms) (#95) ([`5a2b8bd`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/5a2b8bde6dfacbef056967bdaf29710119029dee))\n- Video and Pics homes say what the site is in structured data (WebSite + WebPage JSON-LD, as Download's home does) (#96) ([`35d18b1`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/35d18b1441d48a86bc165c2f3082844b0da5b450))\n- openvibe-shared v4.4.0 (was v4.3.0) (#97) ([`8f313c0`](https://github.com/OpenVibers/OpenVibe.MediaHub/commit/8f313c012773cf7dcdbc0be23650a51d739df819))\n\n## OpenVibe.AI\n\n[ai.openvibe.services](https://ai.openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- live.stream.describe_frame: a live paste's caption names what happens, never what someone looks like or wears ('Red Beanie Moment', 'Glasses Adjustment Tension', 'Face Reveal Frenzy' were written as public titles) (#119) ([`cc39c90`](https://github.com/OpenVibers/OpenVibe.AI/commit/cc39c9092d2d109de1dedc0619ec78d9e6a858c4))\n- live.stream.titles: a session title names what happens, never what anyone looks like or wears ('Orange Shirt Kitchen Chat', 'Beard & Tablet Chat' were public titles) (#120) ([`72606b4`](https://github.com/OpenVibers/OpenVibe.AI/commit/72606b45ee119e649cc1e97af9e8e2155131368f))\n- openvibe-shared v4.4.0 (was v4.3.0) (#121) ([`a077483`](https://github.com/OpenVibers/OpenVibe.AI/commit/a0774834e022359e67d5305b635fb0fe9d56ab04))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Public profiles: badge chips no longer pile on top of each other (the badge image beside the name shared their class, and its .85em square squeezed every chip into 26x16 px) (#272) ([`d65aac2`](https://github.com/OpenVibers/OpenVibe.Network/commit/d65aac2f09c5a9b86399dd5ff8af485ee38f5684))\n- Frame: every site gets a launcher group (Watch & stream, Create & play, Talk & learn, Shop & everyday, Build & automate, Your OpenVibe), Pics/Download/Homes join the list after the site that serves them, and Video draws the video icon… ([`0b7596c`](https://github.com/OpenVibers/OpenVibe.Network/commit/0b7596c7460a579a4de5b830440a944efc456c1b))\n- openvibe-shared v4.4.0 (was v4.3.0) (#274) ([`8e48eb0`](https://github.com/OpenVibers/OpenVibe.Network/commit/8e48eb0dc4bfedb801d67215167bcee6137ca508))\n\n## OpenVibe.Rent\n\n[openvibe.rent](https://openvibe.rent) · [repository](https://github.com/OpenVibers/OpenVibe.Rent)\n\n- OpenVibe.Homes: the home says what the site is in structured data (WebSite + WebPage JSON-LD) (#76) ([`be1f09f`](https://github.com/OpenVibers/OpenVibe.Rent/commit/be1f09f7c5cc7ba8df07cde31f826759c431538d))\n- OpenVibe.Homes has the update log every OpenVibe site has (/updates was a 404 on the Homes host) (#77) ([`71838f4`](https://github.com/OpenVibers/OpenVibe.Rent/commit/71838f4e653bead5a86919946d08e1bd994cd8ff))\n- openvibe-shared v4.4.0 (was v4.3.0) (#78) ([`62ee66b`](https://github.com/OpenVibers/OpenVibe.Rent/commit/62ee66b1b5405a21d09b85cb26a7f2d7013a9687))\n\n## OpenVibe.Bot\n\n[openvibe.bot](https://openvibe.bot) · [repository](https://github.com/OpenVibers/OpenVibe.Bot)\n\n- Web app manifest: its icons are the shared set this site serves (/shared/icons), not /assets/logo-*.png (all six install icons were 404); pages add the apple-touch-icon (#138) ([`753de1c`](https://github.com/OpenVibers/OpenVibe.Bot/commit/753de1c6b33b68215196902da800424c71a2e257))\n- openvibe-shared v4.4.0 (was v4.3.0) (#139) ([`b544c32`](https://github.com/OpenVibers/OpenVibe.Bot/commit/b544c3255f8640b69f260fb06dd01a66c6c923bc))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Pages name a crawlable icon (apple-touch-icon) and the installable app's manifest, both the shared set (search engines cannot use the data: favicon; there was no manifest) (#117) ([`a6a68cd`](https://github.com/OpenVibers/OpenVibe.Chat/commit/a6a68cd586f9ce33eb270a6a91cd9d0dafa8f2ba))\n- openvibe-shared v4.4.0 (was v4.3.0) (#118) ([`a6c02f4`](https://github.com/OpenVibers/OpenVibe.Chat/commit/a6c02f44e7da51e7e0d99e3767b6292bfc88f40d))\n\n## OpenVibe.Community\n\n[openvibe.community](https://openvibe.community) · [repository](https://github.com/OpenVibers/OpenVibe.Community)\n\n- The Forum: Community's boards are called the Forum and forums, not Spaces (openvibe.space is a different product); /forum answers 301 to /s; /s addresses, the API and the database keep their names (#94) ([`2c521c7`](https://github.com/OpenVibers/OpenVibe.Community/commit/2c521c78423ab7ab867ba11c6985a9cad11c71e5))\n- openvibe-shared v4.4.0 (was v4.3.0) (#95) ([`1dcb74f`](https://github.com/OpenVibers/OpenVibe.Community/commit/1dcb74f9fd3de409c8eec818b5af2b334b100d50))\n\n## OpenVibe.Events\n\n[openvibe.events](https://openvibe.events) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- openvibe.events: POST /release-metrics reaches the app (open tabs' release reports were refused 403 by the GET/HEAD catch-all) (#99) ([`7316b99`](https://github.com/OpenVibers/OpenVibe.Events/commit/7316b99b6f99764a8585e2db422cb410883f339d))\n- openvibe-shared v4.4.0 (was v4.3.0) (#100) ([`d97b0ab`](https://github.com/OpenVibers/OpenVibe.Events/commit/d97b0ab18c35268f2f0f2c6a2e17f501d05494c2))\n\n## OpenVibe.Games\n\n[openvibe.games](https://openvibe.games) · [repository](https://github.com/OpenVibers/OpenVibe.Games)\n\n- OpenVibe.Games is installable: /manifest.webmanifest and its icons (the shared Games set from openvibe-shared/app-icons), linked from the client with an apple-touch-icon (#100) ([`8294b9d`](https://github.com/OpenVibers/OpenVibe.Games/commit/8294b9dbd6fbc514b664d5c86bc0d25430f6b326))\n- openvibe-shared v4.4.0 (was v4.3.0) (#101) ([`38d0912`](https://github.com/OpenVibers/OpenVibe.Games/commit/38d09124435e23ece8dc8b5d2671c9c9ecaf7be3))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- PUT /clips/:id takes description too (docs/object-model.md said so; the handler only took title, visibility and auto_generated), cleaned as on create (#141) ([`87a55ae`](https://github.com/OpenVibers/OpenVibe.Media/commit/87a55ae8521baaa920647e3929c487c2b52e9202))\n- Object explorer (/me): never framed by another site (X-Frame-Options DENY, frame-ancestors 'none'); no x-powered-by on any answer (#142) ([`9491aca`](https://github.com/OpenVibers/OpenVibe.Media/commit/9491aca73d937b182ea50872a49e6b77c882a187))\n\n## OpenVibe.Reviews\n\n[openvibe.reviews](https://openvibe.reviews) · [repository](https://github.com/OpenVibers/OpenVibe.Reviews)\n\n- Reviews: the event import queue re-indexes each entity once per drain, like a pulled page (12 queued reviews of one game sent 12 index documents in one trace; Search's follow-ups were refused as a loop) (#74) ([`f96999a`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/f96999a585cb7488ba2bbd082d9820cd7d00612e))\n- openvibe-shared v4.4.0 (was v4.3.0) (#75) ([`01a27a0`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/01a27a06e8875f08d478b430d7de61b0085c0e78))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- Vhost: proxy POST /release-metrics (open tabs' release reports were a 404 on search.openvibe.network) (#73) ([`9a161c7`](https://github.com/OpenVibers/OpenVibe.Search/commit/9a161c7790a85aa3594cbca64bb82b70ae185e06))\n- openvibe-shared v4.4.0 (was v4.3.0) (#74) ([`1a188c8`](https://github.com/OpenVibers/OpenVibe.Search/commit/1a188c80b6e0e063ea658a789a6fbf20e96367a8))\n\n## OpenVibe.Space\n\n[openvibe.space](https://openvibe.space) · [repository](https://github.com/OpenVibers/OpenVibe.Space)\n\n- OpenVibe.Space has its own update log at /updates (it sent readers to the community's log, which lists the community's changes); the navbar and footer link it (#71) ([`b2aea15`](https://github.com/OpenVibers/OpenVibe.Space/commit/b2aea1549ba594f2b28d829865d4f96fee9db1b3))\n- openvibe-shared v4.4.0 (was v4.3.0) (#72) ([`d98efff`](https://github.com/OpenVibers/OpenVibe.Space/commit/d98efff9d27467427e4d9a5d9cb96606d9349944))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- Home says what the site is in structured data (WebSite + WebPage JSON-LD, as the other OpenVibe homes do) (#70) ([`5894b16`](https://github.com/OpenVibers/OpenVibe.Tips/commit/5894b16928ceeb36f57294550749cb70490af598))\n- openvibe-shared v4.4.0 (was v4.3.0) (#71) ([`feb8e7a`](https://github.com/OpenVibers/OpenVibe.Tips/commit/feb8e7a219806be1858cf2bb40f5329f294ad545))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- Tools apps: systemd holds each app's listener too (audio, docs, food, img, maps, text, yt), so a restart queues the gateway's requests instead of refusing them; the process listens on fd 3 only when handed it (#79) ([`448f45a`](https://github.com/OpenVibers/OpenVibe.Tools/commit/448f45ae970c69a5a056dd5a923b2a3443bf7dd0))\n- openvibe-shared v4.4.0 (was v4.3.0) (#80) ([`35d3c9c`](https://github.com/OpenVibers/OpenVibe.Tools/commit/35d3c9cad7ce3b101721d0f972e30c81396db644))\n\n## OpenVibe.Actor\n\n[openvibe.actor](https://openvibe.actor) · [repository](https://github.com/OpenVibers/OpenVibe.Actor)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#95) ([`cca9701`](https://github.com/OpenVibers/OpenVibe.Actor/commit/cca97015abf6ded517ed334bdb701a98ec9b3ba1))\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.4.0 (was v4.3.0) (#83) ([`54a4a89`](https://github.com/OpenVibers/OpenVibe.Billing/commit/54a4a8998cff54a0ba7bd87ed40ebde44d07728d))\n\n## OpenVibe.Blog\n\n[openvibe.blog](https://openvibe.blog) · [repository](https://github.com/OpenVibers/OpenVibe.Blog)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#66) ([`b9cf382`](https://github.com/OpenVibers/OpenVibe.Blog/commit/b9cf382dcf6a49bd35a6e7f23b345b384b893d7e))\n\n## OpenVibe.Codes\n\n[openvibe.codes](https://openvibe.codes) · [repository](https://github.com/OpenVibers/OpenVibe.Codes)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#90) ([`d19ba68`](https://github.com/OpenVibers/OpenVibe.Codes/commit/d19ba68f8dfb4eea4cb5f268e814b27ab367c642))\n\n## OpenVibe.Coupons\n\n[openvibe.coupons](https://openvibe.coupons) · [repository](https://github.com/OpenVibers/OpenVibe.Coupons)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#74) ([`ea40ee4`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/ea40ee4b5aa56f778e8954fea407c53fe8640e6e))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#71) ([`76a77a8`](https://github.com/OpenVibers/OpenVibe.Deals/commit/76a77a89bfae5b9a7ce0da18026c18745791eabc))\n\n## OpenVibe.Food\n\n[openvibe.food](https://openvibe.food) · [repository](https://github.com/OpenVibers/OpenVibe.Food)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#65) ([`580c350`](https://github.com/OpenVibers/OpenVibe.Food/commit/580c35016a78f8fbbbf4ce50d3ac33686da82109))\n\n## OpenVibe.Help\n\n[openvibe.help](https://openvibe.help) · [repository](https://github.com/OpenVibers/OpenVibe.Help)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#65) ([`dbc3451`](https://github.com/OpenVibers/OpenVibe.Help/commit/dbc3451c9273c0674c1e0d997c4bf633f8d5f08a))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#129) ([`3831e03`](https://github.com/OpenVibers/OpenVibe.Host/commit/3831e03d9e505346b6aa8a6a0d0b4f2104863170))\n\n## OpenVibe.Inventory\n\n[inventory.openvibe.network](https://inventory.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Inventory)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#57) ([`8c2ad73`](https://github.com/OpenVibers/OpenVibe.Inventory/commit/8c2ad73652eb1fe840f70435be94240c2f93734d))\n\n## OpenVibe.News\n\n[openvibe.news](https://openvibe.news) · [repository](https://github.com/OpenVibers/OpenVibe.News)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#77) ([`e0bfee6`](https://github.com/OpenVibers/OpenVibe.News/commit/e0bfee6bfd87fae81eda5fa3087672fb8514b41f))\n\n## OpenRestream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRestream)\n\n- Pages name a crawlable icon (apple-touch-icon) and the installable app's manifest, both the shared set (only the data: favicon before, no manifest) (#87) ([`91ec488`](https://github.com/OpenVibers/OpenRestream/commit/91ec48880eb661298ec41778762bae95ec6226f9))\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.4.0 (was v4.3.0) (#21) ([`6baac18`](https://github.com/OpenVibers/OpenVibe.Play/commit/6baac1865e8d8e0feca04f920bcc9e29d8e8d6f4))\n\n## OpenVibe.Quest\n\n[openvibe.quest](https://openvibe.quest) · [repository](https://github.com/OpenVibers/OpenVibe.Quest)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#64) ([`04f486d`](https://github.com/OpenVibers/OpenVibe.Quest/commit/04f486d7a48b8d558f2bddb26a6e6a9c838f9921))\n\n## OpenVibe.Services\n\n[openvibe.services](https://openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.Services)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#85) ([`8721294`](https://github.com/OpenVibers/OpenVibe.Services/commit/87212942ee8bc4ba013b18bbb20f0fd05d702a32))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#74) ([`1203371`](https://github.com/OpenVibers/OpenVibe.Sources/commit/1203371797501fb91ee47446004e4f4bcb1b93ec))\n\n## OpenVibe.Trade\n\n[openvibe.trade](https://openvibe.trade) · [repository](https://github.com/OpenVibers/OpenVibe.Trade)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#79) ([`5a33333`](https://github.com/OpenVibers/OpenVibe.Trade/commit/5a33333080fa664d5067b7a1beed5444fa4c4d37))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#72) ([`c235d88`](https://github.com/OpenVibers/OpenVibe.VIP/commit/c235d88d56a04128e9d07832ea7d192b658eb00b))\n\n## OpenVibe.Watch\n\n[openvibe.watch](https://openvibe.watch) · [repository](https://github.com/OpenVibers/OpenVibe.Watch)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#79) ([`9871ccd`](https://github.com/OpenVibers/OpenVibe.Watch/commit/9871ccd5019efdbc592911204225f52f0cde8f7c))\n\n## OpenVibe.Wiki\n\n[openvibe.wiki](https://openvibe.wiki) · [repository](https://github.com/OpenVibers/OpenVibe.Wiki)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#78) ([`e1775fd`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/e1775fd4c268a3bdef0bb7d84c54cb3602617b0b))\n\n## OpenVibe.Work\n\n[openvibe.work](https://openvibe.work) · [repository](https://github.com/OpenVibers/OpenVibe.Work)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#54) ([`39e935c`](https://github.com/OpenVibers/OpenVibe.Work/commit/39e935c98796ed1702b9a00a91e2f240f956e219))\n\n## OpenVibe.Zone\n\n[openvibe.zone](https://openvibe.zone) · [repository](https://github.com/OpenVibers/OpenVibe.Zone)\n\n- openvibe-shared v4.4.0 (was v4.3.0) (#23) ([`39e2ab1`](https://github.com/OpenVibers/OpenVibe.Zone/commit/39e2ab127c7da9873e1ee940bf73ed02d7847cfc))\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-17T18:04:05.567Z","revised_at":"2026-10-17T18:04:05.545Z","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","media-hub","ai","network","rent","bot","chat","community","events","games"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}