d460584d81
`profileOf(pk)` and `relaysOf(pk)` are the two hottest read patterns in any Nostr client, both expressed as `Filter(authors=[pk], kinds=[0|10002])`. Before this change every such query walked `idx/kind/<k>/`, sorted the listing, and probed candidates — O(N) in the kind's total event count even though we always wanted exactly one event. The planner now intercepts before the directory walk: when a filter pins us to replaceable / addressable kinds with `authors` (and `d`-tag for addressables), we read the slot file directly. One `Files.exists()` + one `readString()` per (kind, author[, d]) triple, no listing, no sort. Falls through to the generic walk for anything that doesn't fit (non-uniqueness kinds, missing d-tag, search clause, etc.). Two new tests in FsSlotsTest assert the shortcut serves correctly even when `idx/` has been externally wiped — proving the shortcut isn't accidentally relying on the index. 115 fs tests green.