Skip to content

v0.23.0: session recording, recording management, iPhone rendering fix

Choose a tag to compare

@github-actions github-actions released this 15 Jul 11:14
· 31 commits to master since this release

Session recording. --record-dir <dir> on serve and hub records sessions
as timestamped native shellglass streams (.sgs, JSONL): the push
transcript itself — register, image payloads, wire messages, verbatim — so
a recording is self-contained (fonts, template, and images ride along) and
replayable at full mirror fidelity by anything that speaks the wire format.
The hub writes one file per push connection under <dir>/<session-id>/; a
pusher declines with push --no-record (or SHELLGLASS_NO_RECORD=true). No
wire-protocol changes: existing clients and hubs interoperate unchanged.

Recording management, two credentialed surfaces with the same verbs — list,
retrieve, delete — differing only in scope. The management API reaches any
session's recordings (GET/DELETE /api/sessions/by-{id,slug}/…/recordings[/name],
driven by the new shellglass sessions recordings list|get|delete --id|--slug); session owners reach only their own, authorized by the
session key itself (/recordings[/name], via the new shellglass recordings <url> list|get|delete subcommand or the slim shellglass-recordings
binary). Recordings are plain files: rotation and retention are the
operator's, and files outlive session deletion (still listable by id).

iPhone rendering fixed. iOS Safari's text autosizer inflated the terminal's
text (landscape phones especially), distorting the whole terminal box to
roughly double width and drawing glyphs far too big for the grid. The
screen now opts out (text-size-adjust: 100% — user pinch-zoom is
unaffected) in the pushed CSS, the placeholder page, and the
viewer-injected rules; updated push clients deliver the fix through
existing hubs verbatim, and iframe-less embeds pick it up from an updated
hub's viewer.js.

Also:

  • gen-key and print-id merged into one shellglass-keytool binary.
    BREAKING (standalone binaries only): shellglass-gen-key /
    shellglass-print-id are gone — use shellglass-keytool gen-key /
    print-id, or the unchanged shellglass gen-key / print-id
    subcommands. Keys and ids are byte-identical.
  • Release archives now bundle seven binaries, including the new
    shellglass-recordings.