mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-31 14:06:50 +01:00
.gitattributes pins nested bin/, hook shims, lib/cso/images and scripts/app to LF, and setup rewrites copies an older checkout left with CRLF, leaving locally edited files alone with a warning (#3110). The timeline Stop hook reads the slug from gstack-slug's cache and hands a miss to a detached, locked, negatively cached repair child (#3103). The /setup-gbrain smoke test writes its page to a temp file instead of piping into gbrain put (#1675). Co-authored-by: Mr-B-1 <214900604+Mr-B-1@users.noreply.github.com> Co-authored-by: Andrei Bacu <63974644+Peaky8linders@users.noreply.github.com> Co-authored-by: Elliot Drel <156480527+ElliotDrel@users.noreply.github.com>
64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
# Force LF on text files we parse with `\n`-anchored regexes (frontmatter,
|
|
# YAML, markdown structure tests). Without this, Windows checkouts with
|
|
# core.autocrlf=true convert these to CRLF and break tests that match
|
|
# /^---\n...\n---/ against SKILL.md.tmpl frontmatter, etc.
|
|
*.md text eol=lf
|
|
*.tmpl text eol=lf
|
|
*.yml text eol=lf
|
|
*.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.
|
|
*.sh text eol=lf
|
|
*.bash text eol=lf
|
|
|
|
# Extensionless executables (top-level setup script + bin/gstack-* helpers).
|
|
# These are bash scripts checked into git without a `.sh` suffix. Without
|
|
# explicit eol=lf, Windows checkout with core.autocrlf=true converts them
|
|
# to CRLF and breaks both `\n`-anchored regex tests (test/setup-codesign.test.ts)
|
|
# and shebang resolution if the script is ever executed on Linux.
|
|
setup text eol=lf
|
|
bin/* text eol=lf
|
|
**/scripts/* text eol=lf
|
|
|
|
# Nested executables (#3110). A pattern containing a slash is anchored at the
|
|
# repository root, so `bin/*` above covers only the top-level bin/. These are
|
|
# bash or sh entry points too; a Windows checkout wrote them with CRLF, and a
|
|
# Linux bash reading that checkout (a synced tree, WSL, a bind mount) failed
|
|
# with `set: pipefail: invalid option name`. setup's CRLF repair rewrites
|
|
# copies an older checkout already left with CRLF.
|
|
**/bin/* text eol=lf
|
|
hosts/*/hooks/* text eol=lf
|
|
lib/cso/images/* text eol=lf
|
|
scripts/app/* text eol=lf
|
|
browse/test/fixtures/mock-claude/* text eol=lf
|
|
|
|
# Dockerfiles build on Linux, and test/ci-image-cli-pin.test.ts joins their
|
|
# `\`-continued RUN lines with a `\\\n` match; CRLF left each RUN split.
|
|
Dockerfile* text eol=lf
|
|
|
|
# TypeScript/JavaScript: LF for portability across the bun toolchain.
|
|
*.ts text eol=lf
|
|
*.tsx text eol=lf
|
|
*.js text eol=lf
|
|
*.mjs text eol=lf
|
|
*.cjs text eol=lf
|
|
|
|
# Binary files — never touch.
|
|
*.png binary
|
|
*.jpg binary
|
|
*.jpeg binary
|
|
*.gif binary
|
|
*.ico binary
|
|
*.pdf binary
|
|
*.icns binary
|
|
|
|
# The committed diagram-render bundle is hash-pinned (BUILD_INFO sha256);
|
|
# a CRLF rewrite on Windows checkout would break the drift test and change
|
|
# the content-addressed staged filename.
|
|
lib/diagram-render/dist/*.html text eol=lf
|
|
lib/diagram-render/dist/*.json text eol=lf
|