Christian Pillsbury and Claude Opus 4.8
557d8bd72f
refactor(spf): drive live reload via a RecurringRunner instead of an epoch signal (WIP)
...
Replace the signal-as-event live-reload scheduler with a runner-driven model.
The `resolveTrack` loader schedules its resolve work on a new `RecurringRunner`
that re-runs the task on an injected `reschedule` policy; the separate
`scheduleTrackReload` behavior and its per-type reload-epoch signals are deleted.
Core (`core/tasks`):
- `Task.run()` is now memoized (runs once, shares the result across calls) and
gains `clone()` (fresh, pending, structurally identical) — added to `TaskLike`.
- `RecurringRunner`: single-slot, id-keyed (dedup same id / abort-and-replace on
new id), time-free. Each cycle runs `Promise.all([task.run(), reschedule(task,
previous, signal)])` and re-runs a `clone()` while reschedule resolves `true`.
- `Reschedule<T> = (task, previous, signal) => PromiseLike<boolean>` — invoked
concurrently with the run, observes it via the memoized `run()`, owns its delay.
- `delayedReschedule(cadence)` builds a Reschedule from a pure ms-cadence fn,
start-anchored (subtracts the run's elapsed) so reloads are measured from
load-start per RFC 8216 §6.3.4, preserving half-on-unchanged.
Supporting:
- `@videojs/utils/time`: add cancellable `sleep(ms, signal)`.
- `media/hls/reload-policy`: `mediaPlaylistReloadDelay` (pure cadence; relocated
scheduler logic — target-duration, half-on-unchanged, stop-on-ENDLIST, retry).
- `resolve-track`: baked universal completeness gate + injected `reschedule`;
engine composes `delayedReschedule(mediaPlaylistReloadDelay)`.
WIP: not fully validated end-to-end against a live stream through this path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 09:59:24 -07:00
edfec1c93e
revert(core): unmerge i18n stack base ( #1707 )
...
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 15:20:35 -07:00
accf4bfa34
fix(packages): escape HTML special chars in serializeAttributes to prevent XSS ( #1670 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 12:23:19 -07:00
768bf09da0
feat(core): add i18n foundation with English locale and UI wiring ( #1589 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 11:55:38 -07:00
Wesley Luyten and GitHub
1b31f3e8d7
feat(core): add vimeo media host and html/react components ( #1667 )
2026-06-18 09:36:31 +10:00
Wesley Luyten and GitHub
0ffe1a9197
feat(media)!: add Google Cast by default to HLS, DASH media ( #1661 )
2026-06-12 17:34:14 -07:00
Santiago Puppo and GitHub
24a78d253a
refactor(core): airplay button ( #1614 )
2026-06-03 13:54:28 -07:00
Sam Potts and GitHub
760870fdf2
fix(core): disable toggle captions when there are no captions ( #1598 )
2026-05-26 09:49:50 +10:00
1a3911151a
chore(build): quiet tsdown size reports in local dev ( #1569 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-20 11:38:26 +10:00
5f1c2370fa
chore: release main ( #1477 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-19 12:48:40 -07:00
Sam Potts and GitHub
ad831d25f0
feat(packages): add playback rate menu ( #1527 )
2026-05-14 08:37:52 +10:00
0cfd3bb395
feat(spf): HLS engine composition walkthrough + doc-driven cleanups ( #1512 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-05 12:07:26 -07:00
cce48c01fa
chore: release main ( #1375 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-27 13:47:20 -07:00
rahim and GitHub
84c9e540bd
chore(root): migrate typecheck to @typescript/native-preview (tsgo) ( #1400 )
2026-04-23 11:11:50 +10:00
2f7212028c
refactor(react): replace prototype-walking and inferred class props ( #1376 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-20 09:20:46 -07:00
Wesley Luyten and GitHub
000c54e16a
chore: release main ( #1353 )
2026-04-18 01:18:23 -07:00
rahim and GitHub
769d436f4e
fix(react): prevent gesture tap from firing on slider interactions ( #1361 )
2026-04-17 18:01:26 -07:00
Wesley Luyten and GitHub
8530316987
revert(packages): add server-only bundles ( #1349 ) ( #1354 )
2026-04-17 11:44:53 -07:00
rahim and GitHub
3331fdaf25
fix(packages): add server-only bundles ( #1349 )
2026-04-16 00:59:14 -07:00
Wesley Luyten and GitHub
521774a95b
chore: release main ( #1341 )
2026-04-14 17:19:40 -05:00
77faf060d4
chore: release main ( #1339 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-14 17:11:09 -05:00
c2cb16bd8b
chore: release main ( #1336 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-14 16:54:01 -05:00
da598b285a
chore: release main ( #1313 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-14 15:58:18 -05:00
rahim and GitHub
b768c29f98
fix(packages): ignore gestures on interactive child elements ( #1327 )
2026-04-14 02:11:01 -07:00
Wesley Luyten and GitHub
8f1653efcd
refactor(packages)!: replace DelegateMixin & ProxyMixin with MediaHost base classes ( #1292 )
2026-04-14 00:18:11 -05:00
Wesley Luyten and GitHub
d67a3699e4
chore: release main ( #1308 )
2026-04-10 22:09:56 -07:00
rahim and GitHub
1509a66f60
feat(packages): add gesture bindings to default skins and presets ( #1310 )
2026-04-10 22:08:10 -07:00
Wesley Luyten and GitHub
12877c34fc
chore: release main ( #1232 )
2026-04-10 15:18:11 -07:00
rahim and GitHub
071325de4d
fix(utils): stable sort comparator and orphaned JSDoc ( #1286 )
2026-04-08 17:39:28 +10:00
rahim and GitHub
53835d7355
chore(packages): standardize conventions ( #1279 )
2026-04-07 22:05:53 -07:00
rahim and GitHub
627ea204fc
feat(packages): add hotkey system with coordinator, actions, and ARIA support ( #1238 )
2026-04-07 00:13:05 -07:00
rahim and GitHub
0c95ab4109
refactor(packages): move slider throttle from commit to change ( #1219 )
2026-04-05 22:19:11 -07:00
d75cd82ef8
chore: release main ( #1212 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-03 17:56:01 -05:00
Wesley Luyten and GitHub
dcb4587dba
chore: release main ( #1193 )
2026-04-03 00:19:11 -07:00
4cda8fb94f
refactor(html): SkinMixin -> SkinElement ( #1159 )
...
Co-authored-by: Rahim <rahim.alwer@gmail.com >
2026-03-31 22:22:45 -07:00
63a82c0f92
chore: release main ( #1170 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-31 20:37:58 -05:00
Wesley Luyten and GitHub
d7d6f70797
chore: release main ( #1115 )
2026-03-31 17:11:33 -07:00
Wesley Luyten and GitHub
1b2afc6e41
feat: add native hls media + refactor ( #1154 )
2026-03-30 20:13:19 -05:00
rahim and GitHub
c3641c888c
fix(utils): polyfill AbortSignal.any for Chromium ≤115 ( #1142 )
2026-03-26 13:47:48 -07:00
Wesley Luyten and GitHub
271a8c8502
feat: add Mux video component ( #1036 )
2026-03-24 18:19:50 -05:00
rahim and GitHub
864f2e059a
chore(packages): upgrade tsdown 0.20.3 → 0.21.4 ( #1102 )
2026-03-24 02:06:26 -07:00
Wesley Luyten and GitHub
7880271231
chore: release main ( #1100 )
2026-03-24 01:55:32 -07:00
rahim and GitHub
8e2e56e36e
chore: upgrade typescript 6, vitest 4, align spf package ( #1101 )
2026-03-24 01:53:36 -07:00
ff8f70e8f2
chore: release main ( #1094 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-24 11:02:34 +11:00
4ef56eb0a9
chore: release main ( #1074 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-23 10:01:05 -07:00
e2d55de26b
chore: release main ( #1072 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-20 16:54:03 -07:00
b2b424ee65
chore: release main ( #955 )
...
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-19 12:35:22 -05:00
Sam Potts and GitHub
7bacb1b2ae
fix(utils): handle missing media.querySelectorAll for HLS ( #986 )
2026-03-18 08:57:29 +11:00
Sam Potts and GitHub
82ede77322
fix: correct popup fallback positioning offsets ( #981 )
2026-03-17 13:14:35 +11:00
ba5a72fb12
chore: release main ( #947 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-16 07:25:02 +11:00