143-line-endings-do-not-stale-the-ledger
Line endings do not stale the ledger
Every emitted derived file is canonical JSON with LF endings, and the freshness reads compare the committed bytes with the recompute exactly (spec 086). Git on Windows with `core.autocrlf=true` and no `.gitattributes` rule for the derived tree checks those files out with CRLF, so every shard read as `modified`: a false staleness that regenerating cannot cure, because the next checkout converts again. Spec 134 quarantined three tests for it as WF-7. This spec makes the comparison read a committed file whose only difference is CRLF for LF as the same text, in the registry, the index and the inputs sidecar, keeps every other byte significant, and lifts the quarantine so the Windows test job proves it.
Read the full pinned specification ↗Relationships
depends on
Claimed units
- establishes
{ "kind": "file", "path": "crates/spec-spine-core/tests/line_endings.rs" } - extends
{ "nature": "corrective", "spec": "022-index-sharding", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/shard.rs" } } - extends
{ "nature": "corrective", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/compile.rs" } } - extends
{ "nature": "corrective", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/index.rs" } } - extends
{ "nature": "corrective", "spec": "134-the-suite-runs-on-windows", "unit": { "kind": "file", "path": "crates/spec-spine-cli/tests/cli.rs" } } - extends
{ "nature": "corrective", "spec": "134-the-suite-runs-on-windows", "unit": { "kind": "file", "path": "crates/spec-spine-cli/tests/couple.rs" } }
Source headings
- 143: Line endings do not stale the ledger
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 CRLF is the same text (amends 028 §3.1, 069 §3.1)
- 3.2 WF-7 is fixed (amends 134)
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.