Skip to content

feat(core): remove on Windows through the authenticated handle (#445) - #1075

Merged
qnbs merged 5 commits into
mainfrom
feat/445-gate4e-h1a2-windows-removal-v2
Oct 16, 2026
Merged

qnbs merged 5 commits into
mainfrom
feat/445-gate4e-h1a2-windows-removal-v2

Conversation

@qnbs

@qnbs qnbs commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

What this is

A fresh re-cut of #1071 on main (52eb9f6f), which now carries the Unix hardening (#1073) and the Unix directory removal and leftover recovery (#1074). Not a retarget: #1071 was stacked on the history of the squash-merged #1069 and #1070. Its one own change (bdf2011f) is re-applied with its tests; one signed commit on main. #1071 stays frozen until this PR is integrated and is then closed as superseded, not merged. No history was rewritten.

test-support only: no caller. One new unsafe call (the disposition: one fixed structure, its layout pinned by a test); no new package, no new dependency feature. Slice H1a-2 part 4, part of #359 (Linear QNB-168).

What it adds

  • The object is opened through the handle-relative lookup of every child, with delete access and a share mode of read only, authenticated on that handle, and then given the POSIX delete disposition on the same handle. No FILE_FLAG_DELETE_ON_CLOSE, no fallback to the classic disposition, a read-only file is refused. A directory is removed the same way and a directory with entries refuses (NotEmpty).
  • The result is Removed(NotConfirmed): Windows offers no directory sync. A leftover removal is Unsupported, because Windows creates no quarantine directory.
  • The cases of remove.rs now run on Windows too.

The 2 findings that were open on #1071

Finding on #1071 Here
Codex P2: ERROR_INVALID_FUNCTION (an older Windows or a driver that does not implement the information class) was not mapped and became a plain I/O error Fixed: every code that means "no POSIX delete" (ERROR_INVALID_PARAMETER, ERROR_NOT_SUPPORTED, ERROR_INVALID_FUNCTION) maps to Unsupported through one function, known_refusal, that a test pins; an unrelated code (ERROR_ACCESS_DENIED) and no code stay errors.
Sourcery: a writable memory-mapped view that another process created earlier and keeps after closing its handle is not stopped by the read-only sharing rule Stated, not closed: no sharing mode closes it, because the rule is about handles. It is in the module documentation, the evidence document and the changelog as a same-user residual. Not tested: a hosted run cannot be made to hold such a mapping reliably.

Findings raised on this PR itself

  • Codex P2: a directory could be converted into a junction in place between the check and the disposition and then be deleted and reported as removed. Fixed (140e981a): the held handle is looked at again right before the disposition; a junction made in that window is left, its target is untouched, the answer is Redirected. Narrows the window, does not close it. Test a_directory_converted_into_a_junction_after_the_check_is_not_deleted, which passes on the hosted Windows runner (Windows only, not mutation-checked locally).
  • CodeAnt (Medium, top-level): the mapped-writer limit, answered in a comment below, with the Unix statement added.

What is bound is the object, not its bytes (found while answering CodeAnt)

authenticate reads the open file and the removal then removes that object. On Windows the read-only share mode stops every writer that opens the file, but not a writable memory-mapped view that another process created earlier. On Unix there is no sharing mode, so a same-user process with a writable descriptor or a writable shared mapping can change the bytes between the authentication and the unlink; the Unix removal never said so. Both are now stated (module documentation, evidence document, changelog) as parts of the same-user residual, not closed. Documentation only (7c43e606).

What changed from the original because of the Unix re-cuts

The directory case of remove.rs expects the removal on Linux and on Windows, and Unsupported on any other Unix system (the Unix directory removal is Linux only, see #1074). Without that, the shared test would have failed the hosted Windows run.

Limits, stated

Checked here only by compiling for x86_64-pc-windows-msvc (cargo fmt --check, cargo clippy --all-targets -D warnings; the host and aarch64-apple-darwin too). The hosted Windows run is the evidence: on the first head (a57f8ad5) the Windows, macOS and Ubuntu evidence jobs passed, and the Windows run executed all 11 remove_windows tests including the new classification test and the shared directory case; the later heads add documentation and the directory revalidation, and the hosted Windows run of the current head (140e981a) passed its Windows removal tests including the new junction test. A file system without POSIX delete semantics is Unsupported, which the hosted runner does not exercise. The same-user residual (the Unix unlinkat(name) window and link-count heuristic, a foreign entry's identity without a held handle, and here the mapped writer) is unchanged and not accepted for production; owner-gated before any production use (H1b, see #359).

pr:budget against main: CAUTION, OK, 4 commits, 8 files, 516 meaningful lines; canonical pnpm run ci:prepush passed. CI, CodeQL and independent review of the current head are pending; nothing from #1071 carries over.

Part of #359.

Summary by Sourcery

Implement authenticated Windows removal for files and empty directories while preserving fail-closed behavior and clearly reporting unsupported platform semantics.

New Features:

  • Implement authenticated Windows file and empty-directory removal through POSIX delete disposition on the held handle.
  • Run the shared removal behavior tests on Windows and add Windows-specific coverage for sharing, refusals, directory redirection, and disposition outcomes.

Bug Fixes:

  • Map all Windows errors indicating unavailable POSIX delete semantics, including ERROR_INVALID_FUNCTION, to Unsupported.
  • Recheck directories before deletion so a directory converted to a junction is preserved and reported as Redirected.

Enhancements:

  • Document Windows removal guarantees, durability limitations, and the same-user residual involving pre-existing writable memory mappings.

Documentation:

  • Document the Windows removal design, limitations, and evidence in the removal module, changelog, and durability evidence record.

Tests:

  • Add comprehensive Windows removal tests covering authenticated deletion, sharing behavior, read-only files, directories, unsupported leftovers, error classification, and junction conversion.

Fresh re-cut of #1071 on the main that carries the Unix hardening and the
directory removal, not a retarget: that PR was stacked on the history of the
squash-merged #1069 and #1070. Its one own change (bdf2011) is re-applied
here with its tests, and the two findings that were open on it are dealt with.

test-support only, no caller. One new unsafe call (the disposition, one fixed
structure, its layout pinned by a test), no new package.

- The object is opened through the handle-relative lookup of every child, with
  delete access and a share mode of read only, authenticated on that handle and
  then given the POSIX delete disposition on the same handle: no
  FILE_FLAG_DELETE_ON_CLOSE, no fallback to the classic disposition, a
  read-only file is refused. A directory is removed the same way and a
  directory with entries refuses (NotEmpty). The removal is reported as
  Removed(NotConfirmed): Windows offers no directory sync. A leftover removal is
  Unsupported, because Windows creates no quarantine directory.
- The cases of remove.rs now run on Windows too. The directory case there
  expects the removal on Linux and on Windows and Unsupported on any other Unix
  system, which the Unix re-cut introduced and which would otherwise have
  failed the hosted Windows run.

Findings carried from #1071:
- Codex P2: ERROR_INVALID_FUNCTION, which an older Windows or a driver gives
  when it does not implement the information class, was not mapped and became a
  plain I/O error. Every code that means "no POSIX delete" now maps to
  Unsupported through one function, known_refusal, that a test pins (including
  that an unrelated code stays an error).
- Sourcery: a writable memory-mapped view that another process created earlier
  and keeps after closing its handle is not stopped by the read-only sharing
  rule, so it can still change the authenticated bytes before the disposition.
  No sharing mode closes this; it is stated in the module documentation, the
  evidence document and the changelog as a same-user residual, not claimed
  closed, and not tested because a hosted run cannot be made to hold such a
  mapping reliably.

Checked here only by compiling for x86_64-pc-windows-msvc (fmt, clippy -D
warnings); the hosted Windows run is the evidence. The PR number in the
changelog entry is set when this PR is opened. Issue #359.
@sourcery-ai

sourcery-ai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Sorry @qnbs, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 2 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@codeant-ai

codeant-ai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Incremental review completed 140e981 Oct 16, 2026 · 03:47 03:47
✅ Reviewed your PR f84ddab Oct 16, 2026 · 02:43 02:48

@vercel

vercel Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
worldscript-studio Ready Ready Preview Oct 16, 2026 4:16am UTC

@codeant-ai

codeant-ai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 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 ⚠️ Failed 2026-10-16T04:41:27.910339Z d3d9756 Manual request
ℹ️ 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.

@sourcery-ai

sourcery-ai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR replaces the Windows removal stub with test-support-only authenticated handle deletion: files and empty directories are opened relative to the pinned directory, protected by restrictive sharing, authenticated where applicable, and deleted via FileDispositionInfoEx POSIX semantics. It adds comprehensive Windows and cross-platform tests, maps unsupported POSIX-delete errors consistently, and documents the durability and same-user memory-mapping limitations.

Sequence diagram for authenticated Windows removal

sequenceDiagram
    participant Caller
    participant PinnedDir
    participant Windows
    participant Authenticator
    participant Disposition

    Caller->>PinnedDir: remove_file(name, authenticate, observer)
    PinnedDir->>Windows: nt.open_relative(handle, name, DELETE, FILE_SHARE_READ)
    Windows-->>PinnedDir: File handle
    PinnedDir->>Authenticator: authenticate(PinnedFile)
    alt authentication refused
        Authenticator-->>PinnedDir: false
        PinnedDir-->>Caller: Refused
    else authentication succeeds
        Authenticator-->>PinnedDir: true
        PinnedDir->>Disposition: set_posix_delete(file)
        Disposition->>Windows: SetFileInformationByHandle(FileDispositionInfoEx)
        alt POSIX delete succeeds
            Windows-->>Disposition: success
            Disposition-->>Caller: Removed(NotConfirmed)
        else directory is not empty
            Windows-->>Disposition: ERROR_DIR_NOT_EMPTY
            Disposition->>Windows: known_refusal(code)
            Disposition-->>Caller: NotEmpty
        else POSIX delete is unsupported
            Windows-->>Disposition: ERROR_INVALID_PARAMETER, ERROR_NOT_SUPPORTED, or ERROR_INVALID_FUNCTION
            Disposition->>Windows: known_refusal(code)
            Disposition-->>Caller: Unsupported
        end
    end

    Caller->>PinnedDir: remove_dir(name, observer)
    PinnedDir->>Windows: nt.open_relative(handle, name, DELETE, FILE_SHARE_READ | FILE_SHARE_WRITE)
    Windows-->>PinnedDir: empty directory handle
    PinnedDir->>Disposition: set_posix_delete(handle)
    Disposition->>Windows: SetFileInformationByHandle(FileDispositionInfoEx)
    Windows-->>Disposition: success
    Disposition-->>Caller: Removed(NotConfirmed)
Loading

File-Level Changes

Change Details Files
Implemented authenticated Windows file and directory removal using handle-relative opens and POSIX delete disposition.
  • Open children with delete access and read-only sharing to prevent rebinding and concurrent writers.
  • Authenticate file contents before applying delete and POSIX semantics to the same handle.
  • Remove directories through the held handle and report non-empty directories without deleting them.
  • Return NotConfirmed for successful Windows removals and keep leftover recovery unsupported.
crates/worldscript-secure-storage/src/pinned/windows/removal.rs
crates/worldscript-secure-storage/src/pinned/removal.rs
Added Windows-focused coverage for removal safety, sharing behavior, refusal mapping, and FFI layout.
  • Enabled shared removal tests on Windows and added Windows-specific race, writer, directory, read-only, and leftover cases.
  • Pinned FILE_DISPOSITION_INFO_EX layout and centralized unsupported POSIX-delete error mapping, including ERROR_INVALID_FUNCTION.
  • Retained documentation and tests for the acknowledged writable memory-mapped-view residual.
crates/worldscript-secure-storage/src/pinned/tests/mod.rs
crates/worldscript-secure-storage/src/pinned/tests/remove.rs
crates/worldscript-secure-storage/src/pinned/tests/remove_windows.rs
Updated project documentation to record the Windows implementation, guarantees, limitations, and test-support-only status.
  • Added the Windows removal behavior and residual limitation to the changelog.
  • Expanded the durability evidence journal with implementation details, FFI safety rationale, proof cases, and unsupported-platform boundaries.
CHANGELOG.md
docs/native/r15/GATE4D-JOURNAL-DURABLE-EVIDENCE.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@codeant-ai

codeant-ai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: d3d97562
Scan Time: 2026-10-16 04:16:16 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED No IAC issues

View Full Results

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Oct 16, 2026
@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 31 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 62 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: fb498b58-8e0f-4ec3-8f21-05835bbb858a
📥 Commits

Reviewing files that changed from the base of the PR and between 140e981 and d3d9756.

📒 Files selected for processing: 2
  • CHANGELOG.md
  • crates/worldscript-secure-storage/src/pinned/tests/remove_windows.rs
📝 Walkthrough

Windows pinned file and directory removal now attempts POSIX deletion through the authenticated handle. Shared removal tests run on Windows. New Windows-specific tests cover handle sharing, refusal cases, redirection, and unsupported operations.

Changes: Pinned removal

Layer / File(s) Summary
Windows handle-based removal
crates/worldscript-secure-storage/src/pinned/windows/removal.rs, crates/worldscript-secure-storage/src/pinned/removal.rs, CHANGELOG.md, docs/native/r15/GATE4D-JOURNAL-DURABLE-EVIDENCE.md
File and directory removal open entries relative to the pinned directory and set POSIX delete disposition on the opened handle. Recognized errors map to NotEmpty or Unsupported; successful removal reports unconfirmed directory durability. The documentation describes Windows support and remaining limitations.
Removal tests
crates/worldscript-secure-storage/src/pinned/tests/mod.rs, crates/worldscript-secure-storage/src/pinned/tests/remove.rs, crates/worldscript-secure-storage/src/pinned/tests/remove_windows.rs, crates/worldscript-secure-storage/src/pinned/tests/windows_redirect.rs
Shared removal tests now include Windows. New Windows tests cover removal behavior, authentication, handle sharing, read-only files, leftover removal, error classification, and directory redirection.

Priority: ⬇️ Low

Merge Risk: 🔵 Low · up to 140e9

The removal behavior has a documented mapped-writer limitation, but the changelog briefly overstates its protection. Clarify that wording before merge or accept it as a bounded documentation follow-up.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

codescene-access[bot]

This comment was marked as outdated.

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

[check-pr-size] PR size is over the target tier (normal profile): 8 files, 517 meaningful lines, 5 commits — limit ≤8 files / ≤400 lines / ≤6 commits. Consider splitting into smaller, independently reviewable PRs.

@codeant-ai

codeant-ai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

CodeAnt PR Risk: Low Risk

  • The PR appears safe to merge because Windows removal remains test-support-only and has no production caller.
  • The Windows path authenticates and deletes through one handle, with tests for sharing conflicts, read-only files, directories, and unsupported dispositions.
  • Writable mappings can still change authenticated bytes, and directory reparse checks leave a narrow race; keep these limitations explicit before production use.

Assessed commit: 140e981a7ab3

@codecov

codecov Bot commented Oct 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

…Unix and on Windows (#445)

CodeAnt asked whether the mapped-writer limit on Windows is acceptable for this slice. Looking at it showed that the Unix removal has the same limit in a wider form and never said so: there is no sharing mode, so a same-user process with a writable descriptor or a writable shared mapping can change the bytes between the authentication and the unlink. Both are now stated in the module documentation, the evidence document and the changelog as parts of the same-user residual, not closed. Documentation only.
@qnbs

qnbs commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Disposition of the CodeAnt "PR Risk: Medium" note on a57f8ad5 (a writable memory-mapped view that existed before can change the file after authentication and before the disposition; "confirm that it is acceptable for this slice").

The limit is real and is not closed here. The read-only share mode stops every writer that opens the file after the removal opened it, and the hosted Windows run pins that (the counter-proof shows what write sharing would have let through). It cannot stop a writable view that another process created earlier and keeps after closing its handle: the sharing rule is about handles. I found no Windows mechanism that closes it. FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK only concerns image (executable) sections, not data views, and probing for a mapped section by truncating would write into the file.

Whether it is acceptable for this slice is covered by the recorded decision on the same-user residual: it may stand as documentation for a test-support slice with no caller, and it is not accepted for production reclamation; before H1b it needs either a mitigation with an adversarial negative proof or an explicit separate threat-model acceptance (#359). This PR does not claim it closed, does not enable any production path, and keeps H1_PROVED = NO.

What I added because of the question (7c43e606, documentation only): looking at it showed that the Unix removal has the same limit in a wider form and never said so. There is no sharing mode on Unix, so a same-user process with a writable descriptor or a writable shared mapping can change the bytes between the authentication and the unlink. The removal binds the object, not its bytes, on every platform. That is now in the module documentation, the evidence document and the changelog.

CodeAnt's risk note is a top-level comment without a thread, so it stays as it is; this is the written disposition.

codescene-access[bot]

This comment was marked as outdated.

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

Copy link
Copy Markdown

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: 7c43e60606

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

Comment thread crates/worldscript-secure-storage/src/pinned/windows/removal.rs
…Windows (#445)

Codex P2 on 7c43e60: the share mode of a directory handle cannot stop a writer from converting the empty directory into a reparse point in place (the module already says so for the pinned directory), and the observer, a caller's code, runs between the check and the disposition. The disposition would then have removed the converted entry and reported it as Removed although the API refuses links. The held handle is now checked a second time right before the disposition: a junction made in that window is left, its target is untouched and the removal answers Redirected. This narrows the window and does not close it; a file cannot be converted because its handle shares no write access.

Test: the directory is converted into a junction at the Checked stage with the existing convert_in_place helper. It runs on Windows only, so the hosted Windows run is the evidence (checked here by compiling for the Windows target); it is not mutation-checked locally. Documentation, changelog and evidence document say the same. test-support only, no new unsafe, no new package. Issue #359.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

codescene-access[bot]

This comment was marked as outdated.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: b6621323-45a0-4162-915c-660accece7cc
📥 Commits

Reviewing files that changed from the base of the PR and between a57f8ad and 140e981.

📒 Files selected for processing: 6
  • CHANGELOG.md
  • crates/worldscript-secure-storage/src/pinned/removal.rs
  • crates/worldscript-secure-storage/src/pinned/tests/remove_windows.rs
  • crates/worldscript-secure-storage/src/pinned/tests/windows_redirect.rs
  • crates/worldscript-secure-storage/src/pinned/windows/removal.rs
  • docs/native/r15/GATE4D-JOURNAL-DURABLE-EVIDENCE.md
🚧 Files skipped from review as they are similar to previous changes: 1
  • crates/worldscript-secure-storage/src/pinned/removal.rs

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Comment thread CHANGELOG.md Outdated
CodeRabbit on 140e981: the changelog said no writer can change the authenticated bytes while its own entry notes that a writable mapped view that existed before can. The claim is now limited to handles that open the file, and the test header says the same. Wording only.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Gates Passed
3 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@qnbs

qnbs commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

One request: the Codex review failed technically on the last two heads (140e981a, d3d97562). 140e981a contains the fix for the junction-conversion finding Codex raised on 7c43e606, which Codex has not seen; d3d97562 only changes wording.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@qnbs
qnbs merged commit 0ba4b94 into main Oct 16, 2026
45 checks passed

This branch was successfully deployed

1 active deployment
Preview — d3d97562 Deployed Oct 16, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant