diff --git a/frontend/src/lib/components/PersonMentionEditor.svelte b/frontend/src/lib/components/PersonMentionEditor.svelte index 81a9f8fd..3a9188c1 100644 --- a/frontend/src/lib/components/PersonMentionEditor.svelte +++ b/frontend/src/lib/components/PersonMentionEditor.svelte @@ -123,6 +123,20 @@ onMount(() => { }, suggestion: { char: '@', + // ───────────────────────────────────────────────────────────── + // EXCEPTION to frontend/CLAUDE.md "no client-side API fetch": + // Tiptap's suggestion plugin lives entirely on the client and + // fires on every keystroke after `@`. Routing each query through + // a SvelteKit form action would round-trip through SSR for a + // dropdown that needs to feel instantaneous, and a +server.ts + // endpoint would only proxy the same call. Auth flows through + // the Vite proxy in dev and Caddy in prod (cookie-based), so the + // network surface is identical to a server-driven call. + // Markus #5616: an ADR will formalise this. Open follow-up: + // "ADR: client-side fetch exception for editor suggestion plugins." + // Nora #5618 #3 — separate issue tracks the GET /api/persons + // response-shape audit (PersonSummaryDTO leaks `notes`). + // ───────────────────────────────────────────────────────────── items: async ({ query }: { query: string }) => { if (!query) return []; try {