Release 4.12.0
25 Oct 2026 · pinned package [email protected]
- 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 navbar (
- The launcher fits a phone. Its panel was
min(760px, 100vw - 24px)wide plus its padding and border, so on a page without a globalbox-sizing: border-boxit ran 10 px past the screen and the page scrolled sideways. It is nowborder-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.jsPAIRSgives every theme its other half, and each theme carriespair. 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.SEASONSentries carrylight. 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)andmodeOf(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.jswent from 59.5 KB to 50.7 KB with thirteen more themes.
- Pairs:
- 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 bytheme-loader.jsfor 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-seasonbadge. The switch stays in the account menu ("Seasonal themes") and the display box.
- The mark's look (
- 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) arekeepalive, 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.
- Saves outlive the page: both PUTs (
- 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.