From dbe1f544d70895fa0fd809114f9a249cc062aef1 Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 13 Oct 2026 01:59:40 +0000 Subject: [PATCH] Keep material coverage limits separate from outcome claims Why: A completed run can still lack readable or fully provided source material. Evidence: Composition validation follows the backend and UI consumers. Impact: Adds optional host-owned limitations without changing candidate authority. Refs: fast-slow-u2-u3 Tasks 4 through 6 --- task_snapshot.go | 1 + ts/types.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/task_snapshot.go b/task_snapshot.go index 7de4fdd..d02722b 100644 --- a/task_snapshot.go +++ b/task_snapshot.go @@ -74,6 +74,7 @@ type TaskSnapshot struct { NextStep string `json:"nextStep,omitempty"` Conclusion string `json:"conclusion,omitempty"` Findings []TaskFinding `json:"findings,omitempty"` + Limitations []string `json:"limitations,omitempty"` Inputs []TaskSourceRef `json:"inputs,omitempty"` Actions []UIAction `json:"actions,omitempty"` ResultRefs []TaskResultRef `json:"resultRefs,omitempty"` diff --git a/ts/types.ts b/ts/types.ts index 691f160..a613d07 100644 --- a/ts/types.ts +++ b/ts/types.ts @@ -407,6 +407,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;