Skip to content

Filter plugin install suggestions by installed apps#24996

Merged
nm-openai merged 2 commits into
mainfrom
nm-codex/openai-curated-plugin-suggest
May 29, 2026
Merged

Filter plugin install suggestions by installed apps#24996
nm-openai merged 2 commits into
mainfrom
nm-codex/openai-curated-plugin-suggest

Conversation

@nm-openai
Copy link
Copy Markdown
Contributor

@nm-openai nm-openai commented May 29, 2026

Summary

  • Keep the original TOOL_SUGGEST_DISCOVERABLE_PLUGIN_ALLOWLIST as a fallback seed list, so users with no installed plugins still get initial install suggestions.
  • Allow additional install suggestions from trusted marketplaces: openai-curated and openai-bundled.
  • Require non-fallback, non-configured marketplace candidates to share .app.json connector IDs with already installed plugins.
  • Preserve explicit configured plugin discoverables as an override, while still omitting installed, disabled, and NOT_AVAILABLE plugins.

Context

list_available_plugins_to_install controls which plugins the model can trigger via request_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-curated and share Sales app connector IDs, while an unrelated test-source plugin with an app connector not declared by Sales stays hidden.

Test Coverage

  • Empty/no-installed-plugin case: returns the fallback seed plugins from the original allowlist.
  • Installed-app expansion: returns non-fallback marketplace plugins only when their app connector IDs overlap with an installed plugin.
  • Sales workflow case: installed Sales declares HubSpot and Granola apps, so hubspot@openai-curated and granola@openai-curated are returned.
  • Sales negative case: test-source@openai-curated has an app connector not declared by Sales, so it is not returned.
  • Existing guardrails: installed plugins, disabled suggestions, and NOT_AVAILABLE plugins remain omitted; explicit configured discoverables still work as an override.

Validation

  • just fmt
  • just test -p codex-core plugins::discoverable::tests
  • just test -p codex-core was attempted earlier, but current main / local env failed with unrelated existing failures around missing test_stdio_server, CLI/code-mode MCP tool setup, and unified_exec/shell snapshot flakes/timeouts. The touched discoverable tests pass.

@nm-openai nm-openai requested a review from a team as a code owner May 29, 2026 01:55
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

Copy link
Copy Markdown
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: 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".

Comment on lines +55 to +58
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());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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.

@nm-openai nm-openai force-pushed the nm-codex/openai-curated-plugin-suggest branch 4 times, most recently from 96d8820 to b5cef90 Compare May 29, 2026 02:16
@nm-openai nm-openai changed the title Allow openai-curated plugins in install suggestions Use marketplace allowlist for plugin install suggestions May 29, 2026
@nm-openai nm-openai force-pushed the nm-codex/openai-curated-plugin-suggest branch from b5cef90 to 53c4866 Compare May 29, 2026 02:20
@nm-openai nm-openai force-pushed the nm-codex/openai-curated-plugin-suggest branch from 53c4866 to c86b97e Compare May 29, 2026 03:45
@nm-openai nm-openai changed the title Use marketplace allowlist for plugin install suggestions Filter plugin install suggestions by installed apps May 29, 2026
@nm-openai nm-openai force-pushed the nm-codex/openai-curated-plugin-suggest branch 5 times, most recently from b178c97 to 56b7ec0 Compare May 29, 2026 04:41
@nm-openai
Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request May 29, 2026
@nm-openai nm-openai force-pushed the nm-codex/openai-curated-plugin-suggest branch from 56b7ec0 to 24d5ccc Compare May 29, 2026 04:45
@nm-openai nm-openai merged commit 8e5f561 into main May 29, 2026
31 checks passed
@nm-openai nm-openai deleted the nm-codex/openai-curated-plugin-suggest branch May 29, 2026 22:32
@github-actions github-actions Bot locked and limited conversation to collaborators May 29, 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.

3 participants