feat(confidence-engine): support not-relevant findings
This commit is contained in:
@@ -169,6 +169,7 @@ function FocusedQuestionBody({
|
||||
setFollowUpQuestion,
|
||||
focusedContributions,
|
||||
currentFindings,
|
||||
onUpdateFindingDisposition,
|
||||
}) {
|
||||
const hasContent = focused?.question?.trim() || formulationStep === "active" || processingStep === "active" || focused?.error;
|
||||
const hasResult = Boolean(focused?.result);
|
||||
@@ -202,7 +203,22 @@ function FocusedQuestionBody({
|
||||
{/* Prior accumulated learning (prior turns, current turn excluded — shown above) */}
|
||||
<PriorContributionsSummary nodeId={nodeId} contributions={focusedContributions || []} />
|
||||
|
||||
<div><h3 className="mb-1 text-[11px] font-semibold tracking-widest uppercase text-gray-500">What this tells us</h3><ul className="list-disc pl-5 space-y-1">{(currentFindings?.length ? currentFindings : (focused.result.observations || [])).map((item, i) => (<li key={i} className="text-sm leading-relaxed text-gray-700">{currentFindings?.length ? item.proposition : item}</li>))}</ul></div>
|
||||
<div><h3 className="mb-1 text-[11px] font-semibold tracking-widest uppercase text-gray-500">What this tells us</h3><ul className="list-disc pl-5 space-y-2">{(currentFindings?.length ? currentFindings : (focused.result.observations || [])).map((item, i) => {
|
||||
const isFinding = typeof item === "object" && item !== null && "id" in item;
|
||||
const disposition = isFinding ? item.userDisposition : null;
|
||||
return (
|
||||
<li key={i} className="text-sm leading-relaxed text-gray-700 flex items-start gap-2">
|
||||
<span className="flex-1">{currentFindings?.length ? item.proposition : item}</span>
|
||||
{isFinding && onUpdateFindingDisposition && (
|
||||
disposition === "not_relevant" ? (
|
||||
<button onClick={(e) => { e.stopPropagation(); onUpdateFindingDisposition(item.id, null); }} className="mt-[2px] text-[10px] font-medium text-teal-600 underline shrink-0 hover:text-teal-700" title="Restore to understanding">restore</button>
|
||||
) : (
|
||||
<button onClick={(e) => { e.stopPropagation(); onUpdateFindingDisposition(item.id, "not_relevant"); }} className="mt-[2px] text-[10px] font-medium text-gray-400 underline shrink-0 hover:text-red-500" title="Remove from understanding">not relevant</button>
|
||||
)
|
||||
)}
|
||||
</li>
|
||||
);
|
||||
})}</ul></div>
|
||||
<div><h3 className="mb-1 text-[11px] font-semibold tracking-widest uppercase text-gray-500">Still unclear</h3><ul className="list-disc pl-5 space-y-1">{(focused.result.uncertainties || []).map((u, i) => (<li key={i} className="text-sm leading-relaxed text-gray-700">{u}</li>))}</ul></div>
|
||||
<div><h3 className="mb-1 text-[11px] font-semibold tracking-widest uppercase text-gray-500">Questions this raises</h3>
|
||||
{(focused.result.possibleFollowUpQuestions || []).length > 0 ? (
|
||||
@@ -1024,6 +1040,7 @@ function FocusedInvestigationWorkspace({
|
||||
hasCompletedInvestigation,
|
||||
focusedContributions,
|
||||
currentFindings,
|
||||
onUpdateFindingDisposition,
|
||||
}) {
|
||||
const hasResult = Boolean(focused?.result);
|
||||
|
||||
@@ -1052,6 +1069,7 @@ function FocusedInvestigationWorkspace({
|
||||
setFollowUpQuestion={setFollowUpQuestion}
|
||||
focusedContributions={hasResult ? [] : (focusedContributions || [])}
|
||||
currentFindings={currentFindings || []}
|
||||
onUpdateFindingDisposition={onUpdateFindingDisposition}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1072,6 +1090,7 @@ function OpenQuestionsPanel({
|
||||
startFocused, handleDeconstructSubmit, retryFormulation, setSelectedPresentationItemId,
|
||||
setFocusedPresentationItemId, setFocusedAnswer, focusedAnswer, setDoneForNowIds,
|
||||
setFollowUpQuestion, focusedContributions, focusedInvestigations, setIsFocusedWorkspaceOpen,
|
||||
onUpdateFindingDisposition,
|
||||
}) {
|
||||
const openNodes = (graph?.nodes || []).filter(
|
||||
(n) => n.kind === "unknown" && n.status !== "resolved" && !doneForNowIds.includes(n.id),
|
||||
@@ -1149,6 +1168,7 @@ function OpenQuestionsPanel({
|
||||
setDoneForNowIds={setDoneForNowIds}
|
||||
setFollowUpQuestion={setFollowUpQuestion}
|
||||
focusedContributions={focusedContributions}
|
||||
onUpdateFindingDisposition={onUpdateFindingDisposition}
|
||||
/>
|
||||
|
||||
{/* Thread contributions for this node */}
|
||||
@@ -1191,6 +1211,7 @@ export default function ReasoningWorkspace({
|
||||
focusedContributions,
|
||||
onFocusedContribution,
|
||||
findings,
|
||||
onUpdateFindingDisposition,
|
||||
}) {
|
||||
const [investigationHistory, setInvestigationHistory] = useState([]);
|
||||
const turnCounter = useRef(0);
|
||||
@@ -1794,6 +1815,7 @@ export default function ReasoningWorkspace({
|
||||
setFollowUpQuestion={setFollowUpQuestion}
|
||||
focusedContributions={focusedContributions}
|
||||
currentFindings={currentFindings || []}
|
||||
onUpdateFindingDisposition={onUpdateFindingDisposition}
|
||||
/>
|
||||
);
|
||||
})()}
|
||||
@@ -2043,6 +2065,7 @@ export default function ReasoningWorkspace({
|
||||
}}
|
||||
focusedContributions={focusedContributions}
|
||||
currentFindings={currentFindings || []}
|
||||
onUpdateFindingDisposition={onUpdateFindingDisposition}
|
||||
/>
|
||||
{/* Workspace navigation — hidden during formulation/loading states */}
|
||||
{formulationStep !== "active" && (
|
||||
|
||||
Reference in New Issue
Block a user