# Pin canonical text-file line endings to LF.
#
# `text=auto` lets git detect text vs. binary; `eol=lf` pins the
# canonical in-repo line ending. On a Windows checkout, files stay LF
# on disk (no autocrlf round-trip churn), eliminating the recurring
# "LF will be replaced by CRLF the next time Git touches it" warnings
# and phantom "modified" churn on tool-regenerated files.

* text=auto eol=lf

# Explicit binary types — git's auto-detection is usually correct
# but spell out the common ones to be safe.
*.png   binary
*.jpg   binary
*.jpeg  binary
*.gif   binary
*.ico   binary
*.svg   binary
*.dll   binary
*.exe   binary
*.pdb   binary
*.nupkg binary
*.snupkg binary
*.zip   binary
*.tar   binary
*.gz    binary
*.pdf   binary
*.woff  binary
*.woff2 binary
*.ttf   binary
*.eot   binary

# The embedded renderer assets are BYTE COPIES whose SHA-256 is pinned in the fingerprint
# beside them, so nothing may rewrite them between the sync that hashed them and the checkout
# that verifies them. `text=auto` above would put them under end-of-line normalisation, which
# is exactly such a rewrite — silent, platform-dependent, and indistinguishable at the hash
# from the tampering the fingerprint exists to catch.
src/fuaran_ui_data/_bundle/fuaran-renderer.js   -text
src/fuaran_ui_data/_bundle/fuaran-reference.css -text

# Recorded tree snapshots are compared BYTE for byte, and canonical wire JSON contains no
# newline at all — so end-of-line normalisation is a no-op on them today. Pinned anyway: the
# property the comparison rests on is that these bytes are the ones that were recorded, and
# leaving that to a coincidence about the encoder's output is how it stops being true quietly.
tests/__snapshots__/*.json -text
