mirror of
https://github.com/openai/codex.git
synced 2026-10-27 18:48:37 +00:00
Preserve foreign paths in managed network approvals (#39040)
## Why Unified exec could drop network approval registration when a selected environment used a Windows working directory on a non-Windows host because the trigger path could not be converted to a host absolute path. ## What changed - Keep network approval trigger working directories as `PathUri` values and render them with their inferred native path syntax for Guardian requests. - Fall back to the selected turn environment only when a trigger path can be converted to a host absolute path. - Reject selected environment working directories larger than 8 KiB at the thread-manager validation boundary. ## Testing - Cover managed-network approval registration for a foreign Windows working directory. - Verify that oversized working directories are rejected as invalid `thread/start` requests. GitOrigin-RevId: 646fbf12115a35a7e5cb04b511464797bee6647b
This commit is contained in:
@@ -98,6 +98,8 @@ use tracing::instrument;
|
||||
use tracing::warn;
|
||||
|
||||
const THREAD_CREATED_CHANNEL_CAPACITY: usize = 1024;
|
||||
// Reject pathological selected cwd values at the environment-selection boundary.
|
||||
const MAX_TURN_ENVIRONMENT_CWD_BYTES: usize = 8 * 1024;
|
||||
|
||||
/// Test-only override for enabling thread-manager behaviors used by integration
|
||||
/// tests.
|
||||
@@ -724,6 +726,12 @@ impl ThreadManager {
|
||||
) -> CodexResult<()> {
|
||||
let mut environment_ids = HashSet::with_capacity(environments.len());
|
||||
for environment in environments {
|
||||
if environment.cwd.inferred_native_path_string().len() > MAX_TURN_ENVIRONMENT_CWD_BYTES
|
||||
{
|
||||
return Err(CodexErr::InvalidRequest(
|
||||
"turn environment working directory exceeds the maximum size".to_string(),
|
||||
));
|
||||
}
|
||||
if !environment_ids.insert(environment.environment_id.as_str()) {
|
||||
return Err(CodexErr::InvalidRequest(format!(
|
||||
"duplicate turn environment id `{}`",
|
||||
|
||||
Reference in New Issue
Block a user