Bind skill paths to their executor filesystem#24992
Closed
starr-openai wants to merge 16 commits into
Closed
Conversation
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 902bcc6901
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
d9074a5 to
2f7cbea
Compare
jif-oai
reviewed
May 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Skills loading had started to pass raw
AbsolutePathBufvalues separately from theExecutorFileSystemthat actually owns those paths. That is unsafe once Codex can have more than one execution environment: the same absolute path string can refer to different files depending on whether it is read through the local filesystem or a selected remote environment.This PR makes that authority explicit at the skills boundary. Skill code now receives a bound path object instead of reconstructing
(filesystem, path)pairs ad hoc, so repo/workspace skill reads stay attached to the selected environment while client-local skill sources do not accidentally get read from a remote filesystem.What Changed
codex_exec_server::EnvironmentPathRef, a small bound-path primitive for(Arc<dyn ExecutorFileSystem>, AbsolutePathBuf)with path helpers plus filesystem-backedread_to_string,metadata, andread_directorymethods.EnvironmentPathRefthroughSkillRoot,SkillsLoadInput, loader traversal, cache keys, and plugin skill reads instead of splitting filesystem/path authority at callsites..codex/skillsand repo.agents/skillsuse the selected environment pathLOCAL_FSskills/list.environmentIdrequest selection. When present,skills/listscans cwd entries using that environment; when omitted, it keeps the legacy implicit-local behavior. If omitted while local exec is disabled, the API now returns an empty catalog instead of silently switching to another environment.skills/listrequest shape and local-disabled behavior.Verification
EnvironmentPathRefunit coverage for filesystem identity/hash behavior and sandbox forwarding.skills/listcoverage for explicitenvironmentIdserialization and the implicit-local-disabled empty-catalog case.