Skip to content

fix(windows): retry credential snapshots when files disappear - #708

Merged
faizan-oai merged 1 commit into
mainfrom
agent/windows-credential-snapshot-races
Aug 28, 2026
Merged

fix(windows): retry credential snapshots when files disappear#708
faizan-oai merged 1 commit into
mainfrom
agent/windows-credential-snapshot-races

Conversation

@faizan-oai

Copy link
Copy Markdown
Contributor

Summary

Parallel startup can remove a temporary authentication file while another process inspects the credential home's ACLs. Windows PowerShell can report System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.GetAclCommand during that inspection, aborting startup instead of retrying the incomplete snapshot.

Changes

  • Route that exact error, only during descendant ACL reads, through the existing complete-snapshot retry.
  • Preserve the three-attempt limit, snapshot completion checks, and fatal handling of home/ancestor, permission, unexpected-error, and unsafe-path failures.
  • Extend the existing runtime tests with five native PowerShell error-replay cases covering recovery, exhaustion, and fatal errors.

Testing

  • Native replay against the unchanged implementation: 3 passed and 2 expected failures. Candidate: all 5 passed.
  • Focused credential/import controls: 21 passed, including the five replay cases.
  • SDK/MCP TypeScript checks, generated-model check, package formatting, SDK build, and git diff --check: passed.
  • Full package run, seed 12345: 1,991 passed, 68 skipped, 5 failed.
  • Separately required unseeded package run, reported seed 3226174681: 1,992 passed, 68 skipped, 4 failed. All five new replay cases and the existing parallel-import test passed in both full runs.

Four unchanged release-label fixtures failed in each full run. An isolated run reproduced all four failures without importing either changed candidate file. One exact fixture call outside the test runner returned EPERM from uv_spawn, with undefined status and PID. Its underlying OS/policy/runtime cause remains unknown; no workaround was attempted. The seeded run also failed an authentication-home test while an extra local harness state-directory override took precedence over the fixture's home override. That extra harness override was omitted for the separately required unseeded run, where the authentication-home test passed; this was not an identical-environment replay. No passing local full suite is claimed.

These local results use tested base 243436b. Latest main 3bccb23 changes neither patched file; hosted CI will check the current merge.

The native replay verifies handling of the observed error, not an independent reproduction of the original deletion timing. No model-backed scan or machine-policy change was used.

Risk and rollout

This classifies one missing-descendant error for an existing bounded retry. It does not relax ACL rules, accept incomplete snapshots, or change CLI options, backend selection, locks, or authentication sources. Persistently changing snapshots still fail after three attempts. No migration is required; applicable hosted CI and review remain required.

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.

@github-actions github-actions Bot added the bug Something isn't working label Aug 28, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-28T07:13:39.804978Z 3205def Manual request
🔒 Security Review Completed 2026-08-28T07:12:52.166455Z 3205def PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@faizan-oai

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 3205def1d8

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

@faizan-oai
faizan-oai merged commit ccb280b into main Aug 28, 2026
63 of 66 checks passed
@faizan-oai
faizan-oai deleted the agent/windows-credential-snapshot-races branch August 28, 2026 21:16
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.

2 participants