test: add T6b strict kind:10050 non-leak scenario; refresh sheet header

Covers the review fix — recipient with NIP-65 read relays but no
kind:10050 must be treated as unreachable, not routed to the read relays.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-07-09 07:56:42 +03:00
co-authored by Claude Opus 4.8
parent 9e707da2b1
commit abe4668fd8
@@ -1,6 +1,6 @@
# Desktop DM Reliability — Testing Playbook
**Branch:** `feat/desktop-dm-reliability` at `fcfc43eb44` (21 commits)
**Branch:** `feat/desktop-dm-reliability` rebased onto `upstream/main` (24 commits; latest `9e707da2b1`)
**Tester:** _______________________
**Date:** _______________________
@@ -330,6 +330,48 @@ Record:
---
## T6b — Strict kind:10050 (NIP-65 read-relay non-leak) — 4 min
**Goal:** verify the review fix — a recipient that DOES publish NIP-65 read
relays (kind:10002) but has NO `kind:10050` is still treated as unreachable.
The lenient fast-path bug would have published the wrap to those NIP-65 read
relays; the fix must NOT.
### T6b.a — Create a recipient with kind:10002 but no kind:10050
**1.** Generate a fresh key and publish ONLY a NIP-65 relay list (no 10050):
```bash
nak key generate # copy nsec + npub
# publish a kind:10002 with a read relay, and NO kind:10050:
echo '{"kind":10002,"tags":[["r","wss://relay.damus.io","read"]],"content":""}' \
| nak event --sec <nsec> wss://relay.damus.io wss://nos.lol
```
**2.** As User A, open a new chat to that npub so A's LocalCache ingests the
recipient's kind:10002 (send/hover the profile so the relay list loads).
### T6b.b — Verify send is blocked, not routed to the read relay
**3.** Type a message. Observe the row under the input.
- **Expected:** same "no DM relay list — messages cannot be delivered"
warning as T6; send disabled.
- **Wrong (pre-fix bug):** send is ENABLED and the wrap goes to
`wss://relay.damus.io` (the recipient's NIP-65 *read* relay).
**4.** (Optional, definitive) tcpdump as in T6.c while attempting send.
- **Expected:** zero `kind":1059` frames to the recipient's kind:10002 relays.
Record:
- [ ] **T6b.1** Send blocked despite recipient having kind:10002: **YES / NO**
- [ ] **T6b.2** No wrap sent to NIP-65 read relay (if tcpdump run): **YES / NO / SKIPPED**
- [ ] **T6b PASS** — T6b.1 YES
---
## T7 — Indexer fan-out + F-01 unauth check — 6 min
**Goal:** verify the resolver probes indexer relays with an UNAUTHENTICATED client (no `kind:22242` AUTH events leaked to indexers).