Skip to content

Defaults and Limits ​

Every default, limit, timer and storage key of Chat UI 0.4.0 in one place. Server-side limits (body size, quotas, retention, page size) belong to the server; the ones named here are what the UI does or expects.

Props that have a default ​

PropDefaultWhere
streamingtrueChat, useChat
showHistorytrueChat
defaultHistoryOpenfalseChat
theme"dark"Chat, EmbedChat
showAvatars, showTimestampstrue, falseChat
autoScroll, autoFocusInputtrue, falseChat
enableMessageSearchfalseChat
showAgentNamefalseChat, ChatHistory
showStatustrueChat, ChatHistory
enableCitationstrueChat
readOnlyfalseChat, useChat
enableToolApprovals, enableQuestionstrueChat, useChat (enableQuestions)
allowArgumentEditfalseChat
expiryWarningSeconds600Chat, the cards
pendingActionComposerMode"block"Chat, useChat
showBudgetMetertrueChat
allowBudgetContinue, allowBudgetEditfalseChat
autoSendfalseChat
Portal switches (messageActions, feedback, historyActions, exportMenu, notifications, disclosure.aiLabel)offChat
feedback.commentstrueChat
exportMenu.formats["md", "json", "pdf"]Chat
exportMenu.includeToolsfalseChat
notifications.desktop"off"Chat
Announcement.severity, Announcement.dismissible"info", trueChat
ConversationStarter.autoSendfalseChat

Files ​

SettingDefault
enableFileUploadtrue
maxFileSize10 MB (10 * 1024 * 1024)
maxFiles10
maxFilesScope"message" (an agent's own maxFiles counts per conversation)
fileTransport"inline"
allowedFileTypesany
Empty filesAlways refused
ThumbnailsPNG, JPEG, GIF and WebP only
AgentServerClient rawUploadtrue
GET /conversations/:id/files page200 files
Blob URLs cached by getFileUrl200, least recently used released first

Timers and retries ​

SettingDefaultMeaning
actionExpiryRefreshMs1500 msHow long after a card's deadline the conversation is fetched again
followSettleRetryMs1500 msHow long to wait before looking once more for the stored answer of a followed turn
reconnect.retries6Consecutive failed attempts of the follow stream before giving up
reconnect.delayMs500 msFirst wait before reconnecting; doubles each attempt
reconnect.maxDelayMs8000 msLongest wait between attempts
Card countdown30 s, then every second in the last 2 minutesHow often the "Expires in ..." text updates
Announcement window check30 sA notice starts and ends while the page is open
Copy confirmation2 s"Copied!"
Embed authTimeoutMs10000 msWait for the host's first token before auth:required
Embed readyIntervalMs500 msRepeats cp:ready until the host answers, at most 60 times
Embed token wait15 sA request for a fresh token waits this long for cp:auth
Embed renewal lead1/5 of the session's life, between 5 and 60 sWhen the chat asks for a new token before the session ends
Embed request guard5 sA request never leaves with a token that has less than this left
Client tool timeoutSeconds60 s default, 600 s at mostHow long the host page has to answer a tool call

Sizes and counts ​

LimitValue
Suggested starters shown6
Announcements shown at once5
Feedback comment1000 characters
Conversation title when renaming200 characters
Conversations per bulk delete request100 (more are sent in turns)
History page (useChatHistory pageSize)20
Messages in the newest page of a conversation100 on agent-server (limits.messagePageSize)
Composer heightgrows to 200 px, then scrolls
Embed host token8192 characters
Embed cp:prefill text8000 characters
Embed cp:context8 KB of JSON
Embed host tool output64 KB of JSON
Embed event text (eventContent="text")4000 characters

The embed constants are exported (MAX_TOKEN_CHARS, MAX_CONTEXT_BYTES, MAX_TOOL_OUTPUT_BYTES), as are MAX_STARTERS, MAX_ANNOUNCEMENTS and MAX_FEEDBACK_COMMENT.

What the browser keeps ​

KeyWhereHolds
cp:announcement:dismissed:<id>localStorage"1" once the person closed that announcement
cp:notify:prefslocalStorage{ sound, desktop } as the person chose them in the bell menu
cognipeer-chat-threads (and :index)localStorageThreads, only with LocalStorageThreadStore (a different key can be given)
?lang=The page URLThe locale chosen with setLocale

Nothing else is stored: an embedded chat keeps its session token in memory only, and every storage access is guarded, so a blocked localStorage just means choices last for the page view.

Which URLs are drawn or linked ​

WhereAllowed
Images (messages, thumbnails)https:, blob:, relative or same-origin, http: on a page served over http (or from the page's own origin), base64 PNG / JPEG / GIF / WebP
File download linkshttp:, https:, blob: and relative addresses (so a data: URL has no Download link)
Legal linksPlain web addresses, a path of the page, and mailto: for support only
Welcome and terms pictureshttps: (optionally from welcomeImageHosts), a path of the page, or a base64 raster data URL

Studio · Pulse · Console · Agent SDK and more — the Cognipeer documentation hub