Christian PillsburyandClaude Opus 4.8 2520373f2f refactor(spf): make RecurringRunner a self-recursive schedule(), require reschedule
Replace the imperative `#loop()` with a single chained promise: each cycle's
`.then` returns the next cycle's `schedule(clone())`, so the recurrence is the
method calling itself. The slot is released just before re-scheduling the same-id
clone so the call advances rather than dedup-returning; ownership is tracked by
`#active === task`.

Error handling moves downstream — the runner no longer invents a retry policy:
- A genuine run/reschedule failure rejects schedule()'s promise (propagates to
  the caller); no swallowing.
- The runner's own cancellation (abort/supersede/destroy) is not a failure, so an
  aborted recurrence settles quietly — callers don't `.catch` routine teardown.

Consequences:
- `reschedule` is now required; `runOnce` expresses run-exactly-once explicitly
  (a missing reschedule is a bug, not a silent run-once).
- Reschedule-driven retry-on-transient-error is dropped (a rejected run is
  terminal). The retry logic in delayedReschedule / mediaPlaylistReloadDelay is
  now vestigial — to be cleaned up or relocated to the fetch layer next.
- `resolve-track` catches schedule()'s promise (abort settles quietly; genuine
  resolve failures end the recurrence, TODO surface to state).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:25 -07:00
2026-05-19 12:48:40 -07:00
2026-04-15 15:28:38 -07:00

Video.js v10

package-badge discord-badge pnpm

Modern, modular, and composable media player framework for Web and React.

🚧 Beta - close to stable. Experimental adoption in real projects. 🚧

Video.js v10 is close to stable. Try it out in real projects and share your feedback 🙏.

Timeline

  • Technical Preview (Complete): Initial showcase for Demuxed.
  • Alpha (Complete): See milestone
  • Beta (Complete): See milestone
  • GA (Mid 2026): See milestone ← WIP
  • Video.js (End of 2026): Video.js core/contrib parity and supported plugins migrated.

Documentation

If you'd like to get started and learn more, you can find our documentation on our website:

Community

If you need help with anything related to Video.js 10, or if you'd like to casually chat with other members:

Contributing

We'd love for you to join our community channels above and give us feedback! Feedback on any of the following would help us:

  • Player skin designs
  • Component structures and APIs
  • Package structure and exports
  • Repo, workspace, contributor guides

Please see our contributing guide for getting set up locally and making code or docs changes.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

S
Description
[Beta] Video.js v10 - open source media player framework for Web and React.
Readme
57 MiB
Languages
TypeScript 81.9%
MDX 10.9%
CSS 2.6%
Astro 2.5%
JavaScript 1.2%
Other 0.8%