diff --git a/backend/server.js b/backend/server.js index 9886926..5ffbbfb 100644 --- a/backend/server.js +++ b/backend/server.js @@ -4329,8 +4329,16 @@ function sanitizeAIComment(text) { return ''; } + let cleaned = text + .replace(/[\u200b-\u200f\u202a-\u202e\ufeff]/g, '') // strip zero-width/control spacing + .replace(/\u00a0/g, ' '); // normalize NBSP + + // Strip leading label noise some models prepend (e.g. "**Kommentar**, **Inhalt**:") + const markerPattern = /^(?:\s*(?:\*\*|__)?\s*(kommentar|inhalt|text|content)\s*(?:\*\*|__)?\s*[,;:.\-–—`'"]*\s*)+/i; + cleaned = cleaned.replace(markerPattern, ''); + // Clean up AI output: drop hidden tags, replace dashes, normalize spacing. - return text + return cleaned .replace(/[\s\S]*?<\/think>/gi, '') .replace(/[-–—]+/g, (match, offset, full) => { const prev = full[offset - 1]; @@ -4339,6 +4347,7 @@ function sanitizeAIComment(text) { const nextIsWord = next && /[A-Za-z0-9ÄÖÜäöüß]/.test(next); return prevIsWord && nextIsWord ? match : ', '; }) + .replace(/^[\s,;:.\-–—!?\u00a0"'`]+/, '') .replace(/\s{2,}/g, ' ') .trim(); }