# K1 chat-thread session actor public contract 0.3.17
## Constructors
The five existing constructors retain their names, arguments and composition, from the base actor through the full Social, SetLaunchNode, RustCode and WebCode actor.
The actor retains its ordered event loop, durable state, inference and model-usage lifecycle, restart generation, session view, and snapshots. `StageRuntime` owns provider-stage coordination, code lanes, WebSearch correlation, mailbox flushes, and acknowledgement order.
`PreparePreflight` atomically persists the ordered preflight through Durable State, then launches every concrete synchronous Ktool outside actor and persistence locks. `ResumePreflight` rebinds trusted authority and relaunches only unresolved calls after recovery. Terminal completions return through the actor channel as ordinary correlated Tool Results.
A prepared chat starts provider inference only after one User Message is durable and all blocking preflight calls are terminal. Non-blocking calls never hold that gate; a result arriving during inference reuses Stage Runtime's existing mailbox-flush path. Snapshots remain Running while unresolved preflight work exists.
Failures are classified explicitly at their source as optional diagnostics, recoverable turn failures, or critical integrity failures; diagnostic strings are never parsed to infer severity. Model-usage subscribe, receive, finish, restart, and shutdown failures disable that optional usage session, best-effort persist one bounded diagnostic code, and never block core inference.
Provider inference and mailbox-transport failures durably close only the affected turn with one safe visible terminal Agent Response, reset provider context from complete canonical history, install a fresh provider shim, and leave the same Chat able to accept a later User Message. No automatic provider retry is performed.
Durable-state, persistence, correlation, and internal invariant failures durably install a safe, non-restartable `Stalled` state, wake snapshot and wait observers, and only then stop actor processing. Raw provider, transport, or internal diagnostics are not exposed in public Chat text.
This package owns no persistence format, provider prompt, HTTP implementation, retry, timeout, migration, daemon composition, deployment, or live-behavior proof.