Skip to content

feat: track plugins mcps/apps and add plugin info to user_instructions#13433

Merged
sayan-oai merged 5 commits intomainfrom
dev/sayan/plugin-prompt
Mar 5, 2026
Merged

feat: track plugins mcps/apps and add plugin info to user_instructions#13433
sayan-oai merged 5 commits intomainfrom
dev/sayan/plugin-prompt

Conversation

@sayan-oai
Copy link
Collaborator

@sayan-oai sayan-oai commented Mar 4, 2026

first half of changes, followed by #13510

Track plugin capabilities as derived summaries on PluginLoadOutcome for enabled plugins with at least one skill/app/mcp.

Also add Plugins section to user_instructions injected on session start. These introduce the plugins concept and list enabled plugins, but do NOT currently include paths to enabled plugins or details on what apps/mcps the plugins contain (current plan is to inject this on @-mention). that can be adjusted in a follow up and based on evals.

tests

Added/updated tests, confirmed locally that new Plugins section + currently enabled plugins show up in user_instructions.

@sayan-oai sayan-oai changed the title track plugins mcps/apps. add plugin info to user_instructions feat: track plugins mcps/apps. add plugin info to user_instructions Mar 4, 2026
Comment on lines +96 to +97
pub struct PluginCapabilityIndex {
plugins: Vec<PluginCapabilitySummary>,
Copy link
Collaborator Author

@sayan-oai sayan-oai Mar 4, 2026

Choose a reason for hiding this comment

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

I don't love these type names, open to suggestions for clearer ones.

Comment on lines +9 to +10
"## Plugins".to_string(),
"A plugin is a local bundle of skills, MCP servers, and apps. Below is the list of plugins that are enabled and available in this session.".to_string(),
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Need to refine the prompt and eventually eval, but open to immediate suggestions as well. Roughly mimicked the content of the skills section injected into user_instructions.

@sayan-oai sayan-oai changed the title feat: track plugins mcps/apps. add plugin info to user_instructions feat: track plugins mcps/apps and add plugin info to user_instructions Mar 4, 2026
@timurkh-devstark
Copy link

Hi, sorry for interrupt.

I'm following your updates on the plugin system and I love it! Thank you for delivery!

I reviewed the implementation and as far I understand you didn't integrate agents (multi-agents) into plugins, isn't it?

Will you add it later or it's not planned?

I believe it would be great if we could distribute skills + mcp + agents as one plugin for codex.

Thank you.

@sayan-oai
Copy link
Collaborator Author

@codex review this

@sayan-oai sayan-oai mentioned this pull request Mar 4, 2026
Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 21a2a634ed

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +74 to +75
let mut mcp_server_names: Vec<String> = plugin.mcp_servers.keys().cloned().collect();
mcp_server_names.sort_unstable();
Copy link
Contributor

Choose a reason for hiding this comment

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

P2 Badge Exclude shadowed MCP servers from capability summaries

PluginCapabilitySummary is built from each plugin’s raw mcp_servers keys, but duplicate server names are effectively dropped later (effective_mcp_servers keeps the first via entry(...).or_insert_with). A plugin whose only MCP is shadowed can still appear as having MCP capability and be listed as available in ## Plugins, which misrepresents callable capabilities.

Useful? React with 👍 / 👎.

@sayan-oai sayan-oai force-pushed the dev/sayan/plugin-prompt branch from 161ab71 to 7c6f76f Compare March 5, 2026 01:57
@sayan-oai sayan-oai merged commit d443989 into main Mar 5, 2026
31 checks passed
@sayan-oai sayan-oai deleted the dev/sayan/plugin-prompt branch March 5, 2026 03:46
@github-actions github-actions bot locked and limited conversation to collaborators Mar 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants