Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 28, 2025

This PR contains the following updates:

Package Change Age Confidence
asciinema-player 3.7.1 -> 3.12.1 age confidence

Release Notes

asciinema/asciinema-player (asciinema-player)

v3.12.1: 3.12.1

Compare Source

This version includes additional fix for seeking past the end of recording and restarting the playback.

v3.12.0: 3.12.0

Compare Source

Notable changes:

  • Live audio stream support for WebSocket sources (see below)
  • Improved adaptive buffer algorithm for WebSocket sources (see below)
  • Fixed keyboard shortcuts issue (stopped working) caused by the new mute/unmute icon
  • Fixed seeking after playback ended (#​282)

Live audio playback

The audioUrl option, introduced in v3.11, can now also be used with live (WebSocket) sources:

AsciinemaPlayer.create("ws://example.com/ws/stream", document.getElementById("demo"), {
  audioUrl: "http://example.com/icecast/stream.ogg"
});

The URL should be a live audio source - either a direct HTTP audio stream (.mp3, .aac, .ogg, etc) such as Icecast/Shoutcast endpoint, or HLS playlist (.m3u8).

Note that it's not recommended to use autoplay: true option together with audioUrl - browsers often require explicit user activity (click, tap) to enable sound, which in the player's case would be starting the playback by clicking on the play button. Without user click the autoplay will start the playback but the sound likely won't be there.

Also, for the audio playback to work a server that handles the audio URL (e.g. Icecast) must be configured to allow CORS requests from the page (URL) that hosts the player.

New adaptive buffering

The WebSocket driver uses adaptive buffer (expressed in time) to ensure smooth, stutter free playback of live sessions with minimal latency.

The previous algorithm used a moving average over a sliding window of N recent latencies. It did ok-ish job, but given the sparse nature of the event stream (no constant rate) it turned out to be not ideal. Here's how it performed. Red dots are measured latencies, green line is effective buffer time:

old

The new algorithm uses time based EMA (exponential moving average), which is much more relevant for sparse events, resulting in more stable and overall lower buffer size when applied to a wide spectrum of terminal activities (here applied to the same input latencies as the one above):

new

v3.11.1: 3.11.1

Compare Source

This release brings additional fixes for audio loading in Safari.

v3.11.0: 3.11.0

Compare Source

Notable changes:

  • Synced audio playback (see below)
  • JS bundle size reduced by 43 KB (202 KB -> 159 KB) - it's now 78% of the previous release (v3.10) size
  • WebSocket driver now uses jitter for exponential backoff calculation when reconnecting
  • WebSocket driver can play live sessions encoded in asciicast v3 compatible format
  • When loading of a recording takes 3s a loading animation is now shown - this may typically occur during initial buffering of the audio
  • Fixed time position update when stepping through a recording with , and . keys

The main new thing in this version is the synced audio playback.

When audioUrl is passed as an option when mounting the player on the page, the player automatically creates hidden audio element, ensures the audio file is ready for playback, and syncs audio playback position with the terminal recording playback (pause, resume, seek just work).

AsciinemaPlayer.create("/demo.cast", document.getElementById("demo"), {
  audioUrl: "https://example.com/voiceover.mp3"
});

There's also a new button (icon) and keyboard shortcut (m key) for muting/unmuting.

Note that for the audio playback to work:

  • a server that handles the audio URL must be configured to allow CORS requests from the page (URL) that hosts the player
  • that server must support HTTP range requests
  • you must not use autoplay: true option - browsers often require explicit user activity (click, tap) to enable sound

Check out this demo:

asciicast

v3.10.0: 3.10.0

Compare Source

Notable changes:

  • vastly improved wide character (CJK/emoji) support (this solves long standing set of issues: #​270, #​266, #​199, #​185)
  • added preliminary support for the new asciicast v3 recording format
  • added gruvbox-dark theme (thanks @​hupfdule)
  • increased cursor blink interval from 500ms to 600ms
  • improved screen reader support (thanks @​DataTriny)
  • fixed terminal resizing during seek and step actions (thanks @​gustavosbarreto)
  • fixed crash when starting the playback while the player is still initializing
  • fixed live stream handling when producer reconnects to the server
  • various UI tweaks

https://www.npmjs.com/package/asciinema-player/v/3.10.0

v3.9.0: 3.9.0

Compare Source

Notable changes:

  • keyboard shortcuts are now easily discoverable via help popup triggered with ? key or the keyboard icon in the control bar
  • added "step back", triggered with , (comma) key, a complementary feature for existing "step forward" (. key)
  • refactored websocket driver, and upgraded it for recent changes in ALiS protocol (uses WS subprotocol negotiation, supports both 8 and 16 color palettes, partially supports input and marker events, and more)
  • player's core can now be run in a split mode, which greatly improves UI responsiveness in certain cases (see below)

https://www.npmjs.com/package/asciinema-player/v/3.9.0


The split mode, runs player's UI and player's core (parsing, terminal emulation) in separate OS threads, which improves UI's responsiveness during playback. In this setup the UI code runs in the window context, while the processing code runs in a WebWorker. The benefit of this configuration is typically observed only for high frame-rate / high bandwidth recordings. The player hosted on asciinema.org runs in the split mode. For typical demos/sessions it's not worth the setup hassle. This is advanced setup and in 99% of the cases you don't need it.

v3.8.2: 3.8.2

Compare Source

Notable changes:

  • fixed blinking of ascii drawing chars (#​273)
  • background color is no longer brightened (value + 8) when blink attribute is set - this caused ugly rendering in some scenarios, and no terminals I tested do this either

v3.8.1: 3.8.1

Compare Source

Notable changes:

  • upgraded avt to the latest version
  • added dist/bundle/asciinema-player.min.js to package exports to allow pre-3.8.0 usage (#​263)

v3.8.0: 3.8.0

Compare Source

Notable changes:

  • added support for colons in SGR color sequences - fixes (asciinema/avt#9, #​154, #​231)
  • added support for auto/<theme-name> specification for theme option (see below)
  • added help overlay, triggered by "?" key
  • improved adaptive buffering algorithm in the websocket driver
  • improved rendering of block drawing characters
  • made text of the time display and marker tooltips bigger
  • made the control bar and markers use terminal theme's foreground and background colors
  • added tooltip for the fullscreen button
  • added "type": "module" to package.json to fix import error with some bundlers (thanks @​MaddyGuthridge)
  • fixed player element focus behavior when clicking on a marker dot or the playback toggle button

https://www.npmjs.com/package/asciinema-player/v/3.8.0


Recordings made with asciinema CLI 3.0 or later may embed original terminal theme, which is used by the player when available.

Before this release the only way to let the player use the embedded theme automatically was not specifying the theme option when initializing the player. When the theme option was not used, the player favored the embedded theme, falling back to asciinema theme. There was no way to specify "use the original theme when available, fall back to monokai".

This release adds the ability to specify the above wish as { theme: "auto/monokai" }. You can use any built-in theme, e.g. { theme: "auto/dracula" }, and the player will use Dracula theme if the original theme was not captured at the time of recording.

To always use a specific theme regardless of the presence of the original theme in a recording file, use { theme: "<theme-name>" }, e.g. { theme: "dracula" }.

Default value of the theme option (when one not specified) is now auto/asciinema.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

vercel bot commented Sep 28, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
laravel-cycle-orm-adapter Error Error Oct 12, 2025 1:37pm

@renovate renovate bot added type: deps Adding, updating dependencies (deps) type: docs Documentation (docs) labels Sep 28, 2025
@renovate renovate bot requested a review from lotyp as a code owner September 28, 2025 16:33
@renovate renovate bot enabled auto-merge (squash) September 28, 2025 16:33
Copy link

coderabbitai bot commented Sep 28, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

codecov bot commented Sep 28, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.10%. Comparing base (9e411a2) to head (1e0cb9d).

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #761   +/-   ##
=========================================
  Coverage     76.10%   76.10%           
  Complexity      252      252           
=========================================
  Files            46       46           
  Lines          1000     1000           
=========================================
  Hits            761      761           
  Misses          239      239           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 0373212 to 0235559 Compare September 28, 2025 16:39
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 0235559 to 19d31cf Compare September 28, 2025 17:32
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 19d31cf to 13d4d47 Compare September 28, 2025 17:59
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 13d4d47 to 38330b9 Compare October 3, 2025 13:49
@renovate renovate bot changed the title chore update docs dependencies to v3.10.0 chore update docs dependencies to v3.11.0 Oct 3, 2025
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 38330b9 to 12cc79b Compare October 7, 2025 15:53
@renovate renovate bot changed the title chore update docs dependencies to v3.11.0 chore update docs dependencies to v3.11.1 Oct 7, 2025
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from 12cc79b to f83d947 Compare October 11, 2025 20:54
@renovate renovate bot changed the title chore update docs dependencies to v3.11.1 chore update docs dependencies to v3.12.0 Oct 11, 2025
@renovate renovate bot force-pushed the renovate/asciinema-player-3.x-lockfile branch from f83d947 to 1e0cb9d Compare October 12, 2025 13:36
@renovate renovate bot changed the title chore update docs dependencies to v3.12.0 chore update docs dependencies to v3.12.1 Oct 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: deps Adding, updating dependencies (deps) type: docs Documentation (docs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants