GENERATED VIEW · PRIVATE ARCHIVE · DO NOT SERVE
RobCo Industries · Archive Museum

museum-lf-normalization.md



MEMORY

memory/project-C--Dev--RobCo--RobCo-Archive/museum-lf-normalization.md

sha256 9d2d55722db1f6a2 · 1478 bytes · original held in the private archive

--- name: museum-lf-normalization description: "The archive is LF-only via .gitattributes; the museum generator content-hashes inputs, so EOL matters a lot" metadata: node_type: memory type: project originSessionId: 3e4faaa8-ab7b-4f3a-ab11-02989d3ddb5c modified: 2026-07-21T01:12:16.046Z --- Repo-root `.gitattributes` (`* text=auto eol=lf`, `*.png`/`*.zip binary`) forces LF on checkout, overriding the machine's system-level `core.autocrlf=true`. This exists because `museum/generate.mjs` names each doc page `docs/<sha256(rawBytes)[:12]>.html` — it content-hashes its **inputs**, so a CRLF checkout doesn't just add `\r`, it **renames generated pages** and re-churns the whole museum. Chose `eol=lf` (text), not `-text`, so `git diff` stays line-readable for the publication diff. `sync.ps1` was rewritten to emit LF (its `WriteAllLines` used `Environment.NewLine` = CRLF, which had baked CRLF hashes for `_CAPTURE_MANIFEST.txt`, `_CAPTURED_STORES.txt`, `ARCHIVE_RETAINED.md`, `AUDIT.md` into the committed museum). Proving a determinism/EOL fix here: a **local** regen is worthless (the working copy is already LF). Must **clone fresh** (from the remote), regen with `MUSEUM_APP_REPO=../!RobCo-UOS`, copy `museum/.cache` in (gitignored thumb cache, else Playwright runs), and confirm `git status` clean. Caveat: [[museum-readme-txt-leak]] means a *bare* clone (no README.txt) still shows a residual — keep README.txt present to isolate line-ending behavior.
STAMP · generated for RELEASE v2.8.5 commit 06e5180 (06e51801b38a) · archive input-tree hash c07fbfbdd2e1ddeb · 754 files · no wall-clock timestamp (regenerates identically when nothing changed).