Filter plugin install suggestions by installed apps#24996
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2131520cd6
ℹ️ 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".
| let is_openai_curated = marketplace_name == OPENAI_CURATED_MARKETPLACE_NAME; | ||
| let is_tool_suggest_discoverable = is_openai_curated | ||
| || TOOL_SUGGEST_DISCOVERABLE_PLUGIN_ALLOWLIST.contains(&plugin.id.as_str()) | ||
| || configured_plugin_ids.contains(plugin.id.as_str()); |
There was a problem hiding this comment.
Filter non-installable curated plugins
When an openai-curated marketplace entry has policy.installation = NOT_AVAILABLE, this new broad is_openai_curated branch still exposes it through list_available_plugins_to_install, but the actual install path rejects the same entry in find_installable_marketplace_plugin with PluginNotAvailable. In that marketplace-policy scenario the model can ask the user to install a plugin that will always fail after confirmation, so curated suggestions should still exclude non-installable policies before returning them.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Addressed in the latest push: list_tool_suggest_discoverable_plugins now filters out MarketplacePluginInstallPolicy::NotAvailable before returning candidates, and there is a regression test covering a NOT_AVAILABLE openai-curated plugin.
96d8820 to
b5cef90
Compare
b5cef90 to
53c4866
Compare
53c4866 to
c86b97e
Compare
b178c97 to
56b7ec0
Compare
|
I have read the CLA Document and I hereby sign the CLA |
56b7ec0 to
24d5ccc
Compare
Summary
TOOL_SUGGEST_DISCOVERABLE_PLUGIN_ALLOWLISTas a fallback seed list, so users with no installed plugins still get initial install suggestions.openai-curatedandopenai-bundled..app.jsonconnector IDs with already installed plugins.NOT_AVAILABLEplugins.Context
list_available_plugins_to_installcontrols which plugins the model can trigger viarequest_plugin_install. We want a small starter set for empty/new users, but we also want installed workflow plugins to unlock relevant source plugins without maintaining every source plugin ID by hand.This keeps the legacy plugin ID allowlist only as the starter fallback. For everything else, the trusted marketplace is the candidate boundary, and installed app connector overlap is the relevance filter. For example, an installed Sales plugin can make HubSpot and Granola suggestible when those source plugins are in
openai-curatedand share Sales app connector IDs, while an unrelated test-source plugin with an app connector not declared by Sales stays hidden.Test Coverage
hubspot@openai-curatedandgranola@openai-curatedare returned.test-source@openai-curatedhas an app connector not declared by Sales, so it is not returned.NOT_AVAILABLEplugins remain omitted; explicit configured discoverables still work as an override.Validation
just fmtjust test -p codex-core plugins::discoverable::testsjust test -p codex-corewas attempted earlier, but currentmain/ local env failed with unrelated existing failures around missingtest_stdio_server, CLI/code-mode MCP tool setup, and unified_exec/shell snapshot flakes/timeouts. The touched discoverable tests pass.