Skip to content

Separate MCP sandbox policy from launcher metadata - #53709

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/e544c06e6e023953b1fc8069b7b1affa065262d1
Oct 13, 2026
Merged

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

Conversation

@copyberry

@copyberry copyberry Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Separate MCP sandbox policy from launcher metadata

Why

MCP servers must forward sandbox policy unchanged to codex sandbox --sandbox-state-json, while interpreting launcher information to find the Codex CLI. Keep those contracts separate so consumers can preserve unknown policy fields.

What changed

  • Accept the experimental codex/sandbox-state capability alongside the deprecated codex/sandbox-state-meta capability, and send identical policy values under both _meta keys.
  • Move codexExecutable out of the policy into codex/sandbox-launcher, supplied only when a verified CLI path is available for a local stdio server.
  • Replace stale sandbox metadata while retaining unrelated entries, and remove stale launcher metadata when no launcher is available.
  • Document the metadata contract and how servers should forward policy and retain authority for long-lived subprocesses.

Testing

Update unit and integration coverage for policy serialization, identical state aliases, launcher availability across execution environments, and stale metadata replacement.

## Why

MCP servers must forward sandbox policy unchanged to `codex sandbox --sandbox-state-json`, while interpreting launcher information to find the Codex CLI. Keep those contracts separate so consumers can preserve unknown policy fields.

## What changed

- Accept the experimental `codex/sandbox-state` capability alongside the deprecated `codex/sandbox-state-meta` capability, and send identical policy values under both `_meta` keys.
- Move `codexExecutable` out of the policy into `codex/sandbox-launcher`, supplied only when a verified CLI path is available for a local stdio server.
- Replace stale sandbox metadata while retaining unrelated entries, and remove stale launcher metadata when no launcher is available.
- Document the metadata contract and how servers should forward policy and retain authority for long-lived subprocesses.

## Testing

Update unit and integration coverage for policy serialization, identical state aliases, launcher availability across execution environments, and stale metadata replacement.

GitOrigin-RevId: e544c06e6e023953b1fc8069b7b1affa065262d1
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/e544c06e6e023953b1fc8069b7b1affa065262d1 branch from 9228287 to 7d0b91d Compare October 13, 2026 16:23
@chatgpt-codex-connector

Copy link
Copy Markdown
Contributor

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-13T16:23:58.357898Z 9228287 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@copyberry
copyberry Bot merged commit 7d0b91d into main Oct 13, 2026
11 of 17 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/e544c06e6e023953b1fc8069b7b1affa065262d1 branch October 13, 2026 16:24
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 13, 2026
@bcparkison
bcparkison deployed to issue-triage October 13, 2026 16:26 — with Image GitHub Actions Active
@bcparkison
bcparkison deployed to issue-triage October 13, 2026 16:26 — with Image GitHub Actions Active
@bcparkison
bcparkison deployed to issue-triage October 13, 2026 16:26 — with Image GitHub Actions Active
@bcparkison
bcparkison deployed to issue-triage October 13, 2026 16:27 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 13, 2026 16:47 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 13, 2026 16:47 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 13, 2026 16:47 — with Image GitHub Actions Active
@flazouh
flazouh deployed to issue-triage October 13, 2026 16:48 — with Image GitHub Actions Active
@BigBagaBoom
BigBagaBoom deployed to issue-triage October 13, 2026 16:51 — with Image GitHub Actions Active
@BigBagaBoom
BigBagaBoom deployed to issue-triage October 13, 2026 16:51 — with Image GitHub Actions Active
@BigBagaBoom
BigBagaBoom deployed to issue-triage October 13, 2026 16:51 — with Image GitHub Actions Active
@hnakrapunt
hnakrapunt deployed to issue-triage October 13, 2026 16:55 — with Image GitHub Actions Active
@hnakrapunt
hnakrapunt deployed to issue-triage October 13, 2026 16:55 — with Image GitHub Actions Active
@hnakrapunt
hnakrapunt deployed to issue-triage October 13, 2026 16:55 — with Image GitHub Actions Active
@hnakrapunt
hnakrapunt deployed to issue-triage October 13, 2026 16:56 — with Image GitHub Actions Active

This branch was successfully deployed

1 active deployment
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.

8 participants