Development record
frontmatter.Fields trims a leading UTF-8 BOM (iss-2608220134344680) but the sibling parsers that promise byte-exact parity with it do not: intent's setFrontmatterFields (internal/core/intent/intent.go:129, whose comment claims it matches frontmatter.Fields's delimiter tolerance exactly) refuses a BOM-led record the reader accepts, so intent mutations on such a record fail-closed with 'no leading frontmatter block'; changelog's bodyStart (internal/core/changelog/source.go:60, 'so the two never disagree') returns 0 and leaks the whole frontmatter block into the derived changelog body; lint's recordTitle (internal/core/lint/schema.go:554) hand-rolls the comment skip with neither TrimBOM nor the multi-line-comment state. Sweep the siblings onto the shared tolerance or narrow the parity comments to the truth.
frontmatter.Fields trims a leading UTF-8 BOM (iss-2608220134344680) but the sibling parsers that promise byte-exact parity with it do not: intent's setFrontmatterFields (internal/core/intent/intent.go:129, whose comment claims it matches frontmatter.Fields's delimiter tolerance exactly) refuses a BOM-led record the reader accepts, so intent mutations on such a record fail-closed with 'no leading frontmatter block'; changelog's bodyStart (internal/core/changelog/source.go:60, 'so the two never disagree') returns 0 and leaks the whole frontmatter block into the derived changelog body; lint's recordTitle (internal/core/lint/schema.go:554) hand-rolls the comment skip with neither TrimBOM nor the multi-line-comment state. Sweep the siblings onto the shared tolerance or narrow the parity comments to the truth.
Grounds
- pursued: we expect one exported walk plus line-0 BOM trims to make every frontmatter reader agree with frontmatter.Fields on a BOM-led record; it is shown wrong if any reader of a record's bytes still refuses, mis-titles or leaks the block of a BOM-led record Fields reads
Frontmatter
| id | iss-2608221126066379 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2608221126066379-frontmatter-bom-tolerance-sibling.md
open on GitHub ↗ · commit history ↗
mentions2
- dcn-26082200000000062026-08-22 — Bug-hunt round 7 merge gate (PR #415, resumed after the round's
- iss-2608220134344680record-lint frontmatterOpen and frontmatter.Fields anchor on line 0 and TrimSpace does not strip a UTF-8 BOM, so a BOM-led or multi-line-comment-led record yields an empty field map and slips the no_git_metadata blocker and the record_schema id/supersession gates entirely