Two bugs that combined to make Claude's peer-send look successful even when the recipient didn't exist: 1. resolveClient fell through to 'let the broker try' when a single mesh was joined and the name didn't match any peer. The broker queued the message against the literal unknown string, matched no peer in fan-out, but returned a messageId — so the CLI reported '✓ lezg → msgId' for a peer that was never there. Now: refuse to send, list the known peer names. 2. list_peers showed the same pubkey multiple times with different display_names (one per live session) without hinting that they were the same member — so Claude treated them as distinct people. Now: annotate with '[shares key with N other session(s)]' so the caller understands one pubkey = one identity. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB