Development record
The inbox readers follow a symlinked ancestor the inbox writers refuse: peekInbox (internal/core/report/inbox.go) checks the inbox leaf with fsutil.IsRealDir, which lstats the leaf only, so with ~/.abcd a symlink abcd inbox, abcd inbox show and the session-start count read through the link while abcd report and abcd inbox promote refuse it through fsutil.EnsureRealDirAll. The comment on the refusal claims every verb refuses a symlinked level, which is true only of a symlink at the inbox leaf. Readers and writers should refuse the same paths, as the rules loader refuses ~/.abcd/rules.json behind a symlinked ~/.abcd.
The inbox readers follow a symlinked ancestor the inbox writers refuse: peekInbox (internal/core/report/inbox.go) checks the inbox leaf with fsutil.IsRealDir, which lstats the leaf only, so with ~/.abcd a symlink abcd inbox, abcd inbox show and the session-start count read through the link while abcd report and abcd inbox promote refuse it through fsutil.EnsureRealDirAll. The comment on the refusal claims every verb refuses a symlinked level, which is true only of a symlink at the inbox leaf. Readers and writers should refuse the same paths, as the rules loader refuses ~/.abcd/rules.json behind a symlinked ~/.abcd.
Grounds
- pursued: with ~/.abcd a symlink to a directory holding an inbox, every inbox verb refuses naming ~/.abcd; a reading verb that returns reports through that link, or one that refuses a dotfiles ~/.abcd holding no inbox, would show it wrong
Frontmatter
| id | iss-2609261106287078 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609261106287078-inbox-readers-follow-symlinked-ancestor.md
open on GitHub ↗ · commit history ↗