feat(plugin): add API version compatibility check for native plugins #1237
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.
Added a plugin ABI gate so outdated binary plugins can’t take the server down. Specifically:
Introduced PLUGIN_API_VERSION and documented how to bump it when changing the public plugin ABI (pumpkin/src/plugin/mod.rs:21).
Updated the plugin derive macro to export the API version symbol alongside the metadata so loaders can inspect it (pumpkin-api-macros/src/lib.rs:62-80).
Extended the native loader with an explicit version check and descriptive loader errors; incompatible or missing symbols now cause a clean load failure before any plugin code runs (pumpkin/src/plugin/loader/native.rs:5-87, pumpkin/src/plugin/loader/mod.rs:40-71).
Tests: cargo check