Releases: Algorithm5838/open-webui
Releases · Algorithm5838/open-webui
v0.9.2
Added
- 🧠 PaddleOCR-vl document extraction. Administrators can now use PaddleOCR-vl as a content extraction engine for document processing, with configurable API URL and token settings in document retrieval configuration. #23945
- 🔥 Firecrawl v2 API. Firecrawl web loading now uses the v2 API directly with proper retry logic, exponential backoff on rate limits, and configurable timeout handling, improving reliability for both cloud and self-hosted Firecrawl setups. #23934
- ⏰ Calendar event reminder customization. Calendar events now support a configurable
reminder_minutesparameter, allowing models to set custom reminder durations instead of the default 10-minute notification. - 🔑 Custom API key header. Administrators can now configure a custom header name for API key authentication via the
CUSTOM_API_KEY_HEADERenvironment variable, enabling compatibility with reverse proxies that use theAuthorizationheader for their own authentication. - 🔌 OAuth session disconnection. Users can now disconnect OAuth sessions for specific providers (e.g., MCP connections) through a new API endpoint, enabling cleaner re-authentication workflows.
- 📚 Source overflow indicator. The Sources button now shows a +N badge when more than three sources are available, so hidden sources are clearly indicated in chat responses. #23918
- ⚡ Model list performance. Model list API responses now strip base64 profile image data from paginated results, and model tags are fetched via a dedicated efficient query instead of loading all models. This significantly reduces payload sizes and improves workspace Models page responsiveness.
- ⚡ Model avatar cache reuse. Default model profile images now redirect to a shared static path instead of reading files from disk per-request, reducing repeated I/O and improving loading efficiency when multiple models use the fallback icon. #24015
- 🚀 Faster splash image loading. Splash screen images are now prioritized earlier during page load with preload links, improving first-load LCP behavior and reducing delayed image discovery. #24011
- 🧵 Streaming markdown performance stability. Streaming responses now stay more memory-efficient by preventing repeated cleanup callback registration during markdown updates. #24048
- 📊 Telemetry gauge reliability. OpenTelemetry user gauge callbacks now use synchronous database queries directly, eliminating cross-thread async bridging issues that could cause silent failures in metric collection.
- 🔄 General improvements. Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 Translation updates. Translations for Finnish, Korean, Portuguese (Brazil), and Dutch were enhanced and expanded.
Fixed
- 🔧 MCP task cancellation stability. Interrupted MCP tool calls no longer cause CPU spikes or runaway cleanup behavior. MCP client disconnection now runs in the same asyncio task as connection, respecting cancel scope constraints, and chat-active events are properly shielded during cancellation.
- 🧠 Persistent chat skill injection. Skills mentioned in persisted chats now inject into the system prompt reliably. Skill ID extraction from
<$skillId|label>message tags is now handled server-side, and tags are stripped before messages reach the model. - 🗄️ Async database driver migration. The async database backend now uses psycopg (v3) instead of asyncpg, eliminating brittle SSL parameter translation and supporting native libpq connection strings including
sslmode,options, andtarget_session_attrswithout any stripping or conversion. - 🐳 Docker ARM64 reliability. Docker images built for arm64 via QEMU cross-compilation no longer produce 0-byte corrupted Python dependencies.
UV_LINK_MODE=copyis now set in the Dockerfile to force reliable file installation. - 🛠️ Throttle request handling. Request handling no longer fails when user activity status updates are throttled with a non-zero interval. #23979
- ✍️ Rich text extension conflicts. Rich text editing no longer triggers duplicate extension conflicts for lists and code blocks, improving editor stability. #24009
- 🔇 Fetch URL null content guard. The
fetch_urlbuilt-in tool now safely handlesNonecontent returned by web loaders instead of crashing with aTypeError. - 🌐 OAuth discovery fallback. OAuth protected resource discovery now falls back to well-known RFC 9728 URIs when the
WWW-Authenticateheader doesn't contain aresource_metadatalink, improving compatibility with more MCP server implementations. - 🔐 Session token resolution. Session user endpoints now gracefully handle missing
Authorizationheaders by falling back to cookie and request state tokens, preventing errors when used behind forward-auth proxies. - 🚫 Direct API error responses. Chat completion requests without a WebSocket channel (direct API calls) now return proper HTTP error responses instead of silently returning null on failure.
- 📡 Cancelled response stream cleanup. Cancelled chat generation now explicitly closes the upstream response body iterator, preventing orphaned async generators from spinning in anyio internals.
- 🔒 Model profile image path safety. Model profile image endpoints now validate and sanitize static asset redirect paths, preventing path traversal through encoded dots or malicious URL patterns.
- 📊 RAG template validation UI. The Documents settings page now displays a warning when RAG templates contain multiple
[context]or{{CONTEXT}}placeholders, helping administrators avoid accidental redundant context injection. - 🧩 Automation model detection. The
create_automationtool now correctly detects the current model ID even whenmodel_idis not yet set in metadata, falling back to the model dict. - 🔄 MCP resource content handling. MCP tool results with the
resourcecontent type are now correctly detected and theirresource.textpayload is extracted, instead of being silently ignored. - 🔄 Ollama and OpenAI metadata forwarding. Ollama and OpenAI proxy routes now forward request metadata to downstream handlers, ensuring consistent context propagation.
- 🧹 Browser-native message virtualization. The custom JavaScript-based message culling system (spacers, height caching, scroll listeners) was replaced with CSS
content-visibility: auto, letting the browser natively skip rendering of off-screen messages without destroying component trees. This eliminates scroll jump artifacts and mount/destroy thrashing while preserving memory efficiency in long conversations. - 📻 Redis notification compatibility. Redis pub/sub now handles missing or incompatible
client_namesupport more gracefully, preventing connection errors with certain Redis configurations.
Changed
- ⚙️ psycopg v3 async driver. The async database driver has been migrated from
asyncpgtopsycopg(v3). This is a transparent change for most deployments, but custom connection strings withasyncpg-specific parameters may need adjustment. - 🔑 Brotli dependency update. Brotli has been updated to address CVE-2025-6176.
- 🖥️ Windows startup script. The Windows startup batch script has been updated for improved compatibility.
v0.9.1
Fixed
- 🐛 Missing
aiosqlitedependency. Fixed a startup crash (ModuleNotFoundError: No module named 'aiosqlite') when installing Open WebUI viapiporuvby adding the missingaiosqlitepackage topyproject.toml. The dependency was listed inrequirements.txtbut not in the published package metadata, so it was not installed automatically. #23916 - 🐛 Missing
asyncpgdependency. Added the missingasyncpgpackage topyproject.tomlto prevent the same startup crash for PostgreSQL users. Likeaiosqlite, it was present inrequirements.txtbut absent from the published package dependencies.
v0.8.12
Added
- 🌐 Translation updates. Translations for Simplified Chinese, Catalan, Portuguese (Brazil), Finnish, and Lithuanian were enhanced and expanded.
Fixed
- 🔒 Terminal server connection security. Terminal server verification and policy saving now proxy through the backend, preventing API key exposure and CORS errors when connecting to in-cluster services. Commit, Commit
- 🛠️ Terminal tools exception handling. Exceptions in middleware.py due to invalid return values from get_terminal_tools() have been resolved. Commit
- 📦 Missing beautifulsoup4 dependency. Users can now start Open WebUI using uvx without encountering the "bs4 module missing" error. Commit
- 🔌 API files list error. The /api/v1/files/ endpoint no longer returns a 500 error, fixing a regression that prevented file listing via the API. Commit
- 📜 License data loading. License data now loads correctly, displaying the expected color and logo in the interface. Commit
- 👑 Admin model visibility. Administrators can now see models even when no access control is configured yet, allowing them to manage all available models. Commit
- 📊 Tool call embed visibility. Rich UI embeds from tool calls (like visualizations) are now rendered outside collapsed groups and remain visible without requiring manual expansion. Commit, Commit
v0.8.11
Added
- 🔀 Responses API streaming improvements. The OpenAI proxy now properly handles tool call streaming and re-invocations in the Responses API, preventing duplicate tool calls and preserving output during model re-invocations. Commit, Commit, Commit, Commit
- 🔀 Responses API stateful sessions. Administrators can now enable experimental stateful session support via the ENABLE_RESPONSES_API_STATEFUL environment variable, allowing compatible backends to store responses server-side with previous_response_id anchoring for improved multi-turn conversations. Commit
- 📄 File viewing pagination. The view_file and view_knowledge_file tools now support pagination with offset and max_chars parameters, allowing models to read large files in chunks. Commit
- 🗺️ Knowledge search scoping. The search_knowledge_files tool now respects model-attached knowledge, searching only within attached knowledge bases and files when available. Commit
- 🛠️ Tool HTML embed context. Tools can now return custom context alongside HTML embeds by using a tuple format, providing the LLM with actionable information instead of a generic message. #22691
- 🔒 Trusted role header configuration. Administrators can now configure the WEBUI_AUTH_TRUSTED_ROLE_HEADER environment variable to set user roles (admin, user, or pending) via a trusted header from their identity provider or reverse proxy. #22523
- 🔑 OIDC authorization parameter injection. Administrators can now inject extra parameters into the OIDC authorization redirect URL via the OAUTH_AUTHORIZE_PARAMS environment variable, enabling IdP pre-selection for brokers like CILogon and Keycloak. #22863, Commit
- 🔑 Google OAuth session persistence. Administrators can now configure Google OAuth to issue refresh tokens via the GOOGLE_OAUTH_AUTHORIZE_PARAMS environment variable, preventing OAuth sessions from expiring after one hour and ensuring tools and integrations that rely on OAuth tokens remain functional. #22652
- 🔌 Embed prompt confirmation. Interactive tool embeds can now submit prompts to the chat without requiring same-origin access, showing a confirmation dialog for cross-origin requests to prevent abuse. #22908
- 🏮 Tool binary response handling. Tool servers can now return binary data such as images, which are properly processed and displayed in chat for both multimodal and non-multimodal models. Commit, Commit
- ⚡ Svelte upgrade performance. Page and markdown rendering are now approximately 25% faster across the board, with significantly less memory usage for smoother UI interactions. #22611
- 🧩 Model and filter lookup optimization. Model and filter membership lookups are now faster thanks to optimized data structure operations during model list loading. Commit
- 💨 Chat render throttling. Chat message rendering now uses requestAnimationFrame batching to stay smooth during rapid model responses, preventing dropped frames when fast models send many events per second. #22947
- 🚀 Function list API optimization. The functions list API now returns only essential metadata without function source code, reducing payload sizes by over 99% and making the Functions admin page load significantly faster. #22788
- ✨ Smoother loading animation. The loading shimmer animation now looks smoother and more natural, with softer highlight colors. #22516
- 🧪 Terminal connection verification. Users can now verify their terminal server connection is working before saving the configuration, making setup more reliable. #22567
- 📁 Chat folder emoji reset. Users can now reset chat folder emojis back to the default icon using a "Reset to Default" button in the emoji picker, making it easier to revert custom icons. #22554
- 📊 Metrics export interval configuration. Administrators can now control OpenTelemetry metrics export frequency via the OTEL_METRICS_EXPORT_INTERVAL_MILLIS environment variable, enabling cost optimization for metrics services like Grafana Cloud. #22529
- 🏥 Readiness probe endpoint. A new /ready endpoint is now available for Kubernetes deployments, returning 200 only after startup completes and database/Redis are reachable, enabling more reliable container orchestration. #22507
- 🔩 Tool server timeout configuration. Administrators can now configure a separate HTTP timeout for tool server requests via the AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER environment variable, enabling fine-tuned control over how long tool calls are allowed to take. Commit
- 📌 Knowledge file previews. Knowledge base files can now be opened in a new tab directly from the file list, making it easier to view content without downloading. #22629
- 🎯 Knowledge tool hybrid search support. The built-in query_knowledge_files tool now respects hybrid search and reranking settings, matching the behavior of the middleware RAG pipeline. Commit
- 🗣️ Temporary chat folder support. Temporary chats can now use folder-level system prompts and knowledge files, making them more powerful for quick explorations. Commit
- 📡 Terminal port previews. Detected ports in the File Navigator can now be previewed inline with a browser-style view, navigation controls, and an address bar, instead of only opening in a new tab. Commit, Commit
- ✏️ File renaming. Files and folders in the File Navigator can now be renamed by double-clicking or using the context menu, with Enter to confirm and Escape to cancel. Commit
- 🧭 File Navigator navigation history. The File Navigator toolbar now includes Back and Forward buttons for navigating through folder and file history, similar to a web browser. Commit
- 🗑️ Delete connection confirmations. Users are now prompted with a confirmation dialog before deleting connections, preventing accidental deletions. Commit
- 📦 Document loader fallbacks. Excel and PowerPoint files can now be processed even when the unstructured package is not installed, using pandas and python-pptx as fallback loaders. Commit
- 🧠 Memory management search and sort. Users can now search and sort their personal memories in the Memory management modal, making it easier to find specific memories. Commit
- 📦 SBOM generation script. A new script for generating CycloneDX Software Bill of Materials is now available in the scripts directory. Commit
- ⚙️ Ruff linter and formatter. Added Ruff as the Python linter and formatter, replacing the black-based workflow for better code quality with near-instant execution. #22576, #22462
- 🖥️ Offline code formatting support. The black formatter for Python code editing is now bundled locally in the Docker image, enabling code formatting to work in air-gapped deployments where client browsers cannot reach PyPI. Formatting failures no longer block saves, allowing code to be preserved even when offline. #22509, Commit
- ✏️ Markdown file editing. Users can now edit and save Markdown files directl...
v0.8.10
Added
- 🔐 Custom OIDC logout endpoint. Administrators can now configure a custom OpenID Connect logout URL via OPENID_END_SESSION_ENDPOINT, enabling logout functionality for OIDC providers that require custom endpoints like AWS Cognito. Commit
- 🗄️ MariaDB Vector community support. Added MariaDB Vector as a new vector database backend, enabling deployments with VECTOR_DB=mariadb-vector; supports cosine and euclidean distance strategies with configurable HNSW indexing. #21931
- 📝 Task message truncation. Chat messages sent to task models for title and tag generation can now be truncated using a filter in the prompt template, reducing token usage and processing time for long conversations. #21499
- 🔄 General improvements. Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 Translations for Portuguese (Brazil), Spanish, and Malay were enhanced and expanded.
Fixed
- 🔗 Pipeline filter HTTP errors. Fixed a bug where HTTP errors in pipeline inlet/outlet filters would silently corrupt the user's chat payload; errors are now properly raised before parsing the response. #22445
- 📚 Knowledge file embedding updates. Fixed a bug where updating knowledge files left old embeddings in the database, causing search results to include duplicate and stale data. #20558
- 📁 Files list stability. Fixed the files list ordering to use created_at with id as secondary sort, ensuring consistent ordering and preventing page crashes when managing many files. #21879
- 📨 Teams webhook crash. Fixed a TypeError crash in the Teams webhook handler when user data is missing from the event payload. #22444
- 🛠️ Process shutdown handling. Fixed bare except clauses in the main process that prevented clean shutdown; replaced with proper exception handling. #22423
- 🐳 Docker deployment startup. Docker deployments now start correctly; the missing OpenTelemetry system metrics dependency was added. #22447, #22401
- 🛠️ Tool access for non-admin users. Fixed a NameError that prevented non-admin users from viewing tools; the missing has_access function is now properly imported. #22393
- 🔐 OAuth error handling. Fixed a bug where bare except clauses silently caught SystemExit and KeyboardInterrupt, preventing clean process shutdown during OAuth authentication. #22420
- 🛠️ Exception error messages. Fixed three locations where incorrect exception raising caused confusing TypeError messages instead of proper error descriptions, making debugging much easier. #22446
- 📄 YAML file processing. Fixed an error when uploading YAML files with Docling enabled; YAML and YML files are now properly recognized as text files and processed correctly. #22399, #22263
- 📅 Time range month names. Fixed month names in time range labels appearing in the wrong language when OS regional settings differ from browser language; month names now consistently display in English. #22454
- 🔐 OAuth error URL encoding. Fixed OAuth error messages with special characters causing malformed redirect URLs; error messages are now properly URL-encoded. #22415
- 🛠️ Internal tool method filtering. Tools no longer expose internal methods starting with underscore to the LLM, reducing clutter and improving accuracy. #22408
- 🔊 Azure TTS locale extraction. Fixed Azure text-to-speech using incomplete locale codes in SSML; now correctly uses full locale like "en-US" instead of just "en". #22443
- 🎤 Azure speech transcription errors. Improved Azure AI Speech error handling to display user-friendly messages instead of generic connection errors; empty transcripts, no language identified, and other Azure-specific errors now show clear descriptions. #20485
- 📊 Analytics group filtering. Fixed token usage analytics not being filtered by user group; the query now properly respects group filters like other analytics metrics. #22167
- 🔍 Web search favicon fallback. Fixed web search sources showing broken image icons when favicons couldn't be loaded from external sources; now falls back to the default Open WebUI favicon. #21897
- 🔄 Custom model fallback. Fixed custom model fallback not working when the base model is unavailable; the base model ID is now correctly retrieved from model info instead of empty params. #22456
- 🖼️ Pending message image display. Fixed images in queued messages appearing blank; image thumbnails are now properly displayed in the pending message queue. #22256
- 🛠️ File metadata sanitization. Fixed file uploads failing with JSON serialization errors when metadata contained non-serializable objects like callable functions; metadata is now sanitized before database insertion. #20561
v0.8.9
Added
▶️ Open Terminal notebook cell execution. Users can now run Jupyter Notebook code cells directly in the Open Terminal file navigator, execute entire notebooks with a single click, edit and modify cells before running, and control the kernel - bringing full interactive notebook execution to the browser. Commit- 🗃️ Open Terminal SQLite browser. Users can now browse SQLite database files directly in the Open Terminal file navigator, viewing tables and running queries without downloading them first. Commit
- 📉 Open Terminal Mermaid diagram rendering. Markdown files with Mermaid code blocks are now rendered as diagrams directly in the Open Terminal file navigator, making it easier to visualize flowcharts and other diagrams. Commit
- 📓 Open Terminal Jupyter Notebook previews. Users can now preview Jupyter Notebook files directly in the Open Terminal file navigator, making it easier to view notebook content without downloading them first. Commit
- 🔃 Open Terminal auto-refresh. The Open Terminal file navigator now automatically refreshes when the model writes or modifies files, keeping the view in sync without manual refresh. Commit
- 📎 Open Terminal file copy button. Users can now copy file contents directly to clipboard in the Open Terminal file navigator with a single click, making it easier to quickly grab file content without downloading. Commit
- 💻 Code syntax highlighting and XLSX improvements in Open Terminal. Code files now display with syntax highlighting in the Open Terminal file navigator, and XLSX spreadsheets now show column headers and row numbers for easier navigation. Commit
- 🌳 Open Terminal JSON tree view. JSON, JSONC, JSONL, and JSON5 files now display as interactive collapsible tree views in the Open Terminal file navigator, and SVG files render as preview images with syntax highlighting support. Commit
- 🛜 Open Terminal port viewing. Users can now view listening ports in the Open Terminal file navigator and open proxy connections to them directly from the UI. Commit
- 🎬 Open Terminal video previews. Users can now preview video and audio files directly in the Open Terminal file navigator, making it easier to view media without downloading them first. Commit
- ✏️ Open Terminal HTML editing. Users can now edit HTML source files in Open Terminal with CodeMirror editor, and the save button is properly hidden in preview mode. Commit
- 📄 Open Terminal DOCX preview. Word documents generated or modified by the AI can now be viewed directly in the file navigator with formatted text, tables, and images rendered inline — no need to download and open in a separate application. Commit
- 📊 Open Terminal XLSX preview. Excel spreadsheets in the file navigator now render as interactive tables with column headers and row numbers, making it easy to verify data the AI has generated or processed. Commit
- 📽️ Open Terminal PPTX preview. PowerPoint presentations created by the AI can now be viewed slide-by-slide directly in the file navigator, enabling quick review and iteration without leaving the browser. Commit
- 📁 Pyodide file system support. Users can now upload files for Python code execution in the code interpreter. Uploaded files are available in the
/mnt/uploads/directory, and code can write output files there for download. The file system persists across code executions within the same session. The code interpreter now also informs models that pip install is not available in the Pyodide environment, guiding them to use alternative approaches with available modules. #3583, Commit, Commit - 🧰 Tool files access. Tools can now access the files from the current chat context via the files property in their metadata, enabling more powerful tool integrations. Commit
- ⚡ Chat performance. Chat messages now load and display significantly faster thanks to optimized markdown rendering, eliminating delays when viewing messages with mathematical expressions. #22196, #20878
- 📜 Message list performance. Improved message list rendering performance by optimizing array operations, reducing complexity from O(n²) to O(n). #22280
- 🧵 Streaming markdown performance. Improved chat responsiveness during streaming by skipping unnecessary markdown re-parsing when the content hasn't changed, eliminating wasted processing during model pauses. #22183
- 🏃 Chat streaming performance. Chat streaming is now faster for users not using the voice call feature by skipping unnecessary text parsing that was running on every token. #22195
- 🔖 Source list performance. Source lists in chat now render faster thanks to optimized computation that avoids unnecessary recalculations, including moving sourceIds computation to a reactive variable. #22279, Commit, Commit
- 💨 Chat message tree operations. Chat message tree operations are now significantly faster, improving overall chat responsiveness. #22194
- 🚀 Initial page load speed. Page load is now significantly faster thanks to deferred loading of the syntax highlighting library, reducing the initial JavaScript bundle by several megabytes. #22304
- 🗓️ Action priority query optimization. Improved performance of action priority resolution by fixing an N+1 query pattern, reducing database round-trips when loading model actions. #22301
- 🔑 API key middleware optimization. The API key restriction middleware was converted to a pure ASGI middleware for improved streaming performance, removing per-chunk call overhead. #22188
- 🏎️ Model list loading performance. Model lists now load significantly faster thanks to optimized custom model matching that uses dictionary lookups instead of nested loops. #22299, Commit, Commit
- ⏱️ Event call timeout configuration. Administrators can now configure the WebSocket event call timeout via the WEBSOCKET_EVENT_CALLER_TIMEOUT environment variable, giving users more time to respond to event_call forms instead of timing out after 60 seconds. #22222, #22220
- 🔁 File refresh button visibility. The refresh button in the chat file navigator now appears when viewing files as well as directories, allowing users to refresh the file view at any time. Commit
- 📂 Nested folders support. Users can now create subfolders within parent folders, improving organization of chats. A new "Create Subfolder" option is available in the folder context menu. #22073, Commit
- 🔔 Banner loading on navigation. Admin-configured banners now load when navigating to the homepage, not just on page refresh, ensuring users see new banners immediately. #22340, #22180
- 📡 System metrics via OpenTelemetry. Administrators can now monitor Python runtime and system metrics including CPU, memory, garbage collection, and thread counts through the existing OpenTelemetry pipeline. #22265
- 🔄 General improvements. Various improvements were implemented ac...
v0.8.8
[0.8.8] - 2026-03-02
Added
- 📁 Open Terminal file moving. Users can now move files and folders between directories in the Open Terminal file browser by dragging and dropping them. Commit, Commit, Commit, Commit
- 📄 Open Terminal HTML file preview. Users can now preview HTML files directly in the Open Terminal file browser, with a rendered iframe view and source toggle, enabling iterative AI editing of HTML files. Commit, Commit
- 🌐 Open Terminal WebSocket proxy. Added a new WebSocket proxy endpoint for interactive terminal sessions, enabling real-time bidirectional terminal communication with the terminal server. Commit
- ⚙️ Open Terminal feature toggle. Administrators can now enable or disable the Interactive Terminal feature for Open Terminal via configuration on the terminal server, controlling access to terminal routes. Commit
- 🔄 General improvements. Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 Translations for Simplified Chinese, Traditional Chinese, Irish, and Catalan were enhanced and expanded.
Fixed
- 🔧 Middleware variable shadowing. Fixed a variable shadowing issue in the middleware that could cause incorrect tool output processing during chat. #22145
- ⚡ ChatControls reactivity fix. Fixed a Svelte reactivity issue where the active tab state in the ChatControls panel was not properly saved when switching between chats. #22127
- 🔧 ChatControls TypeScript fix. Fixed a TypeScript syntax error in ChatControls.svelte where the module script block was missing lang="ts", causing esbuild to fail during vite dev. #22131
- 🔌 Open Terminal tools for direct connections. Fixed an issue where Open Terminal tools were not available to the model when the terminal was configured via direct connection settings, ensuring users can now interact with terminal files and operations through the AI. #22137
- 📜 Chat history pagination. Fixed an issue where older messages in long chats were not loaded when scrolling to the top. Commit, Commit
- 🔧 Terminal tool null parameter handling. Fixed a bug where null parameters in terminal tool calls were sent as the string "None" instead of being omitted, causing 422 validation errors from the open-terminal server. #22124, #22144
Changed
v0.8.7
[0.8.7] - 2026-03-01
Fixed
- 🔒 Connection access control privacy. Tool server and terminal connections without explicit access grants are now private (admin-only) by default, fixing a bug where connections configured with no access grants were visible to all users instead of being restricted. Commit
- 🧠 ChatControls memory leak. The ChatControls panel no longer leaks event listeners, ResizeObserver instances, and media query handlers when navigating between chats, fixing memory accumulation that could degrade performance during extended use. #22112
- 💾 Temporary chat params preservation. Model parameters are now correctly saved when creating a temporary chat, ensuring custom settings like temperature and top_p persist across the session. Commit
- ⚡ Faster artifact content updates. Artifact content extraction during streaming is now debounced via requestAnimationFrame, reducing redundant DOM reads and improving CPU efficiency when tokens arrive faster than the browser can paint. Commit
v0.8.6
[0.8.6] - 2026-03-01
Added
- 🖥️ Open Terminal integration. Users can now connect to Open Terminal instances to browse, read, and upload files directly in chat, with the terminal acting as an always-on tool. File navigation includes folder browsing, image and PDF previews, drag-and-drop uploads, directory creation, and file deletion. The current working directory is automatically injected into tool descriptions for context-aware commands. Commit, Commit, Commit
- 📄 Terminal file creation. Users can now create new empty files directly in the Open Terminal file browser, in addition to the existing folder creation functionality. Commit
- ✏️ Terminal file editing. Users can now edit text files directly in the Open Terminal file browser, with the ability to save changes back to the terminal. Commit
- 🛠️ Terminal file preview toolbar. The Open Terminal file browser now displays contextual toolbar buttons based on file type, including preview/source toggle for Markdown and CSV files, reset view for images, and improved editing controls for text files. Commit
- 🔄 Terminal file write refresh. The file browser now automatically refreshes when files are written or modified via the write_file or replace_file_content tools, eliminating the need to manually refresh. Commit
- 🛡️ Docker image SBOM attestation. Docker images now include a Software Bill of Materials (SBOM) for vulnerability scanning and supply chain security compliance. #21779, Commit
- 📡 Reporting-Endpoints security header. Administrators can now configure a Reporting-Endpoints header via the REPORTING_ENDPOINTS environment variable to receive CSP violation reports directly, aiding in security policy debugging and hardening. #21830
- 🎯 Action button priority sorting. Action buttons under assistant messages now appear in a consistent order based on the priority field from function Valves, allowing developers to control button placement. #21790
- 🏷️ Public/Private model filtering. The Admin Settings Model listing now displays Public/Private badges and includes filter options to easily view public or private models. #21732, #21797
- 👁️ Show/Hide all models bulk action. Administrators can now show or hide all models at once from the Admin Settings Models page Actions menu, making it faster to manage model visibility. Bulk actions now display a single toast notification on success for better user feedback. #21838, #21958
- 🔐 Individual user sharing control. Administrators can now disable individual user sharing via the USER_PERMISSIONS_ACCESS_GRANTS_ALLOW_USERS environment variable, allowing only group-based sharing when set to false. #21793, Commit, Commit
- 🔄 OAuth profile sync on login. Administrators can now enable automatic synchronization of user profile name and email from OAuth providers on login via the OAUTH_UPDATE_NAME_ON_LOGIN and OAUTH_UPDATE_EMAIL_ON_LOGIN environment variables. #21787, Commit
- 👥 Default group share permission. Administrators can now configure the default sharing permission for new groups via the DEFAULT_GROUP_SHARE_PERMISSION environment variable, controlling whether anyone, no one, or only members can share to new groups. Commit
- 💨 Streaming performance. Chat responses now render more efficiently during streaming, reducing CPU usage and improving responsiveness. Commit
- 🧮 Streaming message comparison. Chat message updates during streaming are now faster thanks to an optimization that skips expensive comparisons when content changes. #21884
- 🚀 Streaming scroll optimization. Chat auto-scroll during streaming is now more efficient by batching scroll operations via requestAnimationFrame, reducing unnecessary layout reflows when tokens arrive faster than the browser can paint. #21946
- 📋 Message cloning performance. Chat message cloning during streaming is now more efficient thanks to the use of structuredClone() instead of JSON.parse(JSON.stringify(...)). #21948
- 🎯 Faster code block rendering. Chat message updates during streaming are now faster. #22101
- 📊 Faster status history display. Chat message updates during streaming are now faster. #22103
- 🛠️ Faster tool result handling. Tool execution results are now handled more efficiently, improving streaming performance. #22104
- 💾 Faster model and file operations. Model selection, file preparation, and history saving are now faster. #22102
- 🛠️ Tool server advanced options toggle. Advanced OpenAPI configuration options in the tool server modal are now hidden by default behind a toggle, simplifying the interface for basic setups. The admin settings tab was also renamed from "Tools" to "Integrations" for clearer organization. Commit, Commit
- 🔧 Faster tool loading. Tool access control now skips an unnecessary database query when no tools are attached to the request, slightly improving performance. #21873
- ➗ Faster math rendering. Mathematical notation now renders more efficiently, improving responsiveness when displaying equations in chat. #21880
- 🏎️ Faster message list updates. The chat message list now rebuilds at most once per animation frame during streaming, reducing CPU overhead. #21885
- 📋 Faster message rendering. Chat message rendering is now more efficient during streaming. #22086
- 🗄️ Faster real-time chat updates. Chat responses now process faster with improved handling for concurrent users. #22087
- 📝 Faster status persistence. Only final status updates are now saved to the database during streaming, reducing unnecessary writes. #22085
- 🔄 Faster event matching. Event handling in the socket handler is now more efficient. Commit
- 🔀 General improvements. Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 Translation updates. Translations for German, Portuguese (Brazil), Simplified Chinese, Traditional Chinese, Catalan, and Spanish were enhanced and expanded.
Fixed
- 🗄️ Database migration execution. Database migrations now run correctly on startup, fixing a circular import issue that caused schema updates to fail silently. #21848, Commit
- 🔔 Notification HTML escaping. Notification messages now properly escape HTML content, matching the behavior in chat messages and ensuring consistent rendering across the interface. #21860, Commit
- 🛠️ Tool call JSON error handling. Chat no longer crashes when models generate malformed JSON in tool call arguments; instead, a descriptive error message is returned to the model for retry. #21984, Commit
- 🧠 Reasoning model KV cache preservation. Reasoning model thinking tags are no longer stored as HTML in the database, preserving KV cache efficiency for backends like llama.cpp and ensuring faster subseque...
v0.8.5
[0.8.5] - 2026-02-23
Added
- ⌨️ Voice dictation shortcut. Users can now toggle voice dictation using Cmd+Shift+L (or Ctrl+Shift+L on Windows/Linux), making it faster to start and stop dictation without clicking the microphone button.
Fixed
- 🚫 Model access KeyError fix. The /api/models endpoint no longer crashes with a 500 error when models have incomplete info metadata missing the user_id field (e.g. models using global default metadata).
- 🔄 Frontend initialization resilience. The app layout now gracefully handles individual API failures during initialization (getModels, getBanners, getTools, getUserSettings, setToolServers) instead of blocking the entire page load when any single call fails.
- 🛡️ Backend config null safety. Language detection during app initialization no longer crashes when the backend config fetch fails, preventing a secondary cause of infinite loading.