Kestrel exposes distinct activity channels so a UI or operator does not mistake provider data, engine logs, or tool timing for agent-authored narration.
Provider reasoning versus agent progress
| Channel | Source | Durability | Display rule |
|---|---|---|---|
run.model.reasoning.* | provider-returned summary or visible thinking | live-only by default | label the provider-declared format and attempt |
run.agent_progress | primary agent decision after validation and commit | durable | show as concise Agent progress |
Tool lifecycle events, model timing, Environment activation, and service logs remain technical activity rather than agent progress.
Provider truthfulness
OpenAI reasoning summaries are summaries, Anthropic visible thinking retains its provider identity, and OpenRouter details preserve declared ordering and format. Unsupported or empty output is unavailable, not reconstructed.
Visible progress lifecycle
Progress becomes durable only after Kestrel validates and commits the agent-authored update. A reconnect may show the last committed progress; it must not invent narration for work that produced no committed update.
Retention and encryption
Encrypted signatures, opaque continuation material, and provider-private state may continue back to the owning provider. They never render in events, UI, logs, traces, prompts, conversation history, or retained-visible records.
Reconnect behavior
Consumers resume from durable event or conversation cursors. Live-only provider reasoning may be absent after reconnect; committed agent progress and terminal outcomes remain available.
Inspection and authorization
Retained reasoning inspection is an authorized operator surface, not a general member feed. Apply organization, Environment, actor, and retention policy before returning any retained material.
Trace correlation
Carry session/thread, run, turn, attempt, provider/model, and trace identifiers without merging the semantic channels. Correlation proves related activity; it does not change who authored it.
Failure and terminal behavior
Failure, waiting, cancellation, and recovery are explicit runtime states. Do not turn an error string or retry status into agent progress. Finish presentation from the terminal result or exact waiting contract.
Consumer rules
Label sources, preserve order, render only declared formats, keep secrets and continuation state hidden, resume from durable cursors, and tolerate a provider that returns no visible reasoning.