From ced2b958ed12c0631200a44545b76b9ea56d704e Mon Sep 17 00:00:00 2001 From: Christopher Date: Wed, 28 Jan 2026 07:53:23 -0800 Subject: [PATCH] Upsert sender into HandleRegistry on message receive Adds logic to upsert the sender's handle, DID, and node domain into the HandleRegistry when a chat message is received. This ensures the sender's information is available for future replies or key retrieval. --- src/app/api/chat/receive/route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/app/api/chat/receive/route.ts b/src/app/api/chat/receive/route.ts index 2a18d68..be83141 100644 --- a/src/app/api/chat/receive/route.ts +++ b/src/app/api/chat/receive/route.ts @@ -1,7 +1,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { db } from '@/db'; -import { chatConversations, chatMessages, users } from '@/db/schema'; +import { chatConversations, chatMessages, users, handleRegistry } from '@/db/schema'; import { eq, and } from 'drizzle-orm'; /** @@ -93,6 +93,20 @@ export async function POST(request: NextRequest) { }) .where(eq(chatConversations.id, conversation.id)); + // 5. Upsert sender into HandleRegistry ensures we can reply/fetch keys later + await db.insert(handleRegistry).values({ + handle: finalSenderHandle, // user@domain + did: senderDid, + nodeDomain: senderNodeDomain + }).onConflictDoUpdate({ + target: handleRegistry.handle, + set: { + did: senderDid, + nodeDomain: senderNodeDomain, + lastSeenAt: new Date() + } + }); + return NextResponse.json({ success: true }); } catch (error: any) {