You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
system_file — read a provider's system prompt from a file. Inline system wins when both are set; a configured file that cannot be read fails loudly at startup instead of silently blanking the prompt.
effort — a per-provider default reasoning-effort level (low|medium|high|xhigh|max), validated at startup. A resumed session's own effort still overrides it.
mcp_servers (per provider) — pick which of the top-level MCP servers a provider loads, by name: key absent = all (previous behavior), [] = none, a name list = exactly that subset (unknown names fail loudly). --mcp flag servers always load.
Variable expansion everywhere — the ${…} syntax from MCP definitions now also applies to provider key, url, and system_file (so key: ${env:DEEPSEEK_KEY} works), with a new ${appHome} variable for chatchain's global directory (~/.chatchain).
UI
Reasoning → markdown → tool-call turns render in lifecycle order: a tool call announced while content is still streaming (or still buffered inside the renderer — a trailing table flushes only at stream end) now waits for the content block to close instead of splitting it — no more double blank above the content with the tool widget glued underneath. Content the model streams after its first tool delta stays visible, and interrupt partials keep every byte.
The session's first block no longer stacks a second blank under the startup banner.