Skip to content

Enforce readonly repository boundaries#2

Merged
egavrin merged 1 commit intomainfrom
codex/readonly-enforcement
Mar 14, 2026
Merged

Enforce readonly repository boundaries#2
egavrin merged 1 commit intomainfrom
codex/readonly-enforcement

Conversation

@egavrin
Copy link
Owner

@egavrin egavrin commented Mar 14, 2026

Summary

  • enforce readonly repository fingerprints for all executors, including devagent
  • allow mixed writable/readonly multi-repo runs without false failures
  • add adapter and local-runner regression coverage for continuation metadata and readonly enforcement

Testing

  • bun test ./packages/local-runner/src/index.test.ts
  • bunx tsc -p packages/local-runner/tsconfig.json --noEmit
  • bunx tsc -b packages/core packages/local-runner packages/adapters packages/cli
  • bun run build

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4044ffbbe5

ℹ️ 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".

if (!repositoryPath) {
continue;
}
fingerprints.set(repository.repositoryId, await fingerprintWorkspace(repositoryPath));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Handle deleted read-only repos before hashing

If an executor removes an entire read-only repo directory (for example via rm -rf), fingerprintWorkspace(repositoryPath) throws ENOENT here and the error escapes the result-finalization path, so awaitResult rejects instead of returning a structured failed result with the read-only violation message. This regresses behavior from the previous workspace-level fingerprint check, which would mark the run as an EXECUTION_FAILED policy violation rather than surfacing an internal exception.

Useful? React with 👍 / 👎.

@egavrin egavrin merged commit 7b2a783 into main Mar 14, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant