← All posts

v0.3.12 — Portable Session Sharing, Short Links, and UI Settings

Share chat sessions with short links (server-backed, compressed snapshots, or local-only). New UI settings for share-link mode and app-wide font family. OpenCode Entire plugin hook for session lifecycle tracking.

0.3.12 brings session sharing to the web: you can now share a Keating learning session as a short link, a compressed snapshot embedded in the URL, or a local-only shared link. The backend is powered by Nitro endpoints for publishing and loading sessions from server storage.

Portable Session Sharing

The chat header now includes a share button with three sharing modes: server-backed short links (persisted on the Keating server), compressed snapshot links (the full session payload is embedded in a base64 URL fragment for maximum portability), and local-only short links (shared via browser clipboard with no server roundtrip). Each mode preserves the full message history, model selection, and thinking-level settings.

Nitro Share Storage Backend

Server-backed sharing is handled by a new Nitro API route at /api/share. Sessions are published with a short random slug, stored server-side, and loaded on demand. The endpoint also supports updating existing shares so you can keep a link alive as a session evolves. Compressed snapshots bypass the server entirely: the session JSON is gzipped, base64-encoded, and appended to the URL hash for zero-dependency sharing.

UI Settings Expansion

A new Settings section lets you choose the default share-link mode (server, snapshot, or local) and select your app-wide font family. Forked sessions now preserve parent metadata and appear as part of an explorable session tree in the sidebar.