AI chat modes, persistence, recovery, model capabilities, and future design projects.
Chat is the AI-first assistance surface in CentraKit. It is intended to operate across organization context, workspace context, and user permissions.
Chat supports three explicit modes:
Every mode is bound to the active organization and the user’s authoritative permissions. Chat and its tools use the same service and approval boundaries as the rest of the product; a prompt or tool call cannot grant access that the user does not otherwise have.
Ask and Plan use the direct chat transport. The client submits only the latest user-message or approval delta, and the server validates and merges that delta with authoritative persisted history. If an HTTP stream loses its final event after the response was committed, the client recovers the database-finalized Ask or Plan message. Agent execution uses the durable Workflow transport and its own run ownership and reconnect path; direct-chat recovery does not take ownership of Agent runs.
Messages retain their ordered, heterogeneous parts as JSONB. Current hydration, approval validation, replay, and finalization read or replace a whole message, so there is not yet evidence that normalizing parts into child rows would justify the additional joins and integrity surface. Persisted messages are the recovery boundary. CentraKit does not retain live provider tokens in Redis and does not promise token-level resumption for interrupted direct streams.
Explicit model selections are capability-checked for image, audio, and PDF attachments in both client preflight and the authoritative server path. An incompatible explicit selection is rejected instead of silently switching models. Auto may route to an enabled compatible model. Settled assistant messages persist and display the model and provider that actually produced the response, including the resolved model selected by Auto.
Runtime failures use structured, actionable notices for rate limits, usage limits, unsupported attachments, unavailable models, stale deltas, reconnect failures, and generic failures. Recovery actions are matched to the failure: users can adjust an incompatible model or attachment, retry a recoverable turn, or reconnect only where the transport owns a reconnectable run.
Organization administrators can provide bounded chat instructions for terminology, tone, and organization-specific guidance. The instructions are sanitized, length-limited, and inserted into Ask, Plan, and Agent as explicitly untrusted tenant context. They cannot override system safety, the selected mode, permissions, tool availability, approval requirements, or verified tool and API results.
Users can record or clear a positive or negative rating on an assistant message. Feedback is private to the rating user, is unique per user and message, and retains organization, settled model, and Agent run linkage when available. It deliberately stores no comments, prompt text, response text, or other raw message content.
The following are explicit future projects, not extensions implied by the current linear message transport:
Shared or group-chat collaboration and broader channel behavior remain planned until their participant, visibility, permission, and provider flows are complete.