Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions src-tauri/src/models/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,19 +116,21 @@ pub enum ContentBlock {
///
/// OPTIONAL, and `None` means UNKNOWN — never "settled". A reader may
/// only act on an affirmative value, so every parser that can't honestly
/// supply one (all of them but grok today) keeps its existing behavior.
/// This exists because absence of output is NOT evidence of liveness: an
/// empty result still writes a `ToolResult`, grok backfills
/// `output_preview` only for non-empty output, and a codex code-mode
/// script that never `text()`s a call settles with none. A viewer
/// polling a RUNNING session's transcript from disk (the grok
/// `spawn_subagent` dialog) has no other way to tell a call that is
/// still working from one that finished.
/// supply one keeps its existing behavior. This exists because absence
/// of output is NOT evidence of liveness: an empty result still writes a
/// `ToolResult`, grok backfills `output_preview` only for non-empty
/// output, and a codex code-mode script that never `text()`s a call
/// settles with none. A viewer polling a RUNNING session's transcript
/// from disk (the grok `spawn_subagent` dialog) has no other way to tell
/// a call that is still working from one that finished.
///
/// Deliberately NOT derived for codex: its `ScriptStatus::Running` is
/// Deliberately NOT derived from codex's `ScriptStatus`: that is
/// script-level — a script can still be running after its first inner
/// call already completed — so copying it onto recovered inner calls
/// would manufacture a permanent spinner.
/// would manufacture a permanent spinner. The one codex card that does
/// carry a status is an MCP call rebuilt from its OWN semantic
/// `item_completed` record, which yields a per-call terminal outcome
/// (`completed` / `failed`) that the wrapper script's status cannot.
#[serde(default, skip_serializing_if = "Option::is_none")]
status: Option<String>,
/// ACP extensibility metadata associated with the tool call. The
Expand Down
Loading
Loading