Commit Graph
50 Commits
Author SHA1 Message Date
Christian PillsburyandClaude Opus 4.8 3cbfdace6c fix(sandbox): classify DVR/EVENT from playlist type, not window size
The Live/DVR panel guessed DVR from a 60s seekable-window threshold, so an
EVENT source read as 'sliding live' until it had aggregated enough segments.
Classify from the parsed playlistType ('EVENT') via getMediaPlaylistMetadata
instead. Gate on metadata presence (show 'live (resolving…)' until a timeline
track has metadata) so an EVENT source no longer flickers through 'sliding
live' on load/reload before the playlist resolves.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 14:20:44 -07:00
Christian PillsburyandClaude Opus 4.8 da33b10952 test(sandbox): add ffmpeg + Mux live/DVR test-stream scripts and orchestrator
apps/sandbox/scripts/live/ — spin up an ephemeral Mux live source for
exercising the live path in any HLS-capable sandbox page:
- create-stream.sh: create a low-latency Mux live stream (creds via
  --token-id/--token-secret flags or MUX_TOKEN_ID/MUX_TOKEN_SECRET env;
  --quiet for scripting)
- broadcast.sh: push an ffmpeg testsrc + tone feed to the stream
- dvr-url.sh: resolve active_asset_id to the DVR/EVENT playback URL
- live-test.sh: orchestrate create -> broadcast -> wait -> open the page,
  parameterized by --page (renderer-agnostic), --flavor sliding|dvr|both,
  --port, --params, --latency; deletes the stream on exit unless --keep
- README.md: quick-start, manual steps, and cross-renderer reuse notes

