# kcode-k1-chat-chatend
This crate owns the append-only in-memory canonical Chatend and pure synchronous round-barrier transitions for K1-CHAT-001 r7.
`BoxId::get` exposes its private integer, `BoxContent` defines the six canonical values, and `ChatBox::id`, `ChatBox::content`, and `Chatend::boxes` provide immutable access.
`Chatend::new` and `Default` create empty history. `Chatend::accept_system`, `accept_user`, `accept_attachment`, and `accept_async_return` return an assigned ID only when an arrival appends immediately.
`start_round` returns the frozen prior frontier; `append_kennedy_text`, `collect_provider_call`, and `complete_provider_output` build the completed Kennedy and ordered dispatchable calls.
`complete_dispatch` accepts one ordered pending-or-terminal outcome per call, appends synchronous returns before queued arrivals, and leaves pending actions available for later async returns.
Deferred boundaries include provider-native receipts and IDs, clocks and notices, Attachment payloads, hidden metadata, serialization, persistence, replay, recovery, redelivery, migration, compaction, hydration, UI, runtimes, callbacks, and async execution.