Layer 5: Replace plugin registry with filesystem scanner (FEAT-009)#3970
Merged
Conversation
cargo fmt --all fixes: - plugins/mod.rs import ordering - memory/memory.rs, memory/note.rs fn signature wrapping - project/init.rs, project/share.rs formatting - skills/restore.rs, skills/review.rs, skills/skills.rs formatting - utility/attachment.rs, utility/network.rs formatting - plugin_e2e_acceptance.rs formatting
The scanner-based /plugins command (FEAT-009 Layer 5) replaces the upstream registry architecture. The existing crates/tui/src/plugins/ module is retained for merge compatibility but is unused by our code.
13 tasks
Owner
|
Merged into |
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.
Summary
Replace the registry-based plugin architecture with a lightweight filesystem scanner approach. Plugins are discovered from a configured plugin directory (default:
~/.codewhale/tools) rather than managed through an in-memory registry with enable/disable state.Changes
/pluginscommand to use scanner-based discovery instead of the registry. The command now lists discovered plugin scripts and shows per-plugin metadata (name, description, input schema, approval level).registry.rs,discovery.rs,manifest.rs, and associated tests undercrates/tui/src/plugins/.Motivation
The scanner-based approach is simpler and more transparent — users drop plugin scripts in a directory and they're immediately available. No enable/disable state management, no registry persistence layer.
Testing
test_plugins_lists_discovered_tools— verifies listing multiple plugins with metadatatest_plugins_empty_directory— verifies graceful handling of empty plugin dirtest_plugins_detail_shows_metadata— verifies detail view including schema and approvaltest_plugins_detail_not_found— verifies error for missing pluginRefs
FEAT-009 — Layer 5