diff --git a/components/reasoning-workspace.jsx b/components/reasoning-workspace.jsx index e240e9c..15d0b20 100644 --- a/components/reasoning-workspace.jsx +++ b/components/reasoning-workspace.jsx @@ -170,10 +170,35 @@ function FocusedQuestionBody({ focusedContributions, currentFindings, onUpdateFindingDisposition, + onUpdateFindingProposition, }) { const hasContent = focused?.question?.trim() || formulationStep === "active" || processingStep === "active" || focused?.error; const hasResult = Boolean(focused?.result); + // ── Local correction state (FQB-owned, not propagated upward) ─ + const [editingFindingId, setEditingFindingId] = useState(null); + const [draft, setDraft] = useState(""); + + function startEditing(id, proposition) { + setEditingFindingId(id); + setDraft(proposition ?? ""); + } + + function cancelEditing() { + setEditingFindingId(null); + setDraft(""); + } + + function saveEditing() { + const trimmed = (draft ?? "").trim(); + if (!trimmed || !editingFindingId) { + cancelEditing(); + return; + } + onUpdateFindingProposition?.(editingFindingId, trimmed); + cancelEditing(); + } + return ( <> {isFocused && hasContent && ( @@ -206,14 +231,40 @@ function FocusedQuestionBody({

What this tells us