Let Codex inspect vault files during multi-agent answers - #3377
logancyang wants to merge 3 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c14115eb0
ℹ️ 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".
| "commands that change state, or use write tools. You may use read-only " + | ||
| "shell commands to list directories, read files, search, and grep. " + |
There was a problem hiding this comment.
Put shell inspection behind a real read-only boundary
When an agent follows this new instruction and emits a shell command, the fan-out gate auto-allows every execute tool call without inspecting the command; Claude classifies Bash as execute, while Codex's advertised read-only mode explicitly still permits workspace edits. Consequently, if an agent emits something like echo ... > note.md or rm note.md—whether due to the user request, vault instructions, or model error—it runs without a permission card and can alter the vault, and shell reads also bypass VaultClient's out-of-vault and hidden-file checks. Prompt wording alone cannot preserve the feature's read-only contract, so shell use should only be advertised after commands are constrained by an actual read-only filesystem boundary.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Confirmed. In codex-acp 1.13.0, the advertised read-only mode still uses a writable workspace sandbox. A real Obsidian multi-agent run also showed Codex executing a shell listing. I’m treating this as a blocker and keeping the PR draft while I replace the shell path with an enforceable read-only boundary.
Relates to #3376
Why
In multi-agent answers, Codex sometimes says it cannot see the vault while another agent can list its files. The same Codex setup can read those files in a regular chat. The multi-agent instructions told agents not to use shell tools, which is how Codex inspects local files.
What
Non goal
This does not change backend permissions or add a security sandbox. Multi-agent research remains advisory read-only guidance.
Screenshot
No visual change; this changes instructions sent to agents.
Risk
High
Review: inspect
FANOUT_READONLY_PREAMBLEinsrc/agentMode/session/fanout/fanoutTypes.tsand its regression test insrc/agentMode/session/fanout/fanoutTypes.test.tsline by line. Then run Verification steps 2–3, including the attempted write.Verification
Note
Blocked for merge: The live Obsidian test confirmed that Codex lists vault files, but review found that Codex ACP 1.13.0's
read-onlymode still permits workspace writes. This draft needs an enforced read-only boundary before it is safe to ship. See the inline review thread for the finding.