All checks were successful
Build and Release / Create Release (push) Successful in 0s
Build and Release / Unit Tests (push) Successful in 6m51s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 7m6s
Build and Release / Lint (push) Successful in 7m42s
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Successful in 3m9s
Build and Release / Build Binaries (amd64, darwin, macos) (push) Successful in 6m31s
Build and Release / Build Binaries (arm64, darwin, macos) (push) Successful in 5m54s
Build and Release / Build Binary (linux/arm64) (push) Successful in 9m40s
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Successful in 9h5m9s
Complete protocol versioning implementation on the server side, enabling forward-compatible plugin protocol evolution. Server Changes: - Send ProtocolVersion = 1 in InitializeRequest - Store plugin's reported protocol version in ManagedPlugin - Treat version 0 (pre-versioning plugins) as version 1 - Add SupportsProtocol() method to check before calling version-gated RPCs - Log plugin's protocol version during initialization Generated Code: - Regenerate plugin.pb.go with protocol_version fields - Add getter methods for new fields Documentation: - Add Protocol Versioning section to PLUGINS.md - Explain version negotiation flow - Document when plugins need to update vs. when they don't - Add version history table (currently only v1) - Update all example code to return protocol_version = 1 Benefits: - Server can safely add new RPCs in future versions without breaking old plugins - Plugins can detect newer servers and opt into advanced features - Zero-value (0) provides backwards compatibility with pre-versioning plugins - Clear upgrade path documented for plugin developers This completes the protocol versioning feature started in the previous commit.
9.3 KiB
9.3 KiB