Development record
record_schema skips a symlinked declared bucket silently: scanRecordStores (internal/core/lint/schema.go) tests e.IsDir() on the store root's entries, which is false for a symlink DirEntry, so a declared bucket such as open/ or resolved/ that is a link falls to the .md suffix test and is dropped with no finding. A forged record behind the link is not read (nothing out of tree is trusted), but the gate reports nothing about a whole lifecycle state it never checked, the same silent-skip class the seam finding closed. The reading walk and capture's allocator already refuse a symlinked open/ loudly.
record_schema skips a symlinked declared bucket silently: scanRecordStores (internal/core/lint/schema.go) tests e.IsDir() on the store root's entries, which is false for a symlink DirEntry, so a declared bucket such as open/ or resolved/ that is a link falls to the .md suffix test and is dropped with no finding. A forged record behind the link is not read (nothing out of tree is trusted), but the gate reports nothing about a whole lifecycle state it never checked, the same silent-skip class the seam finding closed. The reading walk and capture's allocator already refuse a symlinked open/ loudly.
Grounds
- pursued: a linked open/ or resolved/ draws exactly one finding on the bucket while the other bucket is still checked (TestRecordSchemaNamesASymlinkedBucket, red at base); a linked bucket drawing zero findings, or any record behind it surfacing, would show it wrong
Frontmatter
| id | iss-2609261133371466 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609261133371466-record-schema-skips-a-symlinked-declared.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2609261152282753record_schema skips two symlink shapes in a record store with nothing said: (a) in a bucketed store, a symlinked entry at the store root with an undeclared name and no .md suffix (e.g. foo -> dir) is neither reported as an undeclared bucket nor read, because a symlink DirEntry is not a directory and falls to the markdown suffix test; (b) inside a declared bucket, or in a flat store, a symlinked subdirectory is skipped the same way, while a real subdirectory draws the undeclared-subdirectory finding. Either one hides a lifecycle state from every check. The sibling of iss-2609261133371466, which named only a DECLARED bucket that is a link.