f07b096340
`Test (windows-latest)` failed `codewhale-telemetry` `golden_payload_v1` with a diff that was nothing but \r\n vs \n. The golden is pulled in with include_str!() and compared byte for byte against serde_json::to_string_pretty output, which always emits LF, so the `* text=auto` default corrupted it on a Windows checkout. This file already documents that hazard for the prompt assets; the newer include_str!() inputs (telemetry golden, bundled catalogs and skills under crates/*/assets, the locale packs, the workflow scripts) had never been added. The others survived only because they are parsed or substring-matched rather than compared exactly. `git add --renormalize .` reports no content change: every one of these is already stored with LF, so this only affects what Windows checks out.
34 lines
1.5 KiB
Plaintext
34 lines
1.5 KiB
Plaintext
# 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
|