3.16.6 LTS Release Notes#

Squirro 3.16.6 LTS was released on August 24, 2026.

Learn more about the Squirro Release Process page. When upgrading between LTS releases, see the Upgrading Squirro page for important information about the sequential upgrade path.

Feature development roadmap

Squirro plans to stop adding new features to the classic Squirro interface by the end of 2026, with new feature development continuing in Project Neo. All existing features and functionalities continue to be supported for at least two years, following the long-term support release process.

See the Squirro Release Process and Project Neo pages.

Notes for administrators

  • Squirro 3.16.6 is a long-term support release with a two-year support window, consolidating all changes from the 3.16.x biweekly release series.

  • Oracle Database and the Squirro Cluster Service (sqclusterd) are no longer supported. Plan for both changes before upgrading from the 3.15.x series.

  • Python 3.9 support for the Squirro Toolbox and the SquirroClient SDK is removed in this release, as announced in the 3.15.5 LTS release notes. Upgrade to Python 3.10 or 3.11. See the Install In a Python Environment and SquirroClient Installation pages.

  • End of support for installing Squirro on Linux manually. Use Ansible for all installations and upgrades. See the Install and Manage Squirro with Ansible page.

  • This release introduces important changes that may require adjustments to your existing setup. Learn more

What’s New#

  • Native Anthropic model support

    Squirro Chat calls the Anthropic API directly, with a dedicated chat model configuration in Studio covering the model, API key, and optional base URL.

  • Model Context Protocol aggregator server

    Exposes tools from installed Studio plugins to MCP-compatible clients, with project-scoped access and permission checks.

  • Home page and project selector for Workspaces

    Deployments that use Workspaces gain a home page listing every accessible workspace and project, with search, role filters, and pinned projects, plus a project selector with Pinned and All tabs, per-user pinning, and search across project and workspace names.

  • Containerized deployment management with systemd

    Containerized deployments can be managed with standard systemctl commands through a squirro.service systemd unit.

Improvements#

AI#

  • AWS Bedrock Guardrails configurable via genai.sqgpt.settings using the guardrail_config parameter on Bedrock chat model settings.

  • Anthropic chat model configuration in Studio, with a provider-neutral api_key field and only the parameters the Anthropic API supports.

  • Embedded Chat Widget option in the Enable Speech to Text setting, extending speech-to-text to the embedded chat widget.

  • Maximum Questions and Maximum Concurrent Questions settings in the Batch Q&A widget.

  • Rolling-window answer generation in Batch Q&A, starting the next queued question when a slot frees up, with a Queued state for waiting questions.

  • frontend.sqgpt.max-upload-files project configuration to set the maximum number of files a user can attach to the Squirro Chat widget upload.

  • Open References in a New Tab option in the Chat widget, opening a chat answer reference in the Document Details in a new browser tab.

  • File type check when uploading files for Chat with Document.

Platform#

  • Elasticsearch, Filebeat, and OpenSearch upgraded for improved performance and security.

  • Faster responses on dashboard queries that use only facet filters.

  • Additional detector in the privacy layer for more accurate PII masking.

  • Edit and delete actions for widgets, themes, and dashboard loaders visible to Cluster Users and Workspace Admins on instances that use Workspaces.

  • Space selector and navbar actions available on the deployment-scoped Workspaces and Cluster administration spaces.

  • Activity logs split per workspace on instances that use Workspaces, with significantly faster timestamp parsing.

  • Optional pip_index_url and pip_extra_index_url settings for the External Dependency Manager, both turned off by default.

  • Expired temporary PDF chunk indices swept when a new hourly index is created, including indices already left behind by earlier releases.

  • Retention period for temporary PDF chunk indices managed by the platform, and the unused [pdf_chunks] ttl_hours setting removed.