Credentials are read only from flags/env; none are committed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 13:52:21 -07:00
Christian PillsburyandClaude Opus 4.8 6888b83abe feat(sandbox): add live/DVR diagnostics + seek controls to spf-segment-loading
Adds a Live/DVR panel (stream type, window classification, live gap,
DVR window length, buffer-ahead, presentation anchor + wall-clock) and
seek controls (seek-to-live, -10/-30s, jump to window start) to the SPF
segment-loading harness. All derived sandbox-side from presentation
streamType + the native video; degrades cleanly to on-demand.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 10:55:15 -07:00
Christian PillsburyandClaude Opus 4.8 9b973b8e66 refactor(spf): drop redundant live-hls and live-playlist-spike engines
Live playback was folded into createSimpleHlsEngine (VoD + live, one
composition), making the separate createLiveHlsEngine — which only wrapped
the same behaviors plus the hls engine itself — redundant, and leaving
live-playlist-spike an orphaned experiment with no exports or consumers.
Delete both, drop the ./live-hls package export and tsdown entry, and point
the sandbox live harness at createSimpleHlsEngine.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:44 -07:00
Christian PillsburyandClaude Opus 4.8 a82d9d85c9 chore(sandbox): accept ?src= in the live-hls harness
Live test streams are ephemeral; let the harness target any m3u8 via a query
param (default kept) so it can be pointed at a fresh stream without editing code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:22 -07:00
Christian PillsburyandClaude Opus 4.8 4a58e85015 feat(spf): export ./live-hls + sandbox live-engine harness
Add the ./live-hls subpath export (build entry + package export) and a
LiveHlsEngineSignals type. Add a bare sandbox template (live-hls-engine) that
wires createLiveHlsEngine to a raw <video> — no player/skin — and logs playback
state, for end-to-end live-playback verification.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:21 -07:00
Santiago PuppoandGitHub a74b8c0993 refactor: Rename SPF background-looping-video into background-video (#1731) 2026-06-24 11:09:20 -03:00
a5a7953603 chore(site): upgrade to Astro 7 and consolidate on Vite 8 (#1721)
Co-authored-by: Claude <noreply@anthropic.com>
2026-06-23 14:23:21 -07:00
23538e3649 feat(spf): text tracks switching (#1687)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 07:54:51 -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
Ronald UrbinaandGitHub 07428519a5 feat(packages): add poster placeholder blur-up pattern (#1632) 2026-06-18 12:05:41 -03:00
Wesley LuytenandGitHub 1b31f3e8d7 feat(core): add vimeo media host and html/react components (#1667) 2026-06-18 09:36:31 +10:00
Santiago PuppoandGitHub 33873bc4ae feat(spf): Add maxResolution to SPF Background Video (#1654) 2026-06-17 11:36:02 -03:00
Wesley LuytenandGitHub 0ffe1a9197 feat(media)!: add Google Cast by default to HLS, DASH media (#1661) 2026-06-12 17:34:14 -07:00
Sam PottsandGitHub 4a81e048a1 fix(test): stabilize e2e tests (#1678) 2026-06-12 07:13:07 +10:00
00aa6247b8 feat(spf): multi-cdn support (#1668)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 10:09:16 -07:00
Sam PottsandGitHub 6b0d3b6b2f fix(test): update e2e menu selectors (#1674) 2026-06-11 12:29:59 +10:00
00b6f0be1d feat(packages): add settings menu (#1615)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 13:54:45 +10:00
Sam PottsandGitHub 62d0524b83 feat(core): lock fullscreen orientation (#1656) 2026-06-10 10:32:43 +10:00
d9f9efde88 fix(spf): refactor track switching to rules (#1658)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:48:34 -07:00
057f32573e feat(spf): multi-track audio + skills building features and behaviors (#1605)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-04 09:53:13 -07:00
Sam PottsandGitHub 127443aaa2 fix(test): update slider thumbnail selector (#1653) 2026-06-03 08:57:52 -07:00
Sam PottsandGitHub c5f75166fd feat(packages): update menu group labels (#1643) 2026-06-02 20:26:19 +10:00
Sam PottsandGitHub 2f5e23e100 fix(core): update trigger aria-expanded on close (#1644) 2026-06-02 17:07:20 +10:00
Santiago PuppoandGitHub 3741e8de12 feat(spf): background looping video (phase 1) (#1602) 2026-06-01 16:13:26 -03:00
1a3cb45b29 feat(spf): basic audio only use case + use-case-composition doc-type + implementation skills (#1584)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:48:40 -07:00
c112b6248b fix(spf): conventions, per-type specialization, config threading (#1537)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 11:38:47 -07:00
2ad9fdf7ed test(sandbox): adapt playback rate E2E to menu UX (#1545)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-18 18:03:16 -07:00
8fa63c6567 feat(spf) discrete signals and behavior objects (#1508)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 08:32:44 -07:00
e3c1b28032 feat(core): menu core layer and DOM keyboard navigation (#1503)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 18:15:49 +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
0620814a67 feat(packages): add UI support for gestures and hotkeys (#1388)
Co-authored-by: Rahim <rahim.alwer@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 10:34:12 +10:00
Wesley LuytenandGitHub e37d5df873 feat(packages): add live button component (#1473) 2026-04-30 18:00:15 -07:00
Sam PottsandGitHub d0b36ed5b8 fix(icons): use icon exports in ejected skins (#1489) 2026-04-29 16:05:35 +10:00
Sam PottsandGitHub 8e2b7e4f6d fix(ci): use biome to sort CSS properties (#1490) 2026-04-29 16:04:20 +10:00
Christian PillsburyandGitHub 69852ddeb0 docs/spf fundamental concepts (#1396)
Feedback from @decepulis treated as a fast follow/incremental improvement effort for expediency.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 11:16:56 -07:00
89594292d4 docs(root): fix stale references and document sandbox workflow (#1464)
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-24 14:29:24 -05:00
rahimandGitHub 84c9e540bd chore(root): migrate typecheck to @typescript/native-preview (tsgo) (#1400) 2026-04-23 11:11:50 +10:00
Wesley LuytenandGitHub d9c00491e7 feat(packages): add live-video and live-audio presets (#1399) 2026-04-22 12:43:27 -07:00
Wesley LuytenandGitHub 587c302fe5 feat(core): add HLS stream-type detection and live duration (#1387) 2026-04-21 20:27:54 -07:00
rahimandGitHub 769d436f4e fix(react): prevent gesture tap from firing on slider interactions (#1361) 2026-04-17 18:01:26 -07:00
4ecc870685 feat: add e2e test harness (#1237)
Co-authored-by: Christian Pillsbury <cpillsbury@mux.com>
2026-04-15 15:28:38 -07:00
Wesley LuytenandGitHub 8f1653efcd refactor(packages)!: replace DelegateMixin & ProxyMixin with MediaHost base classes (#1292) 2026-04-14 00:18:11 -05:00
Wesley LuytenandGitHub 9fac0fca3d feat(packages): add mux-audio element and react component (#1259) 2026-04-07 14:59:22 -05:00
Wesley LuytenandGitHub 9317c0433c fix(core): enable default tracks for chapters and metadata (#1216) 2026-04-03 17:45:57 -05:00
rahimandGitHub 5734c4ad3c fix(site): remove default attr from storyboard track elements (#1211) 2026-04-03 01:25:33 -07:00
Wesley LuytenandGitHub 5a3254fd81 chore(sandbox): fix app for mux, native hls (#1207) 2026-04-02 23:13:23 -05:00
Wesley LuytenandGitHub 5239b9b834 feat(core): add native hls error handling (#1190) 2026-04-02 22:25:26 -05:00
Sam PottsandGitHub 31ccb1f6ee [codex] fix intrinsic media aspect ratio handling (#1197) 2026-04-02 22:40:55 +11:00
rahimandGitHub 6c5f8c0eda chore: move sandbox to apps/ (#1171) 2026-04-01 12:42:06 -07:00