Repository navigation
@cldmv/configs v1.2.4 Changelog
Release Date: October 2026
Release Type: Patch
Branch: release/1.2.4
Overview
The shared fix-headers.json stops forcing @Last modified by. Until now every fix-headers run in an extending repository stamped whoever ran it as the last modifier of every file it touched, even when the only change was a header rewrite such as a new date format. With forceLastModifiedAuthorUpdate set to false and fix-headers 2.2.0, @Last modified by now records the last person who actually edited a file's content, while @Last modified time still moves whenever fix-headers rewrites a header.
Together with forceAuthorUpdate: false, which shipped in v1.2.3, the shared config no longer rewrites anyone's authorship: @Author keeps the file's creator, and @Last modified by follows real edits. Extending repositories should upgrade to @cldmv/fix-headers 2.2.0 or later alongside this release.
🐛 Bug Fixes
@Last modified by follows real edits (#20)
forceLastModifiedAuthorUpdate was true, so every run rewrote @Last modified by to the identity running fix-headers (the name on their signing key, or git config user.name without one) on every file it changed. A contributor who ran npm run fix:headers therefore became the last modifier of every restamped file, even files they never opened (#15).
The option is now false. From fix-headers 2.2.0 (CLDMV/fix-headers#128) the field changes only when a file's content, everything outside the header, differs from the last commit, or when the file is new:
| What changed in a file | @Last modified time |
@Last modified by |
@Author |
|---|---|---|---|
| Nothing | unchanged | unchanged | unchanged |
Only the header (date format, epoch, @Date, spacing, filename, …) |
updated | unchanged | unchanged |
| Content edited, or a new file | updated | the person running fix-headers | unchanged |
On fix-headers releases before 2.2.0 the same setting keeps the existing @Last modified by on every run, real edits included, so the upgrade matters.
🔧 Dependencies
@cldmv/fix-headers^2.1.4→^2.2.0(#20), dev-only. The repository's own header pass ran under 2.2.0 and changed no files.vitestand@vitest/coverage-v8^5.0.2→^5.0.3, andglobals^17.12.0→^17.13.0(#21), dev-only. The coverage and globals bumps first merged as #18 and #19, two minutes after the v1.2.3 release, and were lost whennextwas reset after that release (CLDMV/.github#360). #21 re-applies them, together with the vitest bump from #17.
📚 Documentation
- NEW: docs/changelog/v1/v1.2.4.md — this changelog.
- README: the
fix-headers.jsontable and notes explain both author settings, and the requirements now name fix-headers 2.2.0 as the version the author rules need. - v1.2.3 changelog corrected: that release also shipped
forceAuthorUpdate: false, which its notes left out.
Upgrade notes
- Upgrade
@cldmv/fix-headersto 2.2.0 or later in every repository that extends this config. On older fix-headers,@Last modified bywould no longer update even when a file is edited. - The first fix-headers run after upgrading leaves existing
@Last modified byvalues alone and only changes them on files whose content was edited since the last commit. No repository-wide restamp of authors.
| Metric | Coverage |
|---|---|
| Statements | 100.0% |
| Branches | 100.0% |
| Functions | 100.0% |
| Lines | 100.0% |
Avg: 100.0% · 117287f · Node lts/*