Skip to content

20260616

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jun 15:59
· 9 commits to develop since this release

This release is quite packed, with a new admin panel, safer account/CLI flows, recording storage improvements, and lots of rendering and performance work.

Highlights

  • replaced the old admin panel with a new one, including dashboard, users, recordings, streams, saved queries, and a compact query language
  • added admin actions for editing users/recordings/streams, merging users, managing recording visibility/featured/archive state, and disconnecting streams
  • admin panel can now be served at /admin on the main endpoint for admin users, opt-in via ADMIN_PANEL_ON_MAIN_ENDPOINT
  • the first registered user on a fresh instance is now granted admin access automatically
  • sign-up now asks for username during account creation
  • added confirmation pages for login, sign-up, CLI linking, and email changes
  • improved CLI linking flow with a preview/confirmation page before claiming an unregistered CLI
  • uploaded asciicast files are now stored zstd-compressed, with existing recordings compressed by a background job
  • .cast, .svg, and .txt responses can now be served with zstd/gzip encoding when supported by the client
  • added a more robust file cache for generated/downloaded files, with better timeout and crash handling
  • added “Adaptive palette” option for terminal rendering
  • improved SVG/PNG preview rendering for Nerd Font symbols, Powerline symbols, blocks, quadrants, sextants, cursor colors, and original-theme recordings
  • significantly reduced memory usage of snapshot/SVG rendering and improved PNG/SVG rendering performance
  • upload API now accepts title, description, visibility, and audio URL parameters
  • added clearer API auth errors, including account_required, and optional upload limits for unregistered CLIs via UNREGISTERED_UPLOAD_COUNT_LIMIT
  • added optional pagination limits for guests/authenticated users
  • improved search/query performance with new indexes and configurable SEARCH_WORK_MEM
  • upgraded asciinema player and runtime/dependency stack, including Erlang/OTP 28 and Elixir 1.19
  • removed the default demo recording from new installs
  • lots of new unit, controller, socket, feature, SVG, PNG, gzip/zstd, and admin tests

New admin panel

admin-panel-dashboard

The admin panel has been rebuilt from scratch. It now includes a dashboard with activity summaries, searchable/sortable index pages, saved queries, richer show pages, and direct admin actions such as user merge, stream disconnect, recording archive/unarchive, visibility changes, and featured toggles.

The panel can still run on the admin endpoint (port 4002), and can also be exposed at /admin on the main endpoint by setting ADMIN_PANEL_ON_MAIN_ENDPOINT=true.

Recording storage and generated media

Uploaded asciicast files are now stored compressed with zstd. Existing recordings are queued for compression during migration, and generated/downloaded .cast, .svg, .txt, and .png files now use the new file cache.

Clients that advertise zstd or gzip support can receive compressed responses directly, while clients without compression support continue to receive plain responses.

Account and CLI flows

Login, sign-up, CLI linking, and email changes now require an explicit confirmation step. Sign-up also collects the username up front.

CLI linking now shows a preview page before completing the link. This makes the existing unregistered-CLI claim flow explicit before recordings, streams, and CLI identities are moved to the signed-in account.

Upgrading

No manual changes needed other than bumping the container image version number as shown here.

Database migrations will enqueue background jobs to compress existing recordings. Large instances may see extra maintenance queue activity after deploy.

If you previously used the admin_add / admin_rm release tasks, note that they have been removed. Admin access is now managed through the admin panel, and fresh instances grant admin access to the first registered user automatically.