Fix cross-platform document path diagnostics - #3128
Conversation
|
Verification checkpoint for unchanged head
Kept draft until remaining qualification is complete. A scoped review on #3102 records how to integrate these path hunks without overwriting its parser changes. |
Chris0Jeky
left a comment
There was a problem hiding this comment.
Fresh-context review found no blocking correctness issue in this bounded path-resolution change.
Checked at exact head ad793822:
- containment now rejects only an actual parent segment (
..or../...), so legal..notes*names stay inside the repository; - case-folded lookup is diagnostic-only and still requires a single unambiguous entry at every segment;
- a missing leaf below a differently cased directory remains
missing, rather than being misreported as a case-only target; - correct-case targets still pass through the existing exact-case validator;
- the real-filesystem tests cover file and directory case, traversal, percent decoding, missing suffixes, and whole-scan behavior.
Fresh hosted evidence is green for required CI 35156663441, CI Extended 35156663399, and Smart CI Self-Test 35156663028. I left the PR in draft because #3102 modifies the same parser and its masking/parser work must be retained during integration.
|
Rechecked head ad79382: required CI 35156663441, CI Extended 35156663399 and Smart CI 35156663028 have all completed successfully. The separate full-repository |
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. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex please verify exact head
Report exact counts/output and leave the checkout clean. Do not commit or push. |
Verification ResultConfirmed the checkout was at the requested exact head: All requested checks passed:
Checkout StateAfter verification: Both No files were modified, and no commit, push, or pull request was created. Outstanding Repository Items
|
|
Synchronized with current
The outdated long-running Windows workflow can no longer qualify the merge candidate; fresh exact-head CI is now authoritative. |
|
@codex review Please review exact merge head |
|
@codex please verify exact head
Report exact totals/output and final PR-relative inventory. Do not commit or push. |
Verification ResultConfirmed the checkout remained at the requested exact head throughout: The verified implementation performs diagnostic-only case-folded lookup without accepting incorrectly cased targets. scripts/check-doc-links.mjsL129-L145 The accompanying regression coverage includes wrong-case files/directories, missing suffixes, legitimate two-dot-prefixed names, traversal, percent decoding, and complete-scan behavior. scripts/check-doc-links.path.test.mjsL22-L77 Checks
Final Checkout StateBoth the before-and-after No files were modified. Per the request, I did not commit, push, or create another pull request. Outstanding Repository Items
|
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Refs #2762 and #3067. Related parser work remains in #3102.
Outcome
Fixes two path-resolution defects:
wrong caseon case-sensitive filesystems, rather thanmissing; they still fail validation;..notes.mdand..notes/Guide.mdare allowed inside the repository; only an actual..path segment is treated as parent traversal.Missing suffixes remain missing. The case diagnostic follows only an unambiguous directory entry; it does not rewrite links or accept a differently cased target. Parsing, scan scope, dependency files, and CI/control-plane wiring are unchanged.
Current-main reconciliation
Head
f7033e6cbfad73d92af98ad9753f0d7cab52b821merges current maincb204adcc73ebeb3834eae714edc5ecadebf99fcwhile preserving exactly the two intended files:scripts/check-doc-links.mjsscripts/check-doc-links.path.test.mjsThe intervening main change is the merged k6 harness repair #3133 and does not overlap the documentation-link checker. The final tree overlays the previously reviewed/tested two blobs onto that main tree rather than replacing unrelated work.
Verification
Author-side evidence on the unchanged checker/test blobs:
node --test --test-skip-pattern='the repository itself' scripts/check-doc-links.test.mjs scripts/check-doc-links.path.test.mjs— 24 passed;node --check scripts/check-doc-links.mjs— passed;f812352f438869adf5cb1a37eebe2d8cbb2a9ac1.Prior head
59f32755d3f2b6dc29f896f8e940d0e4a6a601bdhad clean Codex review and green CI Extended; its required run was still executing when main advanced. Fresh exact-head hosted CI, Windows execution, the full-repository link check, and review are required onf7033e6cbfad73d92af98ad9753f0d7cab52b821before merge.#3102 touches the same checker. Land this path-diagnostic correction first, then retain it when rebasing the parser/masking work rather than replacing the file wholesale.