Index: src/services/ActivityPubService.js
===================================================================
--- src/services/ActivityPubService.js	(revision 3a2c9d3bd2a16914b0e05ace0ec9a4b522932dd6)
+++ src/services/ActivityPubService.js	(revision 3d7312ab39fe3619ae0a9b953d94789dded655a0)
@@ -477,8 +477,30 @@
 }
 
+// Resolve a remote post URL (any fediverse/Klonkt post) into a reply target.
+// Returns a parent-shaped object usable by deliverReply(), or null.
+export async function resolveRemoteNote(url) {
+  if (!/^https?:\/\//i.test(String(url || ''))) return null;
+  const note = await fetchActor(url).catch(() => null); // AP GET (content-negotiates)
+  if (!note || !note.id) return null;
+  const att = note.attributedTo;
+  const actorUri = typeof att === 'string' ? att : (att && att.id);
+  if (!actorUri) return null;
+  const actor = await fetchActor(actorUri).catch(() => null);
+  const ai = actorInfo(actor, actorUri);
+  return {
+    object_uri: note.id,
+    actor_uri: actorUri,
+    actor_url: ai.url,
+    actor_handle: ai.handle,
+    actor_name: ai.name,
+    actor_icon: ai.icon,
+    preview: HtmlSanitizerService.toPlainText(note.content || '').slice(0, 240),
+  };
+}
+
 export default {
   getOrCreateKeys, apWants, sendAP, actorId, noteId,
   buildActor, buildNote, buildCreate, buildOutbox, buildFollowers,
   followerCount, deliver, fetchActor, verifyRequest, handleInbox, deliverCreate, deliverDelete,
-  getInteractions, getInteractionById, buildReplyNote, getOutboxNote, deliverReply,
+  getInteractions, getInteractionById, buildReplyNote, getOutboxNote, deliverReply, resolveRemoteNote,
 };
Index: src/services/i18n.js
===================================================================
--- src/services/i18n.js	(revision 3a2c9d3bd2a16914b0e05ace0ec9a4b522932dd6)
+++ src/services/i18n.js	(revision 3d7312ab39fe3619ae0a9b953d94789dded655a0)
@@ -109,4 +109,5 @@
     'fedi.heading': 'Vanuit de fediverse', 'fedi.likes': 'sterren', 'fedi.boosts': 'boosts', 'fedi.replies': 'Reacties uit de fediverse',
     'fedi.reply': 'Reageer', 'fedi.reply_ph': 'Je antwoord aan de fediverse…', 'fedi.send': 'Versturen', 'fedi.you': 'Jij',
+    'fedi.remote_title': 'Reageer via de fediverse', 'fedi.remote_reply': 'Reageer via de fediverse', 'fedi.remote_prompt': 'Je fediverse-adres (bv. @jij@mastodon.social):', 'fedi.remote_notfound': 'Kon die post niet ophalen. Plak de volledige post-URL:', 'fedi.remote_load': 'Ophalen', 'fedi.remote_replying_to': 'Je reageert op', 'fedi.remote_as': 'Wordt verzonden als {site}.',
     'comments.to_start': 'om de conversatie te starten.',
     'comments.reply': 'Reageer', 'comments.delete': 'Verwijder', 'comments.cancel': 'Annuleren',
@@ -1103,4 +1104,5 @@
     'fedi.heading': 'From the fediverse', 'fedi.likes': 'favourites', 'fedi.boosts': 'boosts', 'fedi.replies': 'Replies from the fediverse',
     'fedi.reply': 'Reply', 'fedi.reply_ph': 'Your reply to the fediverse…', 'fedi.send': 'Send', 'fedi.you': 'You',
+    'fedi.remote_title': 'Reply via the fediverse', 'fedi.remote_reply': 'Reply via the fediverse', 'fedi.remote_prompt': 'Your fediverse address (e.g. @you@mastodon.social):', 'fedi.remote_notfound': 'Could not fetch that post. Paste the full post URL:', 'fedi.remote_load': 'Fetch', 'fedi.remote_replying_to': 'Replying to', 'fedi.remote_as': 'Sent as {site}.',
     'comments.to_start': 'to start the conversation.',
     'comments.reply': 'Reply', 'comments.delete': 'Delete', 'comments.cancel': 'Cancel',
@@ -2095,4 +2097,5 @@
     'fedi.heading': 'Aus dem Fediverse', 'fedi.likes': 'Favoriten', 'fedi.boosts': 'Boosts', 'fedi.replies': 'Antworten aus dem Fediverse',
     'fedi.reply': 'Antworten', 'fedi.reply_ph': 'Deine Antwort an das Fediverse…', 'fedi.send': 'Senden', 'fedi.you': 'Du',
+    'fedi.remote_title': 'Über das Fediverse antworten', 'fedi.remote_reply': 'Über das Fediverse antworten', 'fedi.remote_prompt': 'Deine Fediverse-Adresse (z.B. @du@mastodon.social):', 'fedi.remote_notfound': 'Beitrag konnte nicht geladen werden. Füge die vollständige Beitrags-URL ein:', 'fedi.remote_load': 'Laden', 'fedi.remote_replying_to': 'Antwort an', 'fedi.remote_as': 'Wird als {site} gesendet.',
     'comments.to_start': 'um das Gespräch zu starten.',
     'comments.reply': 'Antworten', 'comments.delete': 'Löschen', 'comments.cancel': 'Abbrechen',
