From e075c24af05e7e3d17277d5fbce32995026f38b6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 15 Aug 2026 13:15:45 -0700 Subject: Welcome DMs stop echoing: sent-copies thread under their recipient whichever identity authored them, the registrar keeps no sender copy at all, and the old self-thread residue sweeps itself Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv --- names/server.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'names/server.js') diff --git a/names/server.js b/names/server.js index 1b1f4bc..a969bde 100644 --- a/names/server.js +++ b/names/server.js @@ -162,11 +162,12 @@ async function sendWelcome(pubkey) { state.welcomed[pubkey] = Date.now(); persist(); try { - // wraps for [sender-copy, recipient], each to its owner's inbox - const [toSelf, toPeer] = wrapManyEvents(WELCOME.sk, [{ publicKey: pubkey }], WELCOME.message); + // wrapManyEvents returns [sender-copy, recipient] — publish ONLY the + // recipient's wrap. A sender copy per registrant flooded Adam's own + // clients with an endless stream of his own welcome message. + const [, toPeer] = wrapManyEvents(WELCOME.sk, [{ publicKey: pubkey }], WELCOME.message); const inbox = await inboxRelaysOf(pubkey); await Promise.allSettled(pool.publish([...new Set([...inbox, ...LNURL_RELAYS])], toPeer)); - await Promise.allSettled(pool.publish(LNURL_RELAYS, toSelf)); log(`welcome DM sent to ${pubkey.slice(0, 12)}`); } catch (e) { log('welcome DM failed: ' + e.message); -- cgit v1.2.3