From 5ddbdfa9becc09c10724cf0db4ead4888eba10b5 Mon Sep 17 00:00:00 2001 From: Mike Laniak Date: Tue, 11 Aug 2026 17:40:15 -0500 Subject: [PATCH] fix(gitattributes): pin *.txt to LF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .gitattributes pins LF for every other text format in the repo (*.md, *.tmpl, *.yml, *.yaml, *.json, *.toml, *.sh, *.ts, extensionless scripts, even the hash-pinned diagram-render dist files). *.txt is the one text format left unpinned. On Windows with core.autocrlf=true, that means the two tracked .txt files are rewritten to CRLF at checkout and then read as permanently modified: gstack/llms.txt +174 bytes make-pdf/test/fixtures/combined-gate.expected.txt +20 bytes git status is never clean, and /gstack-upgrade's 'git stash' step saves a phantom stash on every upgrade — one that pops back to an empty diff. Co-Authored-By: Claude Opus 5 --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index e67042f0ab..10a4ff7fd1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,6 +8,7 @@ *.yaml text eol=lf *.json text eol=lf *.toml text eol=lf +*.txt text eol=lf # Bash scripts must always use LF — CRLF in bash scripts produces bizarre # "Bad interpreter" / "command not found" errors on Linux runners.