feat(gui): fold todo/write into ConversationSnapshot.todos
Session consumes the todo/write session event as a per-event side effect (last write wins), rebuilds it on window replay/paging/resync, and exposes snapshot.todos. TodoItem re-exported through the runtime surface.
This commit is contained in:
@@ -4,9 +4,12 @@
|
||||
// string here (narrow to real brands when convenient).
|
||||
|
||||
import type { ContentBlock } from '@deepseek-ai/dsh-llm/types'
|
||||
import type { TodoItem } from '@deepseek-ai/dsh-session/types'
|
||||
import type { RpcError, SessionId, ToolCallView, ToolResultView } from '@deepseek-ai/dsh-client-connection/client'
|
||||
import type { PendingInteraction } from './pending.ts'
|
||||
|
||||
export type { TodoItem }
|
||||
|
||||
/** Assistant content blocks sorted by what the UI cares about
|
||||
* (text body / collapsible reasoning / tool-call card head / other fallback). */
|
||||
export type AssistantBlock =
|
||||
@@ -174,4 +177,6 @@ export interface ConversationSnapshot {
|
||||
loadingOlder: boolean
|
||||
promptError: PromptError | null
|
||||
lastAgentError: string | null
|
||||
/** Latest `todo/write` whole-list snapshot in the window (last write wins); empty = no plan. */
|
||||
todos: readonly TodoItem[]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user