Skip to content

Separate selected plugin identities from MCP contributions - #47939

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/e7f511264c5874c1b56d5f3e4a46820724046db0
Sep 24, 2026
Merged

copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/e7f511264c5874c1b56d5f3e4a46820724046db0

Conversation

@copyberry

@copyberry copyberry Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Separate selected plugin identities from MCP contributions

Why

Plugin identity and skill ownership need to be available independently of MCP data, including for plugins without servers or connectors. Hosted plugins have no executor root and should not own executor skills.

What changed

  • Add McpServerContributor::selected_plugins to declare executor plugin identities with deferred MCP data. Let the host assign server attribution and precedence across contributors.
  • Represent hosted connectors with HostedPluginConnectors and make SelectedPluginIdentity::selected_root_id optional instead of assigning synthetic roots to hosted plugins.
  • Resolve executor contributions before reading hosted connectors, and clear stale hosted state on account changes before executor loading can wait.
  • Preserve connector declarations from disabled plugins so Apps can hide those connectors.

Testing

Add coverage for account changes while executor loading is pending. Update tests to verify hosted identities have no executor root and disabled plugins hide their connectors even when plugin IDs differ from root IDs.

## Why

Plugin identity and skill ownership need to be available independently of MCP data, including for plugins without servers or connectors. Hosted plugins have no executor root and should not own executor skills.

## What changed

- Add `McpServerContributor::selected_plugins` to declare executor plugin identities with deferred MCP data. Let the host assign server attribution and precedence across contributors.
- Represent hosted connectors with `HostedPluginConnectors` and make `SelectedPluginIdentity::selected_root_id` optional instead of assigning synthetic roots to hosted plugins.
- Resolve executor contributions before reading hosted connectors, and clear stale hosted state on account changes before executor loading can wait.
- Preserve connector declarations from disabled plugins so Apps can hide those connectors.

## Testing

Add coverage for account changes while executor loading is pending. Update tests to verify hosted identities have no executor root and disabled plugins hide their connectors even when plugin IDs differ from root IDs.

GitOrigin-RevId: e7f511264c5874c1b56d5f3e4a46820724046db0
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/e7f511264c5874c1b56d5f3e4a46820724046db0 branch from c8362f1 to e8098eb Compare September 24, 2026 21:04
@copyberry
copyberry Bot merged commit e8098eb into main Sep 24, 2026
2 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/e7f511264c5874c1b56d5f3e4a46820724046db0 branch September 24, 2026 21:04
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 24, 2026
@lycashan
lycashan deployed to issue-triage September 24, 2026 21:07 — with GitHub Actions Active
@lycashan
lycashan deployed to issue-triage September 24, 2026 21:07 — with GitHub Actions Active
@lycashan
lycashan deployed to issue-triage September 24, 2026 21:07 — with GitHub Actions Active
@Amoag
Amoag deployed to issue-triage September 24, 2026 21:30 — with GitHub Actions Active
@Amoag
Amoag deployed to issue-triage September 24, 2026 21:30 — with GitHub Actions Active
@Amoag
Amoag deployed to issue-triage September 24, 2026 21:30 — with GitHub Actions Active
@Amoag
Amoag deployed to issue-triage September 24, 2026 21:31 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
issue-triage — e8098eb4 Deployed Sep 24, 2026 by Amoag via Identify potential duplicates (open issues fallback) #48082
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