Add safe model diagnostics, explicit self-review stages and recheck action

This commit is contained in:
Mikei386 committed 2026-09-24 21:59:42 +02:00
1 parent d704b01897
commit 4f45015b1c
7 files changed
+174 -14

No files matched your search

+17 -4
View File
@@ -89,12 +89,25 @@ bind('accept-organize','click',()=>{if(!organization)return;$('p-category').valu
function renderReview(report) {
const box=$('ai-review');box.replaceChildren();
const titles={passed:'Prüfung: Keine Abweichungen erkannt',corrected:'Prüfung: Abweichungen korrigiert; erneut geprüft',issues:'Prüfung: Abweichungen verbleiben',unchecked:'Nicht geprüft – keine abgeschlossene Verifikation'};
const titles={passed:'KI-Selbstprüfung: Keine Abweichungen erkannt',corrected:'Korrigierter Entwurf: KI-Selbstprüfung abgeschlossen',issues:'KI-Selbstprüfung: Abweichungen im aktuellen Vorschlag',unchecked:report?.draft_kind==='corrected'?'Korrigierter Entwurf – Abschlussprüfung fehlgeschlagen':'Aktueller Entwurf – KI-Selbstprüfung nicht abgeschlossen'};
const heading=document.createElement('strong');heading.textContent=titles[report?.status]||titles.unchecked;box.append(heading);
if(report?.warning){const p=document.createElement('p');p.textContent=report.warning;box.append(p);}
function issues(label, entries){if(!entries?.length)return;const details=document.createElement('details');details.open=true;const summary=document.createElement('summary');summary.textContent=label+' ('+entries.length+')';details.append(summary);const ul=document.createElement('ul');for(const issue of entries){const li=document.createElement('li');li.textContent=issue.description;for(const [key,title]of [['original_quote','Original'],['draft_quote','Vorschlag']]){if(issue[key]){const p=document.createElement('p');p.textContent=title+': „'+issue[key]+'“';li.append(p);}}ul.append(li);}details.append(ul);box.append(details);}
issues('Befunde der ersten Prüfung',report?.initial_issues);
if(report?.status==='issues')issues('Weiterhin erkannte Abweichungen',report.issues);
const hint=document.createElement('p');hint.textContent='Modellprüfung, keine Garantie. Bitte den Vorschlag vor dem Speichern selbst prüfen.';box.append(hint);
if(report?.draft_kind==='corrected')issues('Historische Befunde zum ERSTEN Entwurf (vor der Korrektur)',report?.initial_issues);
else if(report?.status!=='issues')issues('Befunde zum angezeigten Entwurf',report?.initial_issues);
issues('Code-Prüfung: Unterschiede im aktuellen Vorschlag – bitte beurteilen',report?.literal_issues);
if(report?.status==='issues')issues('Befunde zum AKTUELLEN Vorschlag',report.issues);
const hint=document.createElement('p');hint.textContent='Selbstprüfung durch dasselbe Modell, keine unabhängige Verifikation. Die Code-Prüfung sucht nur erkennbare Platzhalter, Ports und Pfade; gewünschte Änderungen können ebenfalls markiert werden. Bitte selbst vergleichen.';box.append(hint);
}
bind('ai-draft','input',()=>renderReview({status:'unchecked',warning:'Vorschlag manuell geändert; diese Fassung wurde nicht geprüft.'}));
bind('recheck-ai','click',()=>busy($('recheck-ai'),async()=>{
const generation=editorGeneration;
const original=$('p-body').value, instruction=$('ai-instruction').value, draft=$('ai-draft').value;
if(!original.trim()||!draft.trim())throw new Error('Original und Vorschlag dürfen nicht leer sein.');
const result=await api('/recheck',{method:'POST',body:JSON.stringify({body:original,instruction,draft})});
if(generation!==editorGeneration||!$('editor').open)return;
if(original!==$('p-body').value||instruction!==$('ai-instruction').value||draft!==$('ai-draft').value){renderReview({status:'unchecked',warning:'Text während der Prüfung geändert. Bitte erneut prüfen.'});return;}
renderReview(result.review);
}));
for(const id of ['p-body','ai-instruction'])bind(id,'input',()=>{if(!$('ai-result').classList.contains('hidden'))renderReview({status:'unchecked',warning:'Vergleichsgrundlage geändert. Bitte erneut prüfen.'});});