# Force LF for all text files. Without this, Windows runners checkout with
# core.autocrlf=true and convert LF -> CRLF, which breaks shebang-line
# stripping for .mjs scripts imported by vitest/esbuild (e.g. scripts/
# calibrate-health-metrics.mjs imported by its test) — surfaces as
# "SyntaxError: Invalid or unexpected token" on windows-latest CI only.
* text=auto eol=lf

# ...except batch files. cmd.exe cannot parse an LF-only .cmd reliably: caret
# line continuations and parenthesised blocks come apart, and the guard hook
# fails with "'e' is not recognized as an internal or external command" (seen
# on windows-latest, TRA-757). These must reach disk — and the npm tarball —
# with CRLF.
*.cmd text eol=crlf
*.bat text eol=crlf
