diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..b7b48b19 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,30 @@ +# 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 + +# 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 + +# 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 diff --git a/.github/workflows/windows-free-tests.yml b/.github/workflows/windows-free-tests.yml index bc43976b..0c7e69e2 100644 --- a/.github/workflows/windows-free-tests.yml +++ b/.github/workflows/windows-free-tests.yml @@ -47,6 +47,16 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile + - name: Build server-node.mjs (required by Windows browse path) + # browse/src/cli.ts module-level throws on Windows if server-node.mjs + # is missing — Bun can't drive Playwright's Chromium on Windows + # (oven-sh/bun#4253). The bundle must exist for any test that + # transitively loads cli.ts to even import. We build only the + # Node-compatible server bundle here; full `bun run build` would + # also compile every binary which is slow and unnecessary for tests. + run: bash browse/scripts/build-node-server.sh + shell: bash + - name: Show curated subset (for build log audit trail) run: bun run scripts/test-free-shards.ts --windows-only --list shell: bash