Draft
Conversation
Contributor
gfyrag
commented
Mar 6, 2026
- feat: add plugin architecture with HashiCorp go-plugin
- docs: add fctl plugin architecture draft
- docs: update plugin architecture with cached manifests, auto-discovery, registry checksums
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Introduce a plugin system allowing fctl commands to be provided by external binaries communicating over gRPC. This decouples service-specific CLI commands from the core fctl binary, enabling independent versioning. Structure: - pkg/pluginsdk/ (sub-module): minimal plugin SDK with proto definitions and Serve() entry point — no membership/deployserver dependencies - pkg/plugin/: core infrastructure (manager, loader, cobra bridge, registry client, config) - cmd/plugin/: CLI commands (install, list, update, remove) - plugins/fctl-plugin-ledger/: pilot plugin for Ledger v3 (gRPC), with locally generated proto stubs from ledger-v3-poc Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Architecture document covering the shared command pattern between ledgerctl and fctl-plugin-ledger: adapter pattern, Runtime interface, module separation, plugin protocol, and command matrix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…y, registry checksums - Replace startup plugin spawning with cached manifests (fetched at install time only) - Switch registry format from JSON to YAML with SHA-256 checksums per binary - Add auto-discovery flow using membership API (modules + region versions) - Add local plugin development support (go build from source directory) - Add stable/experimental stability levels per command - Move plugin type (stack/membership/basic) to registry level - Simplify AuthContext to 4 fields (issuer_url, service_url, access_token, insecure_tls) - Add registry CI workflow (PR on release, manual old version cleanup) - Replace ASCII diagrams with mermaid Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Explain how the plugin system eliminates runtime version negotiation and allows services to drop version prefixes from their API paths. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.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.