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
Fix repo_gate.py Reads ls-files Without Pinning or Decoding Git's Quoting, So a Non-ASCII Name Crashes It or Leaves Coverage #1580 in .github/actions/repo-gate/repo_gate.py. Re-read the issue first. tracked() reads git ls-files without pinning core.quotePath, so core.quotePath=false makes a non-UTF-8 name crash the strict decode, and the default quoting yields an escaped spelling that check_eol then skips. sh() has the same shape. Apply the fix the issue names, the shape Name the Encoding on Every Text-Mode Subprocess Call #1574 settled in prose_lint.py: pin core.quotePath=true on each invocation so the escaped form is the only form, and decode the escape back into the real name, using prose_lint.py's diff_header_path and its docstring as the working reference rather than inventing a new decoder. Done looks like both symptoms gone for a constructed repository holding one tracked file whose name contains a byte that is not valid UTF-8, a test per symptom in the repo gate's suite that fails when the fix is reverted, the fleet gate set passing locally, and a recorded local-strict-review pass.
Drive the pull request to develop with drive-pr, its body carrying Closes on promotion: #1580, then close this lane out.
External blockers
None known. If sharing a decoder between the two gate scripts turns out to need a layout choice the rules do not settle, keep a local copy in repo_gate.py or park, rather than choosing a new shared module.
Next steps, in priority order
.github/actions/repo-gate/repo_gate.py. Re-read the issue first.tracked()readsgit ls-fileswithout pinningcore.quotePath, socore.quotePath=falsemakes a non-UTF-8 name crash the strict decode, and the default quoting yields an escaped spelling thatcheck_eolthen skips.sh()has the same shape. Apply the fix the issue names, the shape Name the Encoding on Every Text-Mode Subprocess Call #1574 settled inprose_lint.py: pincore.quotePath=trueon each invocation so the escaped form is the only form, and decode the escape back into the real name, usingprose_lint.py'sdiff_header_pathand its docstring as the working reference rather than inventing a new decoder. Done looks like both symptoms gone for a constructed repository holding one tracked file whose name contains a byte that is not valid UTF-8, a test per symptom in the repo gate's suite that fails when the fix is reverted, the fleet gate set passing locally, and a recordedlocal-strict-reviewpass.drive-pr, its body carryingCloses on promotion: #1580, then close this lane out.External blockers
None known. If sharing a decoder between the two gate scripts turns out to need a layout choice the rules do not settle, keep a local copy in
repo_gate.pyor park, rather than choosing a new shared module.Internal dependencies
prose_lint.py, are already closed.State
repo-worktree, onfeature/auto-1580fromdevelop.repo_gate.pyat the time this handoff was written. Re-derive that before editing.The parked decision queue
Zero parked decisions on this lane.
What the last round did
Nothing. This handoff was created by the unattended picker from the open backlog.
What not to repeat
Nothing yet.
New learnings
None yet.