The catch-up checkin aborted on CRLF in files outside crlf-glob. Five real
offenders, in two classes needing opposite treatment:
- src/buildsuites/suite_tcl86/patches/* (three files) is vendored sdx source by
Matt Newman and Jean-Claude Wippler plus the patch derived from it. Upstream
CRLF, and the patch must stay byte-exact to apply. Added to crlf-glob, which
is what .fossil-settings/AGENTS.md prescribes for a payload tree that trips
the prompt - explicitly in preference to reaching for --no-warnings.
- src/modules/oolib-buildversion.txt and src/buildsuites/suite_tcl86/src/main.zig
are authored punkshell files (4 lines each, fully CRLF) that the root AGENTS.md
LF preference governs. Converted rather than globbed; globbing src/modules
would suppress the warning across authored territory.
punkzip's hamlet.txt was a false positive in the first scan - already covered by
the crlf-glob entry for its fixtures directory, where it is deliberately CRLF
byte-exact test data.
Converted in git first so the fossil checkin records identical content; a
content fix applied only fossil-side would desynchronise the two mirrors in the
middle of a catch-up.
Note oolib-buildversion.txt is build-generated, so a future regeneration may
reintroduce CRLF there.
Claude-Session: https://claude.ai/code/session_01YNjnq6oDzecknLg7AuWZgU
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
Field failure (2026-07-27, second dev machine): 'make.tcl bake
punk9_beta' died in the vfslibs phase with
eventcollection ... key '$eventid' already exists in collection
because that machine's src/vfs/.punkcheck predates punkcheck 0.3.2.
The 0.3.2 note fixed the WRITER (a braced template wrote the literal
strings '$eventid' etc into event headers) but files written before it
keep the damage, and the modern installtrack constructor - which
reloads persisted events into a collection keyed by -id - collided on
the duplicate literals and aborted the whole bake.
- punkcheck 0.6.1: the constructor reload now self-heals instead of
aborting: an EVENT record with a missing or duplicate -id is
reconstructed under a synthesized unique id ('damaged-id-...') with
a stderr warning naming the file and the offending id. Synthesized
ids match no INSTALL record's -eventid reference, so healed events
age out through normal -keep_events pruning. Reload also tolerates
missing -source/-targets keys.
- oolib 0.1.4: the collection duplicate-key error no longer misnames
the object as 'col_processors' (stray copy-paste in the generic
class).
- regression test installtrack_damaged_event_history_selfheal seeds a
real two-event file, rewrites both -id values to the braced literal
{$eventid} (as the damaged files carry it - the record loader
evaluates records, so only a braced literal survives as the string),
and asserts the reload succeeds with both events kept under distinct
keys (one healed). Suite: 30/30.
- before/after proof against the released artifacts: punkcheck 0.6.0
(exact-pinned) reproduces the field abort on the crafted file;
0.6.1 heals it. Bootsupport promoted to punkcheck-0.6.1 + oolib-0.1.4
(superseded copies pruned), so make.tcl bakes get the fix.
Remedy already applied on the affected machine (file deletion); with
this fix, remaining old .punkcheck files anywhere self-heal with a
warning instead of failing builds.
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com