Skip to content

No .gitattributes: generated skill content fails its own freshness check on Windows due to CRLF checkout #2301

Closed

Description

@mstomar125

Problem

The repo has no .gitattributes file at all. On windows-latest GitHub Actions runners, Git's default core.autocrlf=true converts text files to CRLF on checkout. packages/skill/references/cli.md (and likely packages/skill/SKILL.md) are generated by cargo run -p nodespace-cli --example gen_skill_md -- --check, which renders content in-memory (LF) and compares it byte-for-byte against the checked-out file on disk (CRLF on Windows) — a spurious mismatch purely from line-ending normalization, not any real content drift.

Why this was never caught before

Windows release builds have been broken by an unrelated bug (core#2280, libsql-sys Unix-only API usage) since before this generated-content mechanism (#2284/#2296) existed. Windows CI never got far enough in the build to reach the bun run build:skill step until #2280's fix landed — this is a real, pre-existing, orthogonal bug, just never previously exposed.

Evidence

Real Windows CI run (https://github.com/NodeSpaceAI/nodespace-core/actions/runs/32845769422, triggered to verify #2280's fix): Build Tauri (other platforms) (windows-latest) failed at bun run skill:check with "stale generated content in: references/cli.md ... A generated region no longer matches its source." git diff against the exact same commit shows zero content difference for packages/skill/references/cli.md, packages/agent/src/skill_rules.rs, or packages/cli/src/lib.rs — confirming this is not real drift.

Fix

Add a .gitattributes file pinning generated skill content (and reasonably, all text files in general) to LF line endings on checkout, regardless of platform or local core.autocrlf settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions