# Ensure LF line endings for files consumed by include_str!() on all platforms. # include_str!() preserves raw bytes; CRLF breaks substring assertions and # produces different compiled binaries on Windows vs Linux/macOS. # Cover nested mode/approval/personality prompts — a top-level *.md glob alone # left modes/*.md on CRLF under Windows autocrlf and blew the agent token budget. crates/tui/src/prompts/**/*.md text eol=lf crates/tui/src/prompts/*.md text eol=lf crates/tui/src/prompts/*.txt text eol=lf # The rest of the include_str!() inputs. `* text=auto` below converts these to # CRLF on a Windows checkout, which is invisible for the ones that are only # parsed or substring-matched and fatal for the one that is compared byte for # byte: crates/telemetry/tests/golden/v1.json is asserted against # serde_json::to_string_pretty output, which always emits LF, so Windows CI # failed `golden_payload_v1` with a pure \r\n diff. crates/telemetry/tests/golden/*.json text eol=lf crates/*/assets/**/*.json text eol=lf crates/*/assets/**/*.md text eol=lf crates/*/locales/*.json text eol=lf workflows/*.js text eol=lf # Rustfmt writes LF; keep Rust sources stable across Windows/Linux/macOS. *.rs text eol=lf # Release shell scripts are invoked directly by bash on Windows # checkouts; CRLF turns `set -euo pipefail` into an invalid option. scripts/release/*.sh text eol=lf # Keep repository attributes themselves stable on every platform. .gitattributes text eol=lf # Everything else auto-detects (default). * text=auto