Skip to content

feat: load from plugins#12864

Open
xl-openai wants to merge 3 commits intomainfrom
xl/plugins
Open

feat: load from plugins#12864
xl-openai wants to merge 3 commits intomainfrom
xl/plugins

Conversation

@xl-openai
Copy link
Collaborator

Support loading plugins.

Plugins can now be enabled via [plugins.] in config.toml. They are loaded as first-class entities through PluginsManager, and their default skills/ and .mcp.json contributions are integrated into the existing skills and MCP flows.

err.message
);
}
for plugin in loaded_plugins
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can this be logged in plugins_manager.plugins_for_config ?


impl Error for SkillParseError {}

pub fn load_skills(config: &Config) -> SkillLoadOutcome {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleanup of functions not longer in use.

@xl-openai xl-openai force-pushed the xl/plugins branch 2 times, most recently from d1b1ca9 to f456da7 Compare February 27, 2026 06:38
@xl-openai xl-openai force-pushed the xl/plugins branch 2 times, most recently from eca26e2 to 0842dc7 Compare February 27, 2026 07:53
Copy link
Collaborator

@sayan-oai sayan-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one main question about different config sources for loading plugins

return PluginLoadOutcome::default();
}

if !force_reload && let Some(outcome) = self.cached_outcome() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plugins() is reading the global config stack reloaded from disk, but plugins_for_config() above reads from the session's resolved config_layer_stack.

yet both write to/read from the same cache slot.

so skills_for_cwd() can reuse plugin roots from a different config stack

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

configured_plugins_from_stack currently reads only from the user layer, so the behavior is consistent for now. We should decide whether we actually need per-cwd plugin loading at all.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a comment to the function.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, i dont see a need for per-cwd plugin loading right now

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually maybe it would be useful. Let me add it back.

Copy link
Collaborator

@sayan-oai sayan-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moving back to per-cwd cache, other than that lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants