Conversation
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. |
515bcdb to
61999db
Compare
Critical review with GPT-6 Astra at ultraReviewed No additional inline finding survived validation. The native file operations are a useful prerequisite for the helper migration: raw Windows paths, exclusive writes, replacement and cleanup have concrete consumers. The duplicate The main simplification target remains the non-strict resolver's broad Python error policy. That discussion needs two corrections:
Focus the follow-up on replacing the generic 15-error whitelist with a defined missing-path contract and propagating opaque lookup failures. A separate mocked final-name-failure case still accepts an unresolved row, but this has not been demonstrated as a real Windows boundary bypass. Keep that evidence distinction in the existing thread. Targeted verification: 24 adapter tests, 34 policy/launcher tests, 15 independent I/O/consumer checks and 9 portable-checker tests passed; five Windows-only tests skipped on Linux. I independently replayed the seven consumer assertions. Plugin build, MCP/CI-tool types, portable source and Ruff checks passed. Initial fixture failures reproduced on main and passed after correcting the fixture environment. Exact-head hosted Windows/macOS CI, including Windows native and PowerShell checks, was inspected. Local Windows behavior was modeled. The combined-tree platform gap is documented in the shared QA comment. |
|
Addressed the general review and both inline threads. The duplicate Windows parser is already removed. I retained the non-strict resolver for the missing-output, directory-comparison, and dangling-output-link contracts described in the follow-up, and recorded that the denied-open example is rejected by the downstream identity check; the mocked final-name case is not evidence of a real Windows boundary bypass. Both threads have replies and are resolved. Updated head: |
Summary
Add the Windows file operations needed by candidate normalization through the existing native handle binding. Use native filesystem behavior and retain raw UTF-16 paths without recreating Python path semantics.
Changes
node:path.win32; pass native-prefixed and other-drive relative scopes to the OS.bc70facbecec7beb7d5fd8a85c543c86d833ca5a.Testing
Risk and rollout
This is the prerequisite for #837. Strict resolution remains the default; callers independently validate containment. Non-strict resolution supports missing ordinary outputs, but no longer follows dangling links or emulates Python's device-name, whitespace, verbatim-dot, or prefix-removal quirks. Native paths can retain their device prefix. Public commands, flags, and defaults are unchanged.
Public disclosure review