test(ui): explore provisional branch pause and reopen

This commit is contained in:
2026-08-20 09:00:01 +01:00
parent df0e3b5a9b
commit 86bb3426ef
3 changed files with 122 additions and 21 deletions
+47 -10
View File
@@ -351,9 +351,14 @@ function BranchNotebookContent({
openQuestions,
lateResults,
inactiveBranchNewResults,
doneForNowBranchIds,
onDoneForNow,
branchId,
}) {
const hasOpenItems = openQuestions && openQuestions.length > 0;
const hasContributions = contributions && contributions.length > 0;
const isPaused = doneForNowBranchIds?.includes(branchId) || false;
const isBranchActive = !isPaused;
return (
<div className="space-y-6">
@@ -407,9 +412,35 @@ function BranchNotebookContent({
<UpdatedConnectionCard update={lateResults[0]} />
)}
{/* Quiet state — only when there are no open items and no updates */}
{/* Done for now control — only when branch is not already paused */}
{isBranchActive && onDoneForNow && contributions.length > 0 && (
<div className="flex justify-end pt-1">
<button
onClick={(e) => { e.stopPropagation(); onDoneForNow(); }}
style={{ cursor: "pointer" }}
className="rounded-lg border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-600 hover:bg-gray-50 transition whitespace-nowrap"
>
Done for now
</button>
</div>
)}
{/* Quiet state */}
{!hasOpenItems && !lateResults?.length && (
<QuietStateCard />
<div className="rounded-lg border border-gray-200/60 bg-gray-50/40 px-5 py-5 text-center">
{isPaused ? (
<>
<p className="text-sm leading-relaxed text-gray-500 mb-1">
Nothing more to add here right now
</p>
<p className="text-xs leading-relaxed text-gray-400">
This branch is paused. Reasoning preserved return when you have more information.
</p>
</>
) : (
<QuietStateCard />
)}
</div>
)}
</div>
);
@@ -805,6 +836,11 @@ export default function ReasoningWorkspace({
branchLocalContributions,
branchLocalLateResults,
inactiveBranchNewResults,
activeBranchIdForNotebook,
// ── RTO.27B — provisional pause state ──
doneForNowBranchIds,
onDoneForNow,
onReopenBranch,
}) {
const [investigationHistory, setInvestigationHistory] = useState([]);
const turnCounter = useRef(0);
@@ -1115,6 +1151,9 @@ export default function ReasoningWorkspace({
openQuestions={branchLocalQuestions || []}
lateResults={branchLocalLateResults || []}
inactiveBranchNewResults={inactiveBranchNewResults || {}}
doneForNowBranchIds={doneForNowBranchIds || []}
onDoneForNow={onDoneForNow}
branchId={activeBranchIdForNotebook}
/>
)}
@@ -1149,14 +1188,12 @@ export default function ReasoningWorkspace({
{genuineCompletion && (
<CompletionCard summary={resolveCurrentSummary(propUnderstanding || graph?.currentSummary || result?.updatedSituationGraph?.currentSummary)} />
)}
{!genuineCompletion && (
experimentalBranches && experimentalBranches.length > 0 ? (
// In experiment mode: quiet facilitator state, not evidence limit verdict
<QuietStateCard />
) : (
<EvidenceLimitCard summary={resolveCurrentSummary(propUnderstanding || graph?.currentSummary || result?.updatedSituationGraph?.currentSummary)} />
)
)}
{!genuineCompletion && experimentalBranches && experimentalBranches.length > 0 ? (
// Quiet state is handled inside BranchNotebookContent for experiment mode
null
) : !genuineCompletion ? (
<EvidenceLimitCard summary={resolveCurrentSummary(propUnderstanding || graph?.currentSummary || result?.updatedSituationGraph?.currentSummary)} />
) : null}
</>
)}