- Map reasoning effort to chat_template_kwargs.enable_thinking alongside
reasoning_effort, so the selector actually toggles thinking on Qwen3-class
local runtimes (LM Studio/vLLM/Ollama), which ignore reasoning_effort
entirely. Falls back cleanly on hosted APIs that reject the extra field.
- Track and render per-message token usage (prompt/completion/tokens-per-sec)
from the ferrum_usage SSE envelope, with an estimated fallback.
- Persist reasoningEffort and createdAt on conversations/messages.
- Memoize Markdown on text so streaming a response no longer re-parses every
already-committed message on each token.
- AI provider settings: auto-add all discovered models on first save instead
of requiring a second click per model.
- SSE event stream: clear the write deadline so long-lived connections don't
get cut mid-stream.