From 8be95c8807bd8494dced1cbab54f7879a6802d8c Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 13 Oct 2026 02:36:57 +0000 Subject: [PATCH] Keep critical coverage and correction notices in conversation work Why: A folded auxiliary panel must not hide material limits or withdrawn conclusions. Evidence: SELF 213 frontend tests, type checks, knip ratchet, and bundle build pass. Impact: Prioritizes existing task cards without opening files or changing focus. Refs: fast-slow-u2-u3 Task 5 --- src/components/ConversationWork.tsx | 2 +- src/contracts.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ConversationWork.tsx b/src/components/ConversationWork.tsx index 3ed0f79..db03c2a 100644 --- a/src/components/ConversationWork.tsx +++ b/src/components/ConversationWork.tsx @@ -24,7 +24,7 @@ export function ConversationWork() { if (card.kind === 'confirm' && card.anchorMessageId && messages.some(message => message.role === 'user' && message.id === card.anchorMessageId)) continue const summary = activitySummary(card) - if (card.task?.findings?.some(f=>f.status==='active'&&(f.kind==='needs_user'||f.corrects)) || card.status === 'action_required' || summary.failed || (card.status === 'done' && summary.remaining)) required.push(card) + if (card.task?.limitations?.length || card.task?.phase.id==='correction' || card.task?.findings?.some(f=>f.status==='active'&&(f.kind==='needs_user'||f.corrects)) || card.status === 'action_required' || summary.failed || (card.status === 'done' && summary.remaining)) required.push(card) else remaining.push(card) } // Preserve the host's newest-first order for completed results and history. diff --git a/src/contracts.ts b/src/contracts.ts index 47449f6..7d74580 100644 --- a/src/contracts.ts +++ b/src/contracts.ts @@ -408,6 +408,7 @@ export interface TaskResultRef { artifactId?: ID; surfaceId?: ID; version?: stri export interface TaskFinding { id: string; text: string; impact?: string; kind: string; status: string; revision: number; sources: TaskSourceRef[]; assumptions?: string; corrects?: string } export interface TaskSnapshot { inputs?: TaskSourceRef[] + limitations?: string[] schemaVersion: number; taskId: ID; attemptId: ID; cardId: ID; projectId: ID; conversationId: ID; sourceMessageId?: ID; parentRunId?: ID; runId?: ID; ownerInstanceId: string; executionEpoch?: number; revision: number; sourceSeq: number; streamScope: string; inputRevision?: string; title: string; goal?: string;