Development record
The same review that made the audit rollup reader fence-aware left the changelog credit matcher reading raw lines: releaseOf splits the changelog on newlines, tracks the dated headings, and asks whether each line credits the handle, with no fence state at all. A handle mentioned inside a fenced block, a shell example, a sample record or a quoted diff, therefore counts as a credit, and because the walk takes the newest dated section first, a fenced mention in a newer section stamps the featured record with that section version instead of the one that actually shipped it. Verified by reading the loop: the only per-line branch is the dated-heading test, and the same package already carries the fence-aware section walker the rollup reader was moved onto in the same change. It matters because the version stamp is the homepage claim about when a promise was delivered, and the failure is silent, rendering a plausible wrong version rather than nothing. Fix direction: give the changelog walk the same fence tracking the rollup reader has, or read the changelog through the shared section walker rather than by hand. Detector: a handle appearing only inside a fenced block in a newer changelog section must not stamp that section version, while a prose credit in an older section still does. Residual of iss-2609081941074556.
The same review that made the audit rollup reader fence-aware left the changelog credit matcher reading raw lines: releaseOf splits the changelog on newlines, tracks the dated headings, and asks whether each line credits the handle, with no fence state at all. A handle mentioned inside a fenced block, a shell example, a sample record or a quoted diff, therefore counts as a credit, and because the walk takes the newest dated section first, a fenced mention in a newer section stamps the featured record with that section version instead of the one that actually shipped it. Verified by reading the loop: the only per-line branch is the dated-heading test, and the same package already carries the fence-aware section walker the rollup reader was moved onto in the same change. It matters because the version stamp is the homepage claim about when a promise was delivered, and the failure is silent, rendering a plausible wrong version rather than nothing. Fix direction: give the changelog walk the same fence tracking the rollup reader has, or read the changelog through the shared section walker rather than by hand. Detector: a handle appearing only inside a fenced block in a newer changelog section must not stamp that section version, while a prose credit in an older section still does. Residual of iss-2609081941074556.
Grounds
- pursued: the changelog is markdown read the same way every other record file in this package is, so tracking fences in the walk removes the fenced-mention credit without a second parser; it would be shown wrong by a changelog that deliberately credits a record only from inside a fence, which would surface as a missing version stamp rather than as a wrong one
Frontmatter
| id | iss-2609090951287232 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | nitpick |
.abcd/work/issues/resolved/iss-2609090951287232-releaseof-credit-match-is-not-fence.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2609081941074556releaseOf stamps the homepage feature block by strings.Contains of the record id against each CHANGELOG line, with no word boundary, walking newest dated section first. A short id therefore inherits a longer one: on ec7f40d6 releaseOf(itd-9) returns 0.4.1 off the itd-93 credit and releaseOf(itd-1) returns 0.7.1 off itd-130, and a future superstring landing in a newer section restamps the featured id. site check does not validate the stamp. The same package already carries bodyHandleRe. Fix: match the record id at a word boundary (reuse bodyHandleRe, or split the line into tokens); newest-section-first can stay. Detector: a changelog whose newer dated section mentions itd-1990 must not stamp featured itd-199, while a line naming itd-199 as its own id still matches. Independent of the Audit Notes rollup scanner. Reported as GitHub issue 624 against ec7f40d6. <!-- record-lint: illustrative -->