# gzkit line-ending normalization (cross-platform.md; ADR-0.0.1; GHI #570).
#
# Normalize every text file to LF in the repository on all platforms,
# regardless of a clone's local `core.autocrlf`. This is the git-layer half
# of the cross-platform line-ending discipline; the runtime half is
# `gz validate --line-endings` (part of `gz check`), which fails closed on
# any committed text surface that still carries CRLF.
* text=auto eol=lf

# Append-only JSONL the runtime appends to during a session (GHI #811).
#
# Two clones in flight both append to the tail, so git conflicts over disjoint
# additions and a human is forced to hand-edit the ledger — the action
# AGENTS.md § Never #2 prohibits. `merge=gzkit-jsonl` reconciles them as a
# timestamp-ordered union via `gz ledger merge-driver`.
#
# NOT `merge=union`: git's built-in concatenates without ordering, and these
# rows are strictly ts-ordered (`gz validate --ledger`, GHI #812). The driver
# needs `merge.gzkit-jsonl.driver` in local git config, which git cannot commit;
# `gz git-sync` registers it, and `gz init` seeds it for new clones.
.gzkit/ledger.jsonl merge=gzkit-jsonl
.gzkit/insights/agent-insights.jsonl merge=gzkit-jsonl
.gzkit/corpus/*.jsonl merge=gzkit-jsonl

# Binary files git must never line-ending-normalize.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.zip binary
*.whl binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
