Skip to content

fix: resolve downloaded bundled VST primaries - #64

Open
ciolansteen wants to merge 1 commit into
got-feedBack:mainfrom
ciolansteen:fix/downloaded-vst-primary-resolution
Open

fix: resolve downloaded bundled VST primaries#64
ciolansteen wants to merge 1 commit into
got-feedBack:mainfrom
ciolansteen:fix/downloaded-vst-primary-resolution

Conversation

@ciolansteen

@ciolansteen ciolansteen commented Aug 10, 2026

Copy link
Copy Markdown

Summary

Fix built-in Rig Builder gear resolving to No VST assigned in current thin packaged builds, even after the downloadable VST pack has been installed and scanned.

Root cause

Curated candidates carry a bundled relative path. _pick_installed_primary_vst() first checks that path under the read-only plugin directory, which is correct for older fat bundles. However, when that file is absent, the second pass unconditionally skipped every candidate that had bundled metadata.

Current thin builds place the optional pack under the writable config root instead. Those VSTs are present in the known-plugin scan, but the unconditional skip prevented name-based resolution and left built-in catalog entries without vst_path; Studio then filtered them out.

Fix

Keep the existing bundled-path lookup as the preferred path. If it is absent, allow the same candidate to use the existing known_lookup fallback by name. This preserves fat-bundle behavior while enabling downloaded packs.

Regression tests

Added focused coverage for both distribution modes:

  • downloaded thin-package VST resolves through the known scan despite bundled metadata;
  • an existing read-only bundled path still wins over the known scan.

Evidence:

RED (before fix): 1 failed, 1 passed
GREEN:            2 passed
Existing JS seam: 4 passed

The broader Python suite has three pre-existing failures on both origin/main and this branch (tests/test_vst_path_rehome.py expectations and a missing tools.content_packs module in test_vst_pack_download.py); this commit adds two passing tests without changing that baseline.

Live data validation

Using the installed thin-build paths and the live known-plugin cache:

known plugin names:          277
resolved curated gear:       127
resolved from writable pack: 127

No runtime configuration or user files are modified by this change.

Summary by CodeRabbit

  • Bug Fixes

    • Improved VST plugin detection when bundled files are unavailable from the default location.
    • VSTs installed in alternate download locations can now be resolved correctly.
    • Existing plugins in the primary plugin directory continue to take precedence.
  • Tests

    • Added coverage for VST resolution across primary and alternate installation locations.

Signed-off-by: Ionut Adrian Ciolan <iadrian@ciolan.net>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6ba8ba6e-4307-4056-9b63-7be5b250e5eb

📥 Commits

Reviewing files that changed from the base of the PR and between 8126051 and adac05c.

📒 Files selected for processing (2)
  • routes.py
  • tests/test_vst_primary_resolution.py

📝 Walkthrough

Walkthrough

The VST primary resolver now falls back to broader installed-plugin lookup when a bundled candidate is absent from the plugin directory. Tests cover preference for the plugin-directory bundle and fallback to a downloaded pack.

Changes

VST primary resolution

Layer / File(s) Summary
Resolution fallback and test coverage
routes.py, tests/test_vst_primary_resolution.py
_pick_installed_primary_vst continues bundled candidates into installed-plugin lookup when the plugin-directory bundle is absent. Tests verify plugin-directory preference and downloaded-pack fallback.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: jafz2001, ifritisz, byrongamatos

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: resolving bundled VST primaries from downloaded packs.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant