Skip to content

fix(runtime): name the outermost rejected Windows ancestor - #2065

Open
lumatic2 wants to merge 1 commit into
openai:mainfrom
lumatic2:fix/windows-ancestor-outermost
Open

lumatic2 wants to merge 1 commit into
openai:mainfrom
lumatic2:fix/windows-ancestor-outermost

Conversation

@lumatic2

@lumatic2 lumatic2 commented Oct 27, 2026 •

Copy link
Copy Markdown

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 under Documents reported Documents. Both now report C:\Users\<user>, where the ACE is set.

Changes

  • inspectWindowsCredentialAclSnapshot() in sdk/typescript/src/runtime.ts keeps 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.
  • New test in sdk/typescript/tests-ts/runtime.test.ts: parent has an inherited Modify ACE, grandparent has the explicit one, message should name the grandparent.

Testing

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

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

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

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant