Repository navigation
Conversation
The Windows credential-home check inspects every ancestor, but it reported the nearest one that failed. When the rejected ACE is inherited, that ancestor is only a copy, and the guidance to choose a location outside it cannot work. Keep walking and report the outermost rejected ancestor, which is the one a new location has to avoid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Summary
Part of #2064. The Windows ancestor check looks at every ancestor but reported the nearest one that failed. If that folder only inherits the bad ACE, moving outside it doesn't help. On my machine the default state directory reported
...\.codex\state\plugins\codex-security, and a state directory underDocumentsreportedDocuments. Both now reportC:\Users\<user>, where the ACE is set.Changes
inspectWindowsCredentialAclSnapshot()insdk/typescript/src/runtime.tskeeps the last ancestor failure instead of throwing at the first. It throws once the ancestors are done (before the credential home is inspected, or when the stream ends). Ancestors come nearest first, so that's the outermost one. Same ancestors are rejected, same message text.sdk/typescript/tests-ts/runtime.test.ts: parent has an inherited Modify ACE, grandparent has the explicit one, message should name the grandparent.Testing
main(names the parent).bun test --timeout 30000 ./tests-ts/runtime.test.tson Windows 11: 107 pass / 74 fail,main106 / 74. The 74 are tests that create real credential homes under%TEMP%and hit Windows: default state directory fails credential-home validation once Codex's elevated sandbox has a Modify ACE on the user profile #2064 on this machine.pnpm run build:ci,prettier --checkon both files,git diff --check: clean.bun src/cli.ts login statuson the affected machine reportsC:\Users\<user>for both the default and theDocumentsstate directory.Risk and rollout
Changes which ancestor the error names when more than one is rejected. Nothing else. No CLI, SDK, or schema changes.
Public disclosure review