mirror of
https://github.com/openai/codex.git
synced 2026-10-31 19:28:49 +00:00
Enforce filesystem permissions when loading AGENTS.md (#39653)
## Why Project instructions must respect the selected environment's filesystem read permissions. Tightening those permissions for a later turn must not allow previously cached instructions to reach the model. ## What changed - Apply each environment's filesystem sandbox while discovering and reading `AGENTS.md` files. - Fail thread or turn setup when sandboxing blocks a discovered instruction file, while allowing a restricted project with no instructions to start. - Clear cached instructions before refresh and include the Windows sandbox level in the cache key. - Ignore inaccessible ancestor marker probes so readable instructions in the selected working directory can still load. ## Testing Added coverage for restricted projects, denied instruction files, cache invalidation after permissions tighten, and unreadable ancestor markers. GitOrigin-RevId: 6ea1a27b9c873a6260e4f87d42ae1317a6a4ae4b
This commit is contained in:
committed by
copyberry
parent
ab82cddd04
commit
7ece061767
@@ -3154,8 +3154,12 @@ impl Session {
|
||||
let environments = turn_context.environments.refresh_readiness();
|
||||
self.services
|
||||
.agents_md_manager
|
||||
.refresh(&turn_context.config, &environments)
|
||||
.await;
|
||||
.refresh(
|
||||
&turn_context.config,
|
||||
&environments,
|
||||
turn_context.windows_sandbox_level,
|
||||
)
|
||||
.await?;
|
||||
let loaded_agents_md = self.services.agents_md_manager.get_loaded().await;
|
||||
let selected_capability_roots = self
|
||||
.resolve_selected_capability_roots_for_step(&environments)
|
||||
|
||||
@@ -1186,11 +1186,17 @@ impl Session {
|
||||
"session_init.thread_name_lookup",
|
||||
otel.name = "session_init.thread_name_lookup",
|
||||
));
|
||||
let ((), plugin_skill_errors, thread_name) = tokio::join!(
|
||||
agents_md_manager.refresh(config.as_ref(), &resolved_environments),
|
||||
let (agents_md_result, plugin_skill_errors, thread_name) = tokio::join!(
|
||||
agents_md_manager.refresh(
|
||||
config.as_ref(),
|
||||
&resolved_environments,
|
||||
session_configuration.windows_sandbox_level,
|
||||
),
|
||||
plugin_skill_warmup,
|
||||
thread_name_lookup,
|
||||
);
|
||||
// TODO(anp): Present AGENTS.md discovery errors more clearly to the user.
|
||||
agents_md_result?;
|
||||
for err in &plugin_skill_errors {
|
||||
error!(
|
||||
"failed to load skill {}: {}",
|
||||
|
||||
Reference in New Issue
Block a user