···275275 const talkRkey = c.req.query("talkRkey");
276276 if (!talkRkey) return c.json({ mentions: [], total: 0 });
277277278278- const talk = db.prepare("SELECT uri FROM talks WHERE rkey = ?").get(talkRkey) as any;
279279- if (!talk) return c.json({ mentions: [], total: 0 });
278278+ // Get all talk URIs for this rkey (may be multiple DIDs)
279279+ const talkRows = db.prepare("SELECT uri FROM talks WHERE rkey = ?").all(talkRkey) as any[];
280280+ if (!talkRows.length) return c.json({ mentions: [], total: 0 });
281281+ const talkUris = talkRows.map((r: any) => r.uri);
282282+ const talkPlaceholders = talkUris.map(() => "?").join(",");
280283281284 const topLevel = db.prepare(
282285 `SELECT m.*, p.handle as author_handle, p.display_name as author_display_name, p.avatar_url as author_avatar_url
283286 FROM mentions m
284287 LEFT JOIN profiles p ON m.author_did = p.did
285285- WHERE m.talk_uri = ? AND m.parent_uri IS NULL
288288+ WHERE m.talk_uri IN (${talkPlaceholders}) AND m.parent_uri IS NULL
286289 ORDER BY
287290 CASE m.mention_type WHEN 'during_talk' THEN 0 ELSE 1 END,
288291 m.talk_offset_ms ASC,
289292 m.created_at ASC`
290290- ).all(talk.uri);
293293+ ).all(...talkUris);
291294292295 const replyStmt = db.prepare(
293296 `SELECT m.*, p.handle as author_handle, p.display_name as author_display_name, p.avatar_url as author_avatar_url