feat: adopt typed yt-dlp broker and handle adaptive audio - #8
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
📝 WalkthroughWalkthroughVersion 1.4.0 migrates Vimeo downloads to Vortex 0.2’s typed ChangesTyped broker migration and release validation
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Plugin
participant VortexHost
participant YtDlp
Plugin->>VortexHost: Submit typed run_ytdlp download request
VortexHost->>YtDlp: Run host-managed yt-dlp operation
YtDlp-->>VortexHost: Return exit code and output path
VortexHost-->>Plugin: Return typed response JSON
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/lib.rs (1)
433-440: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winMissing success-path test for
resolve_audio_only_url.Only the "all variants filtered down to Adaptive" rejection path is tested. The success branch — returning
variant.urlwhen a realVariantKind::Audioentry survivesfilter_audio_only— is never exercised, so a regression in the.next()selection (e.g., wrong variant picked if multiple audio-kind entries ever exist) wouldn't be caught.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/lib.rs` around lines 433 - 440, Extend the tests around resolve_audio_only_url with a success-path case containing at least one real VariantKind::Audio entry that survives filter_audio_only, and assert the function returns that variant’s URL. Include multiple audio candidates if supported by the existing fixtures to verify the intended .next() selection while preserving the existing AdaptiveStreamOnly rejection test.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/lib.rs`:
- Around line 433-440: Extend the tests around resolve_audio_only_url with a
success-path case containing at least one real VariantKind::Audio entry that
survives filter_audio_only, and assert the function returns that variant’s URL.
Include multiple audio candidates if supported by the existing fixtures to
verify the intended .next() selection while preserving the existing
AdaptiveStreamOnly rejection test.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: b387f639-9329-4e96-aa20-a1a77aacb42d
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (12)
.github/workflows/plugin-ci.ymlCHANGELOG.mdCargo.tomlREADME.mdplugin.tomlrust-toolchain.tomlsrc/error.rssrc/lib.rssrc/plugin_api.rssrc/url_matcher.rssrc/yt_dlp.rstests/wasm_smoke.rs
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Summary
Validation
Linear: MAT-129, MAT-131
Summary by cubic
Moves Vimeo downloads to the typed
run_ytdlpbroker and ensuresresolve_stream_urlnever returns HLS, routing adaptive audio/video through the host for safer, more reliable downloads. Adds release-WASM ABI smokes withextism1.30.0, pins/repins reusable CI/release workflows, and restricts releases to the repository owner.New Features
download_to_filefromrun_subprocessto the typedrun_ytdlpcontract; no argv building in WASM. (Linear: MAT-129)AdaptiveStreamOnlyso the host callsdownload_to_file. Addedresolve_audio_only_urland tests. (Linear: MAT-131)rust-toolchain.Migration
http_request,get_config, and the typedrun_ytdlpbroker enabled;plugin.tomlcontinues to declaresubprocess = ["yt-dlp"].download_to_filewhenresolve_stream_urlreturnsAdaptiveStreamOnly; HLS manifests are no longer returned.Written for commit 0c00bc8. Summary will update on new commits.
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Documentation