refactor!: centralize dynamic plugin validation and host APIs - #943
Draft
willkill07 wants to merge 3 commits into
Draft
refactor!: centralize dynamic plugin validation and host APIs#943willkill07 wants to merge 3 commits into
willkill07 wants to merge 3 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
License DiffCompared against Lockfile license changesLockfile License ChangesRustAdded
Removed
Updated/Changed
NodeAdded
Removed
Updated/Changed
PythonAdded
Removed
Updated/Changed
Status output |
Signed-off-by: Will Killian <wkillian@nvidia.com>
Signed-off-by: Will Killian <wkillian@nvidia.com>
willkill07
force-pushed
the
refactor/core-dynamic-plugin-validation
branch
from
August 28, 2026 20:09
1240812 to
226cd64
Compare
Signed-off-by: Will Killian <wkillian@nvidia.com>
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.
Warning
BREAKING CHANGE: [Rust, Python, Node.js, Go, and C API/source compatibility] The previous plugin initialization, validation, dynamic activation-spec, and global lifecycle APIs are removed without compatibility aliases. Migrate to each binding's
initializeandvalidateentry points, passing programmatic configuration and an optional explicitplugins.toml; keep the returnedPluginHostActivationalive for the full plugin lifetime and close it explicitly for deterministic teardown.Overview
Centralize dynamic plugin validation, attestation, configuration layering, and activation ownership in the Rust core so every language binding uses the same fail-closed runtime path. This intentionally replaces the pre-0.8 plugin host APIs with a smaller breaking API built around
initializeandvalidate.Details
plugins.toml, discovered user configuration, then discovered system configuration.initializeandvalidateacross Rust, Python, Node.js, Go, and C; both operations accept the same programmatic configuration and optional explicit configuration path.Validation completed:
just test-rustjust test-pythonjust test-nodejust test-gojust test-python-pluginjust docsuv run pre-commit run --all-filesWhere should the reviewer start?
Start with
crates/core/src/plugin.rsfor the unified API and activation ownership model, then reviewcrates/core/src/plugin/dynamic/configuration.rsfor configuration discovery and precedence andcrates/core/src/plugin/dynamic/trust.rsfor artifact attestation. Binding projections are implemented incrates/python/src/py_plugin.rs,crates/node/src/api/mod.rs,crates/ffi/src/api/plugin.rs, andgo/nemo_relay/plugin.go.Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)