Development record
The read-side MR001 lint reports an ordinary memory store as a blocker when a page name is prose-shaped. residueOfStoreFiles scans the sources registry bytes at the scanner.BlockingResidual bar, and the registry carries every page back-link, so a back-link such as topic_home_migrating-[redacted-hostname].md matches net_device_hostname at warn on the hyphen boundary and memory lint exits 1 with 'stored text carries a net:device_hostname span' on a store the write side produced without complaint. The write side already knows this: redactRegistryLeaves excludes the back-link list from the leaf walk for exactly this slug, and judgeFilename judges page names at the hard_fail bar alone. The read side holds a back-link to the free-text bar, so the two sides disagree on the same bytes. Reproduced at bad1c73e by ingesting a page with domain home and slug [redacted-hostname] and running Lint: one MR001 blocker on .sources_index.json. Remedy: judge back-link names by the page-name rule and keep them out of the registry's free-text scan.
The read-side MR001 lint reports an ordinary memory store as a blocker when a page name is prose-shaped. residueOfStoreFiles scans the sources registry bytes at the scanner.BlockingResidual bar, and the registry carries every page back-link, so a back-link such as topic_home_migrating-[redacted-hostname].md matches net_device_hostname at warn on the hyphen boundary and memory lint exits 1 with 'stored text carries a net:device_hostname span' on a store the write side produced without complaint. The write side already knows this: redactRegistryLeaves excludes the back-link list from the leaf walk for exactly this slug, and judgeFilename judges page names at the hard_fail bar alone. The read side holds a back-link to the free-text bar, so the two sides disagree on the same bytes. Reproduced at bad1c73e by ingesting a page with domain home and slug [redacted-hostname] and running Lint: one MR001 blocker on .sources_index.json. Remedy: judge back-link names by the page-name rule and keep them out of the registry's free-text scan.
Grounds
- pursued: a back-link is an identifier the store resolves, so holding it to the filename bar on both sides makes the read side agree with the write side on the same bytes; an ordinary ingested store drawing MR001, or a secret in the registry's free-text fields going unreported, would show it wrong
Frontmatter
| id | iss-2609230851376499 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609230851376499-the-memory-lint-reports-an-ordinary-page.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2609240646532741The store-before-commit redactor on the capture path rewrites a hyphenated prose slug that ends in a device word as `[redacted-hostname]`: the net_device_hostname rule matches any hyphenated token ending in a word such as laptop, macbook or nas, although the author named a page, not a machine. Observed on 2026-09-23 in iss-2609230851376499: its reproduction step names the memory page slug it ingested, and the stored record reads "slug [redacted-hostname]", so the reproduction cannot be followed from the record's own text. #663 fixed the same false positive on the memory lint's read side by judging page back-links by the page-name rule; the capture path applies the free-text rule to every token and has no such distinction. Wanted: the capture path spares a token the author set in code quotes, or the rule asks for a shape only a host name takes; either change carries a fixture with a slug of that shape.