docs(PersonMentionEditor): document client-side fetch exception inline
Some checks failed
CI / Unit & Component Tests (pull_request) Failing after 3m20s
CI / OCR Service Tests (pull_request) Successful in 35s
CI / Backend Unit Tests (pull_request) Failing after 3m4s
CI / Unit & Component Tests (push) Failing after 3m44s
CI / OCR Service Tests (push) Successful in 40s
CI / Backend Unit Tests (push) Failing after 3m14s
Some checks failed
CI / Unit & Component Tests (pull_request) Failing after 3m20s
CI / OCR Service Tests (pull_request) Successful in 35s
CI / Backend Unit Tests (pull_request) Failing after 3m4s
CI / Unit & Component Tests (push) Failing after 3m44s
CI / OCR Service Tests (push) Successful in 40s
CI / Backend Unit Tests (push) Failing after 3m14s
Per Markus #5616, the leaf-component fetch in the Tiptap suggestion plugin violates the project-wide rule from frontend/CLAUDE.md ("Data flows from +page.server.ts via props — never client-side API fetch"). Add an inline block-comment explaining why this exception is justified (suggestion runs client-side per keystroke; same auth surface; no server-side reshape benefit) and points future readers at the open ADR follow-up plus Nora's PersonSummaryDTO response-shape audit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit was merged in pull request #373.
This commit is contained in:
@@ -123,6 +123,20 @@ onMount(() => {
|
|||||||
},
|
},
|
||||||
suggestion: {
|
suggestion: {
|
||||||
char: '@',
|
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 }) => {
|
items: async ({ query }: { query: string }) => {
|
||||||
if (!query) return [];
|
if (!query) return [];
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user