You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Session Handoff [auto-2244]: Refuse a Drive-Letter Component Anywhere in a Tree Path per #2244 #2245
Fix Refuse a Drive-Letter Component Anywhere in a Tree Path, Not Only at Its Start #2244: refuse a drive-letter spelling in any path component, not only at the start of the value, in spec/validate.py's escapes_repo_root and in scripts/carry.py's relative_root alike, so both tools refuse such a value before either one's component walk (current /= part) joins it. Add a test in each tool's suite that a value such as real/C:x is refused, and prove each test by reverting the fix and watching it fail. Done looks like a feature -> develop pull request merged with Closes on promotion: #2244 in its body.
External blockers
None known. The defect needs a Windows host to reach, but the fix is a string-level refusal, so it is testable on Linux without one.
Internal dependencies
None. #2243 (#1452), which added symlinked_component and the tree check's call to escapes_repo_root, is already merged to develop, so the fix builds on develop as it stands.
State
Lane created by an unattended-handoff picker, scope develop. No branch, worktree, or pull request exists for it yet.
Fixed: Refuse a Drive-Letter Component Anywhere in a Tree Path, Not Only at Its Start #2244. escapes_repo_root in spec/validate.py now refuses a component wherever PureWindowsPath(part).drive is non-empty, and relative_root in scripts/carry.py refuses one wherever PureWindowsPath(part).anchor is non-empty. That is wider than the issue's letter-only shape, since Windows reads any character followed by a colon as a drive, and a leading backslash resets the walk the same way. Each suite has a test, and both tests fail with the fix reverted.
Activity
ptr727 commentedon Oct 1, 2026
Lane closed out by its unattended-handoff worker, scope develop.
Closes on promotion: #2244. Refuse a Drive-Letter Component Anywhere in a Tree Path, Not Only at Its Start #2244 stays open until a develop -> main promotion carries it.escapes_repo_rootinspec/validate.pynow refuses a component whereverPureWindowsPath(part).driveis non-empty, andrelative_rootinscripts/carry.pyrefuses one whereverPureWindowsPath(part).anchoris non-empty. That is wider than the issue's letter-only shape, since Windows reads any character followed by a colon as a drive, and a leading backslash resets the walk the same way. Each suite has a test, and both tests fail with the fix reverted.relative_rootstill accepts a backslash in the middle of a component, which hides a symlinked component from the walk on Windows.