Use streaming, tool selection, and chat language
The full Complexity page, floating assistant, and mobile view share the chat, draft, and tool selection. Start a chat with current chat access. Interface language follows userSettings.language, currently English or Hungarian.
Tool feedback and streaming
The first identifiable streamed tool call shows preparation before all arguments arrive. Partial JSON stays hidden. The tool then becomes running, complete, or failed. Provider call IDs keep parallel calls separate.
Stream consumption does not wait for every intermediate database save. One save runs at a time per run. Periodic text/reasoning changes merge. Tool-state changes request immediate persistence. Finalization waits for pending saves. The browser receives only committed events.
WebSocket events can append text/reasoning or update a tool instead of repeating the whole message. The database stores the current message and replay events. Cursor, baseSequence, and snapshots prevent gaps or duplicates after reconnect. Older whole-message events remain readable.
Delivery filters actor and tenant before queueing and checks current read permission. New chunks do not override manual upward scrolling.
Select tools
The composer's tool menu permits all current tools, a subset, or none. The default is all available tools. The application stores selection per chat. Changing it needs ai.search.complexity.chat.
A run snapshots its selection, so edits during execution affect the next response. Model capability and context budgets use that selected list. Selection never replaces group grants.
Enter behavior
The central complexitySendMode default needs admin.ai.turnFeaturesOnOff to manage. Personal overrides use settings policy.
| UI mode | Value | Enter | Ctrl+Enter |
|---|---|---|---|
| Always off, default | off | Send | Send |
| Multiline only | multiline | Send before a real newline exists, otherwise insert a newline | Send |
| Always on | on | Insert a newline | Send |
Shift+Enter always inserts a newline. Pasted newlines count. Visual wrapping does not. Enter does not send during input-method composition. A missing older localStorage setting inherits the effective default.
Language
Application labels, actions, states, errors, tooltips, keyboard hints, and accessible names use the translation system. Dates and numbers follow the selected locale. Language changes update open panels without reload and preserve drafts, attachments, active chats, and runs.
User messages, model answers, saved titles, code, and generated tool/artifact content retain their original language. The application translates the unnamed-chat fallback. See application language.