# kcode-k1-codex-runtime
This crate is the compatible public `Adapter` and `Turn` facade over `kcode-k1-codex-runtime-actor`. Cloned adapters share one app-server process while complete configuration profiles remain bound per conversation key by the actor session.
`Adapter::open` validates the opening profile and establishes the executable and working directory. `Adapter::with_config` validates every derived profile and requires those two process fields to remain unchanged; model, reasoning effort, base instructions, and dynamic tools may differ. Public configuration, event, tool, and error types retain their `kcode-k1-codex-conversations` identity.
`start_turn` returns a `Turn` that streams ordered text, dynamic calls, and terminal events. `respond` answers an exact pending call. `try_next_event` distinguishes an empty live receiver from disconnection. Dropping a nonterminal turn delegates abandonment to the actor.
`steer` submits text to the active native turn with the adapter's complete bound profile. It waits for the correlated `turn/steer` provider response; local or provider failure leaves the binding unchanged. The actor session serializes same-key operations while allowing different keys to progress concurrently.
`close_conversation` is idle-only, profile-bound, and idempotent. Diagnostics remain separate from error display text, and unavailable errors preserve the established kind and message. This facade owns no transport, provider correlation, retry, persistence, or scheduling behavior.
## 0.3.0
Refactors Runtime onto Runtime Actor 0.1.0 and adds active-turn steering without changing existing public paths or lifecycle semantics.