Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #73.
The repository's shell-script blobs already contain LF line endings. The failure occurs during checkout: with
core.autocrlf=true, Git converts them to CRLF because the repository has no explicit shell-file EOL policy. Linux then cannot resolve the CR-terminated shebang interpreter; explicitly invoking a shell also fails on the CR-terminated shell statements.*.sh text eol=lfto preserve LF in shell-script checkouts, includingprogress.shand scripts mounted as Linux container entrypoints.Verification
core.autocrlf=truecase failed for all five scripts;falseandinputcontrols passed.python3 -m unittest discover -s tests -vpasses all three cases with Git 2.43.0 on Linux.GIT_BINARY='/mnt/c/Program Files/Git/cmd/git.exe' python3 -m unittest discover -s tests -valso passes all three cases with actual Git for Windows 2.52.0.windows.1, invoked from WSL.checkout-indexso Git actually rematerializes the files rather than taking a stat-cache shortcut.git diff --cached --checkpasses.The preceding issue investigation separately reproduced failures by executing the actual CRLF checkouts in an isolated Linux environment: direct invocation returned 127 (missing CR-suffixed interpreter), explicit shell invocation returned 2, and LF controls succeeded. No Docker, live RPC, or existing node data was used.
Scope and limitations
This is a checkout policy fix, not a claim that the committed scripts contain CRLF or that every Windows setup is affected. Windows Git was tested through WSL using UNC paths; Docker Desktop end-to-end startup was not run.
The rule governs future checkout materialization. Adding it does not itself rewrite pre-existing CRLF working files: operators must preserve local edits and refresh affected files or use a fresh checkout after updating. No destructive refresh command or global configuration change is included.
This change is independent of the WebSocket fix in #91 and uses a separate test module. PR #83 concerns
.envparsing, not shell-file checkout conversion.Implementation and test preparation were AI-assisted.