# Force LF for files that must be POSIX line-ended at runtime. # Windows operators check out CRLF by default, which breaks `#!/bin/sh\r` # shebangs inside Linux containers (Phase 5 staging deploy hit this). *.sh text eol=lf *.mjs text eol=lf docker-entrypoint.sh text eol=lf # Phase 3 generated artifacts byte-compared against fresh re-emit by # verify gates (tools/protocol-doc, tools/save-format-doc). Re-emit is # always LF; on-disk must match. Without eol=lf, Windows autocrlf # converts checkout to CRLF and verify-phase-3 fails on Linux CI. docs/extracted-server/protocol.json text eol=lf docs/extracted-server/protocol.md text eol=lf docs/extracted-server/save-formats.json text eol=lf tools/protocol-doc/output/protocol.ts text eol=lf tools/save-format-doc/output/save-formats.ts text eol=lf extracted/**/MANIFEST.sha256 text eol=lf # Auto-detect everything else; preserve binary as-is. * text=auto *.mp4 filter=lfs diff=lfs merge=lfs -text