Skip to content

chore: version packages - #63

Merged
karngyan merged 1 commit into
mainfrom
changeset-release/main
Oct 11, 2026
Merged

karngyan merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@karnstack/kino@0.18.1

Patch Changes

  • fc39e80: Scenes: a paused seek into a scene that is still preloading now draws it when the load lands. Stage preloads the next scene with no callback, so when a seek (often a ?t= deep link) landed in that scene before its preload finished, the redraw callback for the current scene was dropped because the id was already pending. Paused, nothing else re-renders the stage, so it stayed empty until the next play or seek. Every caller of a pending scene now joins its waiters and each one runs when the load resolves. The timeupdate workaround around loadScene can be removed.

  • 8285f9b: Mux and native: a destroyed provider leaves nothing playing. destroy() removed its listeners and detached the element, but detaching a media element does not stop it. A removed <mux-video> keeps playing and keeps pulling HLS segments, and nothing on the page can reach it any more, because every control talks to the provider that owned it. React invokes a mount effect twice in development, so a player created with autoPlay would mount, tear down and mount again, and the discarded element played on underneath the live one, a beat apart, until the tab closed. The same thing happened to any player that was already playing when a route change, a remount on a changed key or a fast refresh tore it down. A source change is not one of these: it flows through swapSource, which keeps the element and never calls destroy().

    Both providers now pause the element and drop its source before removing it. For mux that means clearing the src attribute, which is what makes mux-video tear its playback engine down; the element's own disconnectedCallback cannot cover this, because mux-video finishes its setup a microtask after mount and a mount and teardown that land in the same tick get there first. The native provider already released its source, and now pauses as well, so its stop no longer rides entirely on load().

    The YouTube, Vimeo and scenes providers were already clean. The first two hand teardown to the SDK's own destroy(), which takes the player iframe with it, and scenes removes the host iframe, which discards the document and the audio element inside it. A detached iframe stops. A detached media element does not.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
kino da2e2f4 Commit Preview URL

Branch Preview URL
Oct 11 2026, 05:39 PM

@karngyan
karngyan merged commit 1d24db2 into main Oct 11, 2026
4 checks passed
@karngyan
karngyan deleted the changeset-release/main branch October 11, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant