Skip to content

showtime 0.3.4

Choose a tag to compare

@FavioVazquez FavioVazquez released this 02 Oct 22:45
· 61 commits to main since this release
fae3aa8
  • Frame 0 of a page with CSS animations could show where the animation had got to in real time.
    The stage paused CSS animations and Web Animations at the first seek, but by then they had been running
    since page load, and transform/opacity animations run on the compositor: pausing them there left the
    last real-time value on screen until the property changed again, so the first capture had an element a
    few pixels along (the css-clock fixture's dot was 12 px out at t=0 on about half the runs, which the
    nightly reported as frames differ when reached in another order or after a pause (0s)), and layers
    that had been animated on the compositor rasterised differently depending on the frames seeked before
    (the Windows raster noise verdict). In render mode stage.js now holds every animation from the
    start (animation-play-state: paused in an adopted style sheet, and Element.animate() returns a
    paused animation), so nothing runs before the first seek and a frame depends only on t;
    data-st-free elements are left alone as before.
  • A seeked <video> could be captured before its new frame was on screen. seekOne waited for
    seeked and one frame, but the frame reaches the compositor after seeked, so a slow machine captured
    the previous frame: a black frame 0 in an adopted Python render (qa first_frame_black on macOS) and
    "frames depend on seek order" in check for a captured video on Windows. The seek now also waits for
    the frame to be presented (requestVideoFrameCallback), or 500 ms after seeked if it never comes.

Includes everything in 0.3.3 (security fixes and the audio mirror); 0.3.3 was not published to npm or the MCP Registry, so this is the next version there after 0.3.2.


Checked: the full test tier of the affected tests on macOS (Apple Silicon and Intel), Windows and Ubuntu, and the end-to-end install-and-render test on four platforms.

Install or update: /plugin marketplace update showtime in Claude Code, npx -y @faviovazquez/showtime-mcp@0.3.4 for the MCP server, or the attached showtime-0.3.4.mcpb for Claude Desktop.