Repository navigation
fix: make line endings and repository paths platform-independent on Windows - #12
Merged
Merged
Conversation
…indows - .gitattributes: check out text as LF so pinned hashes and byte comparisons hold under core.autocrlf=true - generator scripts record '/' paths (ledger, package and schema audits) - core-ideals evidence and domain-pack boundary checks compare '/' paths, so '..\' escapes are rejected and valid paths aren't flagged unsafe on Windows Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Running the full suite on Windows (
core.autocrlf=true) produced 128 failures, nearly all from the checkout rather than the code:.gitattributesnow starts with* text=auto eol=lf; the existing-textrules for pinned native sources still take precedence.git add --renormalize .changes no committed file.acceptance-traceability.ts,audit-extension-packages.tsandaudit-json-schemas.tswrote\paths on Windows, rewriting every row of the ledger and audit fixtures. They now record/paths and reproduce the committed fixtures byte-for-byte.scripts/core-ideals/*,export-domain-pack.tsanddomain-pack-family.tscomparedrelative()output with/paths. On Windows that flagged valid evidence paths as unsafe, andstartsWith('../')never rejected a..\escape. Both are now normalized to/.Verification (Windows 11, Bun 1.3.14)
bun run typecheck: cleanbun run test:schemas,bun scripts/acceptance-traceability.ts: no diff against committed fixturesRemaining failures (not changed by this PR, platform-independent)
CI runs only
tests/domain-packs, so these don't show there:153.0.8010.12, butcardinality,facetsandkeyevidence expects148.0.7778.0fixtures/validation/relationship-gate-refresh.jsonpins an older hash ofnative/tablespec/sources/tests/unit/test_umf_loader.py(the file changed in 436e975)dist/avro-facet-selection.jsEnvironment-only failures on the test machine:
protocandgoare not installed (8 tests). Bun appliespatches/jsonld@9.0.0.patchwith CRLF on Windows, so one installed-hash check fails (the hashes match once the files are converted to LF).Note for existing Windows clones
Existing checkouts keep their CRLF files until re-checked out, e.g.
git rm -r --cached -q . && git reset --hardon a clean tree.🤖 Generated with Claude Code