VS Code goal continuation starts with managed workspace-write sandbox instead of configured full access

Resolved 💬 1 comment Opened May 24, 2026 by dewtoricor1997-ship-it Closed May 24, 2026

Summary

In the VS Code Codex integration, a thread that is configured for full access starts normal interactive turns with the expected permissions, but /goal continuation turns start with a managed workspace-write sandbox and on-request approvals.

This appears to be the same class of sandbox propagation issue as #15310, but triggered by Goal mode / active goal continuation rather than desktop scheduled automations.

Environment

  • IDE: VS Code
  • Platform: Windows
  • Model: gpt-5.5
  • Global/local expected mode: full access / no approvals
  • Relevant config observed locally:
  • model = "gpt-5.5"
  • model_reasoning_effort = "xhigh"
  • [windows] sandbox = "elevated"
  • features.goals = true

Expected behavior

After starting or resuming a /goal in a VS Code thread, the turn should use the same effective permissions as ordinary interactive chat turns when the user has configured full access:

approval_policy = never
sandbox_policy.type = danger-full-access
permission_profile.type = disabled

Git operations such as git add and git commit should not request additional approval solely because the turn is a goal continuation.

Actual behavior

The same thread started ordinary turns with:

approval_policy = never
sandbox_policy.type = danger-full-access
permission_profile.type = disabled

But when Goal mode continued work, the next turn was started with:

approval_policy = on-request
sandbox_policy.type = workspace-write
permission_profile.type = managed
sandbox_policy.network_access = false

The injected user payload for the turn was:

<goal_context>
Continue working toward the active thread goal.
...
</goal_context>

This caused routine git writes to fail and then request escalation. Example failure from the same thread:

fatal: Unable to create 'C:/WB_AUTOPILOT_V2/.git/index.lock': Permission denied

The agent then retried commands with approval escalation, even though ordinary interactive turns in the same environment were full access.

Local timeline evidence

From the affected thread JSONL:

2026-05-24T06:48:23Z turn_context:
approval_policy=never
sandbox_policy.type=danger-full-access
permission_profile.type=disabled

2026-05-24T07:07:38Z task_started
2026-05-24T07:07:38Z developer permissions injected workspace-write/on-request
2026-05-24T07:07:38Z turn_context:
approval_policy=on-request
sandbox_policy.type=workspace-write
permission_profile.type=managed

2026-05-24T07:07:38Z user payload:
<goal_context> Continue working toward the active thread goal ... </goal_context>

After cancelling the old goal, restarting VS Code, and explicitly creating a new goal, the new goal continuation still started with the same restricted context:

2026-05-24T10:02:34Z task_started
approval_policy=on-request
sandbox_policy.type=workspace-write
permission_profile.type=managed
network_access=false

<goal_context>
Continue working toward the active thread goal.
</goal_context>

So this is not caused by a stale old goal, and not caused by subagents. A subagent spawned from the affected parent also used the restricted profile, but the parent thread itself had already switched to managed workspace-write.

Impact

  • Goal mode becomes much less useful for trusted local automation on Windows/VS Code.
  • Git operations fail or prompt unexpectedly because .git writes are blocked.
  • Network access is disabled in goal continuation even when the user expects full-access behavior.
  • The behavior is confusing because ordinary interactive turns in the same thread/config can use danger-full-access, while goal continuation silently uses a different permission profile.

Related

  • #15310 describes a very similar fallback for desktop automations: automation launches do not propagate the full-access sandbox override and fall back to workspace-write.
  • This issue appears to be the Goal mode / VS Code continuation equivalent of that sandbox-policy propagation problem.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