Skip to content

Allow plugin installs for backend dependency IDs#31694

Draft
cravuri-oai wants to merge 1 commit into
mainfrom
codex/backend-plugin-install-resolution
Draft

Allow plugin installs for backend dependency IDs#31694
cravuri-oai wants to merge 1 commit into
mainfrom
codex/backend-plugin-install-resolution

Conversation

@cravuri-oai

Copy link
Copy Markdown

Summary

  • Allow request_plugin_install to resolve exact backend plugin IDs when they are not present in <recommended_plugins> or list_available_plugins_to_install.
  • Normalize the backend detail response into the existing Codex plugin identity and reuse the existing install elicitation, metadata, analytics, persistence, and completion flow.
  • Keep request_plugin_install available in endpoint-recommendation mode even when there are zero static recommendation candidates.

Motivation

Plugin Management dependency discovery can return canonical backend plugin IDs for related plugins that are valid and installable but are not part of the small per-turn recommendation list. Today request_plugin_install rejects those IDs before the user can see the normal install elicitation.

This change keeps the existing recommendation/list path unchanged and adds a narrow fallback: resolve the exact backend ID through the existing /ps/plugins/{plugin_id} detail API, then reuse the existing client-compatible Codex config ID such as slack@openai-curated-remote.

Behavior

  • The backend detail response is the source of truth for the fallback. The plugin must resolve to the requested backend ID, be global, available, have installation policy AVAILABLE, and not already be installed.
  • Remote plugins must be enabled, and persisted disabled suggestions are honored for both normalized config IDs and backend IDs.
  • The model-facing tool docs allow exact canonical_plugin_id values from get_plugin_dependencies only when canonical_plugin_status="enabled", canonical_plugin_installation_policy="available", and canonical_plugin_installed=false.
  • The elicitation continues to emit the normalized config ID plus remote_plugin_id and app connector IDs, so Codex desktop and ChatGPT Work mode can reuse their existing install UI.

Scope

  • No Plugin Management changes.
  • No new HTTP routes.
  • No Codex webview or ChatGPT web changes.
  • No expansion of list_available_plugins_to_install.

Validation

  • just test -p codex-core request_plugin_install — 21 passed.
  • just test -p codex-tools request_plugin_install — 6 passed.
  • just test -p codex-core endpoint_mode_resolves_backend_plugin_id_for_install_elicitation — passed with zero recommendation candidates.
  • just test -p codex-core endpoint_mode_injects_candidates_hides_list_and_rejects_missing_backend_ids — passed.
  • just fix -p codex-core.
  • just fmt.
  • git diff --check.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


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


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

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.

1 participant