Bug Fixes#

  • Content conversion failing for files saved with non-standard character encoding.

  • Long documents failing to index with a ParagraphIndexOperationError when using a Semantic Search pipeline or a pipeline that includes the Paragraph Embedding step.

  • Paragraph index updates timing out on large documents.

  • Language-specific fields (body, summary, title, generated_summary) containing byte values not indexed correctly.

  • A single invalid link in an item body or link field preventing the entire item from being indexed.

  • Index lifecycle policies not installed on any 3.15 or later cluster, leaving indices without the retention policy they referenced.

  • Temporary PDF chunk indices, created for every PDF attached in chat, never deleted.

  • topic, filtering, and machinelearning services restarting repeatedly on OpenSearch when an existing index management policy was reinstalled.

  • Masked content not correctly restored by the privacy layer.

  • Agent responses failing with a bad request error when PII masking was turned on.

  • Ingester batches occasionally dropped during retry when the queue folder was removed before items could be moved in.

  • Ingester failing with an error when retrying a failed batch whose data source had been deleted.

  • Ingestion batches with invalid data retried endlessly instead of being marked as failed.

  • Ingestion pipeline failing validation in the Rhein data loader plugin when the lastModifiedDate or createdDate facet was mapped to a Squirro system field.

  • Rhein data loader plugin failing on records that did not supply a datetime facet configured with an empty default value.

  • Non-extractable file types not handled in the SharePoint data loader plugin.

  • Dataloader log rotation not working on systems with SELinux in enforcing mode.

  • Data loaders stopping permanently after a PostgreSQL connection error in the data source service.

  • Data loader actions such as reset, run now, and rescheduling intermittently not persisting to the source configuration.

  • “No available connectors” message when creating a new data source in a new containerized deployment.

  • topic service failing to start in fully containerized deployments with limited or no outbound internet access.

  • Nginx configuration becoming invalid, or Nginx failing to reload, after upgrading from a version earlier than 3.16.3.

  • Technical Preview - Containerized deployments not restarting automatically after a host reboot.

  • Technical Preview - OpenSearch container image missing from the registry.

  • API access token missing in the interface for non-administrator cluster roles such as Cluster User and Workspace Admin.

  • Validation errors on every keystroke when editing genai.sqgpt.settings in the JsonForms mode of the legacy Project Configuration page.

  • Toggle between plain JSON and JsonForms editing not responding in the Studio property configuration.

  • Unsaved changes in Project Settings Properties discarded silently when navigating away.

  • Renaming a user group replacing the group edit page with a widget rendering failure warning.

  • Widgets losing a column each time they were resized in the Dashboard Editor.

  • Editing a favorite query from its chip in the search bar replacing the chip label with the raw query text.

  • Open in Explore on a data source showing every item in the project instead of the items of that source.

  • Monitor link in the pipeline re-run notification applying a malformed query that matched nothing.

  • Community wizard dialog not dismissible after navigating back from a Cognitive Search project opened from the Workspaces home page.

  • Document viewer opened from a chat reference showing a relative time until it was closed and reopened.

  • Open search in a new tab in a chat answer opening a hidden dashboard rather than the global search dashboard.

  • Reference linking to Squirro items failing for some special item identifier formats.

  • Python SDK document upload ignoring the specified pipeline workflow ID and creating a new pipeline instead.

  • Chat model creation failing with the Google provider under certain timeout configurations.

  • Chat answers not reliably produced in the language of the question.

  • Machine Learning service answering 200 OK with a null body when inference failed or a workflow name or type was invalid.

  • AutoML classifier training failing when the ground truth contained few labeled items.

Known Issues#

  • In specific scenarios, cross-lingual information retrieval for semantic search may deliver lower-than-expected quality (SQ-28171).

Breaking Changes#

3.16.0

  • Oracle Database is no longer supported. Squirro strongly recommends migrating to PostgreSQL. For guidance on migration options, visit the Squirro Support website and submit a technical support request.

3.16.2

  • Removal of the Squirro Cluster Service (sqclusterd) and all related logic, configuration (cluster.ini, the endpoint_discovery and db_endpoint_discovery settings), monitoring integration, and packaging. Multi-node deployments that relied on the cluster service for MySQL and Redis endpoint discovery and replication management are no longer supported.

3.16.5

  • Redis is upgraded in the redis-server package, which introduces a format change. The upgrade aborts if the redis-server RPM package cannot create an RDB snapshot at /var/lib/redis/dump.rdb, to prevent loss of data. Make sure a snapshot exists if the upgrade fails.

3.16.6

Project Neo#

Technical Preview | Learn more

Improvements#

  • Memory that records durable facts about how you work in a project and applies them in later conversations.

  • Memory settings page listing everything the assistant holds about you in plain language.

  • Memory controls to correct an entry, delete entries with a stated recovery window, erase them permanently, download a copy, or turn memory off.

  • Memories private to each person, never leaving the project and never readable or writable by a colleague, administrator, or operator.

  • Memory activity reported in the conversation, naming what the assistant recalled, remembered, updated, merged, or forgot, and the reason for a refused write.

  • Memory settings shown only in deployments where memory is available.

  • Incognito conversations, started from the new-chat screen in projects that offer them, kept out of your history and out of memory.

  • Incognito disclosure stated in full before anything is typed, and repeated in a banner at the top of the transcript.

  • Files attached to an incognito conversation still saved to your library, stated on the attach menu and on the drag-and-drop overlay.

  • An incognito conversation remains visible to your administrator.

  • Scheduled tasks that run an instruction on a recurring daily, weekly, monthly, or annual schedule, each run opening as a new conversation.

  • Task control from the tasks interface, including running a task on demand, browsing run history, and retrying or continuing a run.

  • Running a scheduled task on demand and reviewing its recent runs from within a conversation.

  • Per-task approval rules to auto-approve, hold, block, or hide each tool the assistant may use while a task runs unattended.

  • Conversation filtering by origin, separating conversations you started from those a task created.

  • Conversations opened by a scheduled task titled with the task name.

  • Task management from the genai command-line tool.

  • Per-agent governance of external (MCP) tools, restricting the tools an agent may use and requiring human approval for a tool.

  • A connected external (MCP) server scoped to given agents.

  • Tool visibility and human approval as independent controls, with the availability of a tool re-checked when it is called.

  • AWS Bedrock AgentCore as an alternative code interpreter backend, selected per project, with OpenAI Containers remaining the default.

  • Custom AgentCore interpreters, which can grant the sandbox network egress, restricted to server-role administrators.

  • Files written by a code execution captured and delivered as downloadable artifacts on both backends.

  • Code interpreter progress reported while the conversation streams.

  • Code interpreter sandboxes released as soon as the turn that used them ends, including cancelled turns.

  • Split document retriever, now the default, with per-project retrieval engine, result count, and token budget.

  • Automatic context-window management, keeping each turn within the model context window, with configurable per-project and per-model limits.

  • Graceful turn completion that preserves the partial answer when a turn reaches its processing limit.

  • Improved grounding on complex and research-style questions.

  • Faster and more reliable knowledge graph queries, with HTTP Basic authentication support for the Knowledge Graph (SPARQL) tool.

  • Image input support in chat, with vision-capable agents answering questions about uploaded images.

  • Reasoning-class OpenAI models supported through the OpenAI Responses API, used by default.

  • Prompt caching for Anthropic models, reducing cost and time to first response.

  • Reasoning summaries streaming back to the client on Anthropic models.

  • Conversation initialization options that shape how a conversation begins.

  • Time-aware assistant, grounded in the current date and time and the conversation start time.

  • Chat API support for inline text actions on a passage quoted from an earlier reply.

  • Single-shot chat turns that run without tools or persona instructions.

  • Streaming overhead on long answers reduced from quadratic to linear.

  • Operational metrics for queue depth and wait time, load shedding, run duration, and capacity, exported through optional Prometheus and OpenTelemetry endpoints.

  • Metric, span, and attribute names aligned with OpenTelemetry semantic conventions, with latency reported in seconds.

  • neo-ui command-line tool improvements, including non-interactive bundle creation, local-package scaffolding, and build and deploy preflight checks.

  • About page in Settings reporting the product and platform build, with one-click copy of the full details for a support ticket.

  • Settings listing only pages that do something, with the empty Profile and Preferences placeholders removed.

  • Assistants grouped by who opens the conversation, with assistants that speak first listed under Guided sessions.

  • Assistant picker shown as unavailable, with an explanation, when a chat runs the standard project setup or its assistant is gone.

  • Composer stating which assistant is answering once a chat has started.

  • Each connector in the composer switched on or off individually for the turn.

  • Assistant stating why a request cannot be completed, such as a conversation already busy or an expired approval request.

  • WebP image and legacy .xls spreadsheet uploads supported, with WebP images sent to the model.

  • Document selection carried on a typed retrieval field in the Chat API, with a malformed selection refused and reported to the caller.

  • Every Chat API error answered in a single envelope, with one field for the message and one for the code.

  • X-Content-Type-Options: nosniff sent on file and artifact downloads.

Bug Fixes#

  • Conversations with reasoning turned on failing part-way through a tool-using answer on the latest Claude models.

  • An interrupted and resumed human-in-the-loop tool call splitting into a stale pending block and a completed one.

  • Resuming an interrupted reply that has alternatives failing part-way through streaming.

  • Regenerating a reply mixing up the tool calls of the alternatives.

  • Conversation start time resetting on every turn.

  • Project catalog breaking when a resource or assistant had no title.

  • Spurious database error traces from background maintenance jobs on every scheduled run.

  • Background maintenance jobs failing silently on database errors, and occasionally skipping a scheduled run.

  • Automatic conversation titles not generated, and a title chosen by the user overwritten while one was being generated.

  • Selected documents not restricting the chat, leaving the assistant searching the entire project corpus.

  • Regenerating or editing a message losing the document selection of the original message.

  • Document chips vanishing from a question when the transcript was rebuilt before the conversation tree resolved.

  • Regenerating or editing a message through an out-of-date conversation tree truncating the conversation to a single empty message.

  • Starting a new chat leaving the assistant of the previous chat selected.

  • Opening a chat showing whichever assistant was last selected elsewhere, and applying the settings of that assistant.

  • A message that failed to send leaving the composer fixed to an assistant the chat never used.

  • Uploaded TIFF images accepted and listed as an attachment but never delivered to the model.

  • One unusable image path failing an entire image request, discarding the images resolved alongside it.

  • .webp, .xlsx, .docx, and .pptx uploads misidentified, with Office documents served as application/octet-stream.

  • Opening a document in the dashboard of a custom bundle failing with a PDF viewer configuration conflict.

  • neo-ui dev failing to serve the PDF viewer assets, reported as a chunk loading failure in a development session.

API Changes#

  • error_code moves from the top level of a Chat API error body to error.error_code, and the 503 {"reason": "at_capacity"} body is replaced by the standard error envelope. Update any client that reads either field.

  • An unhandled ValueError in the Chat API answers 500, where it previously answered 400 with the raw exception text. Update any client that branches on the status code or parses that message.

  • .tiff is removed from the default upload allow-list for chat attachments. Existing TIFF files remain readable and downloadable, and only new uploads are refused. Projects that override allowed_extensions are unaffected.

Installation and Upgrade#

For new installations, find step-by-step instructions on the Install and Manage Squirro with Ansible page.

To upgrade an existing installation, see the Upgrading Squirro page.