Skip to content

Scope runtime workspace roots to execution environments - #32952

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/c6e7a62883c45c676c153055f46a55ee15a323a4
Jul 14, 2026
Merged

Scope runtime workspace roots to execution environments#32952
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/c6e7a62883c45c676c153055f46a55ee15a323a4

Conversation

@copyberry

@copyberry copyberry Bot commented Jul 14, 2026

Copy link
Copy Markdown

Scope runtime workspace roots to execution environments

Why

Multi-environment turns can run against different filesystems, so a single
thread-wide workspace-root list cannot accurately describe every selected
environment.

What changed

  • Add optional runtimeWorkspaceRoots to each app-server environment selection.
    Omitted roots default to that environment's cwd, while an empty list selects
    no roots.
  • Carry environment-native roots through turn selection, model-visible context,
    permission materialization, and tool sandboxing.
  • Keep the top-level runtimeWorkspaceRoots field as a compatibility input when
    constructing default environment selections; explicit selections use their
    own roots.

Testing

  • Cover thread and turn API defaults, overrides, empty roots, and schema
    round-tripping.
  • Verify foreign roots remain model-visible and remote execution applies the
    target environment's roots before sandbox selection.

## Why

Multi-environment turns can run against different filesystems, so a single
thread-wide workspace-root list cannot accurately describe every selected
environment.

## What changed

- Add optional `runtimeWorkspaceRoots` to each app-server environment selection.
  Omitted roots default to that environment's `cwd`, while an empty list selects
  no roots.
- Carry environment-native roots through turn selection, model-visible context,
  permission materialization, and tool sandboxing.
- Keep the top-level `runtimeWorkspaceRoots` field as a compatibility input when
  constructing default environment selections; explicit selections use their
  own roots.

## Testing

- Cover thread and turn API defaults, overrides, empty roots, and schema
  round-tripping.
- Verify foreign roots remain model-visible and remote execution applies the
  target environment's roots before sandbox selection.

GitOrigin-RevId: c6e7a62883c45c676c153055f46a55ee15a323a4
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/c6e7a62883c45c676c153055f46a55ee15a323a4 branch from 3d302ef to 393f645 Compare July 14, 2026 04:42
@copyberry
copyberry Bot merged commit 393f645 into main Jul 14, 2026
14 of 32 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/c6e7a62883c45c676c153055f46a55ee15a323a4 branch July 14, 2026 04:43
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 14, 2026
@gmh3
gmh3 temporarily deployed to issue-triage July 14, 2026 05:42 — with GitHub Actions Inactive
@gmh3
gmh3 temporarily deployed to issue-triage July 14, 2026 05:42 — with GitHub Actions Inactive
@gmh3
gmh3 temporarily deployed to issue-triage July 14, 2026 05:42 — with GitHub Actions Inactive
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.