Install optional plugin code only into DSPs that use it - #5
Merged
Conversation
dillonlille
marked this pull request as ready for review
September 13, 2026 02:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DSP releases previously copied every optional plugin package into every DSP's runtime release directory, including plugins the DSP never installed. Core now copies only runtime files and catalog metadata. Install copies the selected sealed plugin into that DSP's plugin directory. Plugins remain in dispatch-dsp and update through the same DSP release, Update Dev and sequential rollout.
Per-DSP approvals select the exact plugin versions available for installation, including an empty catalog with no global fallback. Rollout upgrades enabled and disabled installed plugins, preserves their state, and skips uninstalled plugins. A delayed installation uses that DSP's selected release, even while Dev tests a newer one. Session bootstrap and the Plugins API use the same per-DSP catalog, so new plugins remain hidden from production DSPs (including signed owner DSP views) until each receives the rollout.
The original release manifest authenticates the exact runtime subset. Existing full copies remain valid for rollback. New DSP creation and newly prepared DSP releases use the smaller layout after Core activation. Credentials, settings, databases and retained recovery packages are preserved; historical copies are not deleted.
Validation:
This is a Core-only implementation. No DSP source change, SDK package version change or release-format change is required. No published release or live installation was changed.