Version 2.5.4#
Sherpa AI Server 2.5.4 has been released.
Release date: 22 October 2026.
1. Before updating#
Before updating, review the notes for all intermediate versions and follow their requirements. If the installed version is earlier than 2.5.0, agree on an upgrade path with support. For installations with the code interpreter, check kernel Landlock support and container settings before updating.
2. Home page: quick access to Chats and Assistants#
The new Home page appears after sign-in with links to accessible sections, recent Chats, and an overview of Assistants and prompt folders. Users can now open a recent Chat or choose an Assistant directly from the Home page to continue their work. New Users see a short introduction. The "How to get started" button opens it again. Cards and actions respect Role permissions and selected Object Folders.
The sidebar no longer limits pinned Assistants to five. Users can now arrange the Assistants they need with the "Move up" and "Move down" actions. The Home page retains the same order, keeping frequently used Assistants in familiar positions. Administrators can configure Home page cards through the client appearance file branding.json to suit their installation.
The workflow and access requirements are described in the Home page guide.
3. Model usage and tool calls#
The Home page now shows Model usage statistics for Chats and agent workflows. Users can select a period and view their own usage. Access to Account statistics also provides a breakdown by initiator. Frequently used tools are shown separately. This helps identify whose requests account for the usage and which tools are called most often.
Older requests and operations outside these scenarios are not fully recalculated. The interface marks incomplete data so it can be distinguished from the confirmed total for the selected period.
4. Processing Word documents and large PDFs#
The Documents screen and Chat attachments now support indexing Word 97–2003 .doc files. Uploaded documents in this older format can be processed without first saving them in another format. Unsupported files and conversion failures produce distinct errors, making it clearer what needs to be corrected before processing again.
Large PDF pages and images are now automatically scaled down before recognition while preserving proportions. This prepares these files for recognition without manually resizing their pages. If the limit is still exceeded after scaling, a specific error is shown.
On the Documents screen, the "Extension" column can now be narrowed to the table's standard minimum width. This leaves more space for other columns when reviewing files. See the Documents guide and guide to changing the indexing Model.
5. Selecting the embeddings API format#
On the Models screen, the local Model instance form for "Indexing" and "Multimodal" types now includes the "Embeddings API format" field. Administrators can select the format supported by the server they are connecting: OpenAI, vLLM, API v2, or Cohere. The selected value is retained after saving and reopening the form. This makes it possible to configure the embedding server connection through the form and check which format will be used. See the guide to changing the indexing Model.
6. Permissions for tags and agent actions#
Role settings now provide separate permissions to create, read, change, and delete Document tags. Administrators can determine which tag actions are allowed independently. During an update, existing access is migrated from Document permissions, so it does not need to be assigned again solely because the permissions were separated.
Agent actions in the sidebar are now hidden when the required permissions are missing. An open menu closes when permissions change. Users see the actions allowed by their updated permissions rather than an outdated set of menu items.
7. Installing with external Models#
The installer now offers an option to use external LLM and Embedding services. Administrators enter service addresses, specify HTTP or HTTPS for the LLM, and select a Model. The installer saves these settings without downloading local images and Models. Updates retain the chosen mode, so external services do not need to be replaced with local ones to update the installation. Local GPU and CPU options remain available. See the installation guide.
When using an external indexing Model, administrators can now set EMBED_LOCAL_MODEL_ENABLED=false in the environment configuration. The container must be recreated after this change. This disables loading the local Model inside Embed when it is not needed for the selected external Model. The aiserver-embed container is still required for Document processing and search. The local Model remains enabled by default. See the guide to changing the indexing Model.
8. Sherpa AI Server backup retention and update checks#
The Sherpa AI Server update script can now automatically delete older backups of server data and settings. A backup from a single update includes configuration files, including .env and docker-compose.yml, installation files, a copy of the PostgreSQL database, and archives of Docker volumes containing data. These files are needed to restore server data and settings if an update fails.
Administrators can now specify how many recent complete backups to retain. Older backups are deleted only after a successful update and a check that the new backup is complete. All backups are retained by default. Before updating, administrators must verify that the backup of server data and settings is complete.
Installed-server diagnostics have also been added to check container status, PostgreSQL availability, free disk space, and the API response. Administrators can enable a prompt to run diagnostics after a successful update with SHERPA_DIAGNOSTICS_OFFER=true to check the update result. In external Embedding mode, diagnostics skip the check for that service's local container. See the update guide for backup retention settings and diagnostic steps.
9. Isolating code interpreter files#
During Python execution, code interpreter session files are now isolated from the application's shared volume. The internal API requires a separate service token, and a Landlock system policy restricts file access. The interpreter does not start when Landlock is unavailable: it does not fall back to execution without protection.
Before updating, administrators must check kernel compatibility and container configuration against the code interpreter file isolation guide. This allows the environment to be prepared in advance so the interpreter can run with the required protection.
Vulnerable server component dependencies have also been updated, and shared private keys have been removed from the distribution. Installing the updated distribution no longer places these keys on the server from its current files.
10. Resuming deletion and indexing settings changes#
On the Documents screen, deleting a folder now correctly removes its nested folders, files, and related indexing data. If cleanup is interrupted, deleting the same folder again resumes the unfinished operation. Remaining nested objects do not need to be deleted individually.
During an unfinished indexing settings transition, saved fragments and a resume action are now shown. The transition can be continued after the cause of the failure has been resolved. Recognition settings are saved separately from indexing settings, so a partial failure does not replace confirmed values. This helps complete the settings change while retaining the ability to check the configuration already saved.
11. Indexing files in parallel#
Conflicts during simultaneous indexing of files with the same name and during the first indexing in a new Account have been fixed. Users can process these files in parallel without those errors and deadlocks. Returning to an earlier embedding dimension now uses current indexing settings, preventing the switch from using an outdated configuration.
12. Errors and repeated actions in Chat#
A bug in an agent workflow using an external Model caused the Agent to repeat a Python call that the system rejected because it contained no executable code, without returning an answer. This has been fixed. After two such attempts, the run ends with a clear error. Users can see why it stopped instead of waiting indefinitely for an answer.
A second transcription in the same Chat is now tracked as a new run, allowing Users to follow the current recognition attempt. If the answer stream is interrupted or the Model returns an empty response, the run is no longer marked successful without a message. The User sees an error and can try again. See the Chat guide.