feat: adopt typed yt-dlp broker and reproducible CI
Merged
MP
4mo ago+3149+3149+0123456789012345678901234567890123456789-346-346-012345678901234567890123456789
Summary
- migrate host-managed downloads to the typed yt-dlp contract
- add complete WASM ABI smoke coverage and pinned reproducible CI
- use upstream Extism 1.30.0
Validation
- 79 unit tests and the WASM smoke pass
- native and WASM Clippy pass with warnings denied
- release WASM build and cargo audit pass
Linear: MAT-129, MAT-131
Summary by cubic
Switch downloads to the typed run_ytdlp broker and harden reproducible CI with split verify/release workflows repinned to canonical upstream SHAs, gated by tags, and restricted to the repository owner. Bumps the plugin to 1.3.0, requires Vortex host 0.2.0, and adds a release WASM ABI smoke test (addresses Linear MAT-129, MAT-131).
-
New Features
- Adopt typed
run_ytdlpbroker: replacerun_subprocess, send only url/format/output_dir/audio_only, and parse the typed response. - Add
tests/wasm_smoke.rsto validate exports and the broker contract end-to-end. - CI: split verification and release via reusable configs, repin workflows by commit to canonical upstream, pin Rust toolchain (1.95.0), and restrict release to owner tag builds.
- Bump
extismto=1.30.0.
- Adopt typed
-
Migration
- Host must expose the typed
run_ytdlpfunction (Vortex ≥ 0.2.0) andsubprocess: ["yt-dlp"]capability. - No user-facing changes; the plugin cannot set binaries, args, timeouts, env, or cwd.
- Host must expose the typed
Summary by CodeRabbit
- New Features
- Adaptive media downloads now use the host’s typed download service.
- Download requests provide structured media details, including format, audio-only mode, and output location.
- Improvements
- Updated compatibility requirements to Vortex 0.2.0 or later.
- Strengthened host-controlled network access and download execution safeguards.
- Documentation
- Clarified supported host capabilities and adaptive stream download behavior.
- Release
- Updated the plugin version to 1.3.0.