# Git attributes — silos.
#
# Two things this file is for, and one it is deliberately not.
#
# 1. Line endings, stated rather than inherited. `git ls-files --eol` reports
#    the index as `i/lf` for 387 of the 395 tracked files, i.e. the repository
#    already stores LF. Saying so here makes that a property of the repository
#    instead of a property of whoever cloned it: `core.autocrlf=true` is set on
#    the Windows checkout this was written on, and a contributor on Linux has
#    it unset. Without an attribute, the two disagree about what "unchanged"
#    means.
#
# 2. Binaries and generated files, so `git diff` never tries to render them and
#    GitHub's language statistics do not count a hash manifest as Python.
#
# What it is NOT for: `eol=lf` on `*`. That would rewrite the working tree of
# every Windows checkout on the next `git add` — including the `.bat`/`.ps1`
# entry points, which Windows shells read more reliably with CRLF. `text=auto`
# plus an explicit CRLF rule for those scripts is the version that does not
# fight anyone.

* text=auto

# Windows-only entry points. cmd.exe and PowerShell are happier with CRLF, and
# nothing else in the repository reads them.
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Binary — never converted, never diffed as text.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.woff binary
*.woff2 binary
*.pdf binary
*.gguf binary
*.parquet binary
*.sqlite binary
*.so binary
*.pyd binary
*.dll binary
*.exe binary

# Generated. Excluded from diffs is too strong — a change to the CSP hashes is
# exactly the kind of thing that should be visible in review — but it should
# not be counted as hand-written source.
backend/csp_hashes.json linguist-generated=true
frontend/package-lock.json linguist-generated=true -diff
