Skip to content

chore: normalize all CRLF blobs to LF - #126

Merged
stackbilt-admin merged 3 commits into
mainfrom
chore/normalize-factory-test-eol
Oct 16, 2026
Merged

stackbilt-admin merged 3 commits into
mainfrom
chore/normalize-factory-test-eol

Conversation

@stackbilt-admin

@stackbilt-admin stackbilt-admin commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Ends the phantom "modified" files on every checkout by storing the last four CRLF blobs with LF endings. No content changes.

What was wrong

  • Four tracked .ts blobs were stored with CRLF line endings: src/__tests__/factory.test.ts, src/errors.ts, src/index.ts and src/types.ts.
  • .gitattributes requires LF (*.ts text eol=lf), so a checkout showed them as modified.
  • One machine hid three of them with a local, unversioned -text override in .git/info/attributes. Earlier agent handoffs treated the remaining factory.test.ts diff as local work to preserve.

Change

  • ce969ce: renormalize factory.test.ts.
  • 332bb26: renormalize errors.ts, index.ts and types.ts.
  • For each file, the new blob equals the old blob with CRLF converted to LF, byte for byte. git diff --ignore-cr-at-eol against main is empty, and the file modes are unchanged.
  • Checkpoint (docs/maintenance/issue-sweep.md):
    • Step 1 now says the repository is LF-only, and that no local override is needed.
    • It says a file showing as modified with an empty git diff --ignore-cr-at-eol has only a line-ending difference. Restore it with git checkout -- <file> instead of preserving it.
    • A sentence that read like the old preservation instruction is reworded.

Verification

  • git ls-files --eol reports no i/crlf blobs.
  • A fresh git clone --no-local of this branch on Windows, with core.autocrlf=true and no .git/info/attributes entries, shows a clean git status.
  • The original checkout is clean after its local override was removed.
  • tsc --noEmit passes, and the full vitest suite passes (789 tests across 30 files).

Not changed

  • factory.test.ts and the three source files keep mode 100755. The executable bit is probably accidental, but it is unrelated to line endings; it can be cleared separately.
  • The checkpoint date stays 2026-10-15, which is still the local date.

Round 1 review (merge after fixes): the first version left three CRLF blobs, so its "fresh checkout is clean" claim was false. Its checkpoint step also relied on the machine-local override. Both are fixed here.

🤖 Generated with Claude Code

kovermier and others added 3 commits October 15, 2026 20:11
The committed blob had CRLF line endings, but .gitattributes requires
LF for *.ts, so every checkout showed the file as modified. This stores
the same content with LF endings; `git diff --ignore-cr-at-eol` shows
no changes, and the file mode (100755) is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
These were the last tracked blobs stored with CRLF, despite
`*.ts text eol=lf` in .gitattributes, so every clone without a local
.git/info/attributes override showed them as modified. Same content with
LF endings (`git diff --ignore-cr-at-eol` is empty); modes unchanged.

The checkpoint's step 1 now says the repository is LF-only, that a
line-ending-only diff should be restored rather than preserved, and that
no local override is needed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stackbilt-admin stackbilt-admin changed the title chore: normalize factory.test.ts line endings to LF chore: normalize all CRLF blobs to LF Oct 16, 2026
@stackbilt-admin
stackbilt-admin merged commit a93070c into main Oct 16, 2026
2 checks passed
@stackbilt-admin
stackbilt-admin deleted the chore/normalize-factory-test-eol branch October 16, 2026 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants