OpenVibe.Shared releases

Release 4.12.0

25 Oct 2026 · pinned package [email protected]

4.12.0

  • Avatars show the picture the account has now. The owner, 2026-10-25: their picture showed on Live but the navbar on openvibe.network drew their initial. A user record can be older than its picture (a site's session, or a remembered account, from before the picture was set).
    • The navbar (navbar.js) and the footer's account row (footer.js) ask the Network's /avatar/<username> when a record has no openvibe.media picture. That route redirects to the current picture, or answers an initial.
    • A picture that fails to load asks /avatar/<username> once (data-retry-src) before falling back to the initial. That also covers an image that failed before the handler was attached.
    • On openvibe.network itself the request is same-origin.
  • The launcher fits a phone. Its panel was min(760px, 100vw - 24px) wide plus its padding and border, so on a page without a global box-sizing: border-box it ran 10 px past the screen and the page scrolled sideways. It is now border-box.
  • Every theme in light and dark. The owner, 2026-10-25: "each theme should have a light counterpart instead of … a mixed bag", with an easy light and dark switch in the account menu.
    • Pairs: builtin-themes.js PAIRS gives every theme its other half, and each theme carries pair. That makes 25 pairs and 50 themes. Thirteen are new light ones: Dawn, Tokyo Day, Alucard, Monokai Light, Shallows, Ash, Vapor Day, Greenbar, Nord Light, Bright, High Contrast Light, Hayride and Snowfall. Cloud is now named "Vibe Light", the default's light half.
    • October (the owner's picks): Midnight Pumpkin (halloween), pumpkin orange on OpenVibe's navy, replaces the violet Pumpkin Night, and Hayride is its light half. December gets Snowfall beside Frost. SEASONS entries carry light. A season stands in for the default theme in either mode (Vibe or Vibe Light).
    • Light / Dark / Auto (theme-loader.js, OpenVibeThemeLoader.scheme.get()/set(); the account menu and the launcher's Display box):
    • Light or Dark saves the picked theme's other half (the default's half when a community theme has none). The season stays as it was.
    • Auto (the display preference scheme: auto, synced like the others) paints the half matching the device, and follows it when it changes.
    • pairOf(id) and modeOf(id) are exported too.
    • Smaller loader: the theme map is now rows of values against one list of token names, expanded at load into the same full sets. theme-loader.js went from 59.5 KB to 50.7 KB with thirteen more themes.
  • The OpenVibe mark wears the season; the pumpkin button is gone. The owner, 2026-10-25: the badge beside the brand "takes up a lot of space … especially on mobile"; integrate it into the logo instead.
    • The mark's look (ov-mark.js): <html data-ov-season-mark="halloween|winter"> (set by theme-loader.js for anyone who has not turned seasonal themes off, whatever their theme) dresses every mark.
    • October: a pumpkin's stem, leaf and faint ribs, with the V as its grin.
    • December: a cap of snow on the ring.
    • Moments:
    • The leaf unfurls when the mark plays its intro.
    • Every 4 to 8 minutes a mark on screen flickers like a candle for a second.
    • On the first visit of the day, a few leaves (snowflakes in December) drift down from the first mark seen.
    • None of this runs under either reduced-motion setting.
    • Navbar: no .ovnav-season badge. The switch stays in the account menu ("Seasonal themes") and the display box.
  • Theme changes follow you between sites without a jolt (theme-loader.js). The owner, 2026-10-25: a seasonal toggle on Live, then Themes in the menu, showed openvibe.network in the old theme until a refresh.
    • Saves outlive the page: both PUTs (/api/themes/me, /api/themes/me/display) are keepalive, so a choice made just before following a link still lands.
    • The account is asked again:
    • when the page comes back into view (at most every 10 s);
    • once more 2.5 s after arriving from another site, since that site's save may land after this page first asked.
    • Corrections fade: a theme that changes under someone (the account's answer, another tab) crossfades for 0.4 s instead of jumping. An answer that changes nothing repaints nothing. Calm motion never fades.
  • Your name in the account menu opens your profile. The avatar and name at the top of the menu link to openvibe.network/@username (an anonymous visitor's to /my). They were plain text, and pressing them did nothing.

PagesThe avatarThe bar’s brandThe menuThe footer

Rules92 The menu's places: Here, Feed, Chat, Vibe, You; Vibe holds Chat and Agents.36 The menu button opens on the site you are on.39 The account lives in the menu's You tab, not in a dropdown.

All releases