OpenVibe.Shared releases

Release 4.13.0

26 Oct 2026 · pinned package [email protected]

4.13.0

  • Switching accounts works on every site (navbar.js; the owner, 2026-10-26: "the thing that lets you switch … between different accounts doesn't work"). On a product site the account menu's other accounts dispatched an event only openvibe.network's account switcher listens to, so a click did nothing, and "Add another account" went to the Network and back to the page without signing the site in. Each other account is now a link through OpenVibe.Network's chooser (/login?switch_to=<id>&login_hint=<username>) that comes back through the site's own sign-in (its loginUrl, made absolute), so the site ends up signed in as the chosen account whatever its session; "Add another account" (add_account=1) does the same for a new one. The list is the accounts this browser used on the site (the account switcher's plus the ones the navbar saw signed in, openvibe_seen_accounts: names and pictures, at most ten, never a token). openvibe.network's own pages still switch in place; "Switch to Anonymous" shows only there. Account names in the menu are escaped as text. Needs OpenVibe.Network's chooser of the same night (switch_to, add_account). test/navbar-switch-account.test.js.
  • A person's stuff on any site (profile-panel.js, profile-panel.css, new). One tag (data-ov-profile="name") draws someone's worn items, their counts of items, badges, achievements and games, their latest unlock per game and links to their profile and inventory, from OpenVibe.Network's public profile (which gathers Inventory, Quest and Play since Network#333 and Play#38). Steam-style, so Games, Quest and any site can show it (the owner, 2026-10-25). data-ov-profile="me" is whoever is signed in on that site (its own /auth/me), so a page cached for everyone can show "your stuff" (a hidden element appears once drawn). test/profile-panel.test.js.
  • One lit row in the menus on phones (navbar.js). A tap left :hover on the row it touched, so the "all sites" launcher showed two highlighted rows: the site you are on and the last one your finger crossed (the owner, 2026-10-25, on openre.stream). The launcher's and the phone drawer's hover backgrounds now apply only under @media (hover: hover); the site you are on and keyboard focus stay lit everywhere. On phones a launcher row's description is one line (OpenVibe.Network sends short menu labels with the regrouped sites), so the list is shorter and easier to scan. test/navbar-touch-hover.test.js.
  • The phone menu always opens on screen (navbar.js). The burger's drawer is anchored to the bar (position: absolute, right under it) instead of the viewport. On a page wider than the phone (openvibe.chat/messages with a long pasted link was 939 px on a 412 px phone), the fixed drawer opened off-screen and the menu looked missing (the owner, 2026-10-25). test/navbar-drawer-overflow.test.js. The navbar's brotli budget is 33.5 KB (was 33; 33.0 KB now).
  • Ask Vibe from every site (navbar.js). The account menu's "Ask Actor" is now Ask Vibe: it opens a new chat with Vibe, OpenVibe's assistant, at openvibe.chat/vibe, with the text selected on the page and the page's address filled in (never sent by itself; OpenVibe.Chat#165). _ask.askVibeHref replaces askActorHref; test/navbar-ask-vibe.test.js replaces navbar-ask-actor.test.js. Beside it, Work together starts a workspace room on OpenVibe.Chat (openvibe.chat/work): a team and Vibe with a work queue, alerts from other systems and a shared screen (OpenVibe.Chat#163–#168).
  • Richer home pages for every site (showcase.js, showcase.css, docs/home-pages.md). The owner, 2026-10-25: "more rich content and different types… shared code so you can make nice home pages across all our different sites… and other people can reuse too". About 30 sites build their homes from showcase.
    • New sections:
    • stats: a strip of real numbers.
    • cards: rich content in a grid or a swipeable rail, with lazy images that hold their ratio, a LIVE badge and "See all".
    • spotlight: features shown with a picture or a short muted loop, alternating sides.
    • faq: an accordion that works without JavaScript, plus faqJsonLd().
    • network: "Part of OpenVibe", up to four related products from the curated RELATED map, with ring icons and the ov_from tag, so the network links together in a readable, crawlable way.
    • jsonLd() writes structured data that cannot close its script early.
    • The hero gets a soft glow from the theme's accent. Sections rise in on scroll (CSS scroll-driven animations, only without reduced motion).
    • The same safe-link and escaping rules as the other sections.
  • One OpenVibe for search engines and AI crawlers (seo.js):
    • headTags adds OpenVibe's Organization node beside a WebSite that names it as publisher but did not include it. Chat, Video, OpenRestream, Actor and Work had the reference without the node.
    • robotsTxt says yes to search, AI answers and AI training in so many words (Content-Signal: search=yes, ai-input=yes, ai-train=yes) unless a site passes allowAI: false. The owner, 2026-10-25: "fully AI allowed and indexable".
  • The player sounds, loads and looks better (player.js, player.css). The owner, 2026-10-25: "the volume up and down button on mobile will actually unmute… those little color sample type s*** so that it loads that then the thumbnail… then the actual video… that background effect… the mute button looks a little weird".
    • Sound:
    • A video playing muted (autoplay) shows "Tap for sound", and the first tap on it unmutes.
    • The media volume keys unmute and set the level wherever a browser passes them to the page (AudioVolumeUp and the rest; phones keep their hardware buttons to themselves).
    • The viewer's own mute is remembered; a page's autoplay mute is not.
    • The Media Session API gives lock screens and headsets play, pause and seek.
    • Loading in layers:
    • data-ov-color paints the average colour at once, and data-ov-thumb (a tiny inline image) shows blurred.
    • The poster sharpens over them, then the first frame fades in.
    • Without data-ov-color, the poster's average colour is used when the browser allows it.
    • Ambient glow: data-ov-ambient adds a glow of the picture around the player, as in YouTube's ambient mode: a 32×18 sample every 0.7 s while the player plays and is on screen, blurred and crossfaded. It is off for reduced motion and data saver, and softer in light themes.
    • Controls:
    • One rounded, filled icon set (Material Icons Round). The mute icon was a crude cross.
    • Buttons press in; the big play button has a soft ring.
    • A short sign shows a seek (±10 s, on its side) or a volume level.
    • Touch screens drop the volume slider and keep the mute button; phones get 40 px targets.

PagesThe quest cardThe playerThe avatarThe menu

Rules92 The menu's places: Here, Feed, Chat, Vibe, You; Vibe holds Chat and Agents.94 A site's name opens its pages, and a way to every site.39 The account lives in the menu's You tab, not in a dropdown.

All releases