<!-- Source: https://docs.squirro.com/en/latest/getting/release/3-15/3.15.1-release-notes.html -->
# 3.15.1 Release Notes

Squirro 3.15.1 was released on January 26, 2026.

Learn more about the [Squirro Release Process](../squirro-release-process.md#getting-squirro-process).

> **Note for administrators**
>
> This release introduces important changes that may require adjustments to your existing setup. [Learn more](#breaking)

## What’s New

- **Technical preview** - OpenSearch, available as an alternative to Elasticsearch. That initial release is intended solely for testing and evaluation, and must not be used in production environments.
- **Technical preview** - OpenAI Code Interpreter, for secure code execution in a sandboxed environment. That initial release is intended solely for testing and evaluation, and must not be used in production environments.

## Improvements

### AI

- Skip the file upload tool when no files are attached to the conversation.
- Refined retriever tool description to improve the precision and relevance of agent searches.
- Include document metadata in event stream snippets for streaming chat responses.
- New default large language model set to GPT-5.2 for enhanced performance, accuracy, and responsiveness.
- Serialize `RequestTimeout` as Tuple as expected by the genai service API.
- `langchain-classic` package for backward compatibility with legacy chains.
- Error handling for invalid file objects with clear error messages.
- Warning triggered when tools are defined but ignored in passthrough mode.
- `agent_id` added to prompt schema.
- `waitForImage` added to the `DynamicImage` component for automatic retry when an image fails to load.
- Support for provider-specific extra arguments allowing advanced Bedrock configurations.
- AWS credential configuration supporting multiple authentication methods (explicit credentials, AWS profiles, session tokens, and AWS credential chain).
- Dual-mode chat history storage with database backend support.
- Intelligent container caching with file deduplication and LRU eviction.
- Lifecycle management added for artifacts (delete by project/conversation scope).
- Database-backed conversation storage for GenAI service chat history.
- `safety_identifier` introduced for OpenAI API calls to enable user-level tracking and abuse prevention.
- Automatically generate concise titles (5-7 words) for new conversations, based on the first user question.
- Conversation import/export endpoints for data migration.
- Standalone migration script tools/devops/genai_migrate_redis_to_db.py.
- AWS Bedrock support with two provider types, bedrock_converse using Converse API and bedrock_chat using InvokeModel API.
- Audit logging for conversation operations using `structlog`.
- Storage bucket configuration for GenAI artifacts with automatic setup.
- Artifact persistence with multiple storage backends.
- Artifact reference list in responses with download links and file sizes.
- `preserve_filename` configuration flag for opt-in filename preservation in file uploads.
- `/projects/<project_id>/arbitrary_prompt` endpoint added to GenAI proxy plugin for direct LLM prompt execution.
- Async-first architecture with proper error handling and retry logic.
- Converter module for translating between Redis and DB formats.
- Added field validator to automatically truncate conversation titles to 512 characters.

### Search

- Parse newly added editable chips and split them when needed.
- Switch to `search_after` pagination in `ActivityInsightsSource`.
- Extend query syntax with a multi-value (any of) match.
- Support for Point-in-Time and `search_after`.
- Enable NLP parsing and smart search for the search widget.
- Add `pagination_mode` to the SquirroClient scan.

### Platform

- Explicitly set a `none` string for a more visible project setting UI for the `reasoning_effort` parameter.
- Layer visibility builder in the dashboard editor migrated to React.
- Keep the split view open state while navigating between items in Item Detail.
- New projects now include the Semantic Search pipeline workflow by default. The `Default Dashboard` has been replaced by the `Explore Dashboard`, which correctly displays project items and provides an updated interface.
- Adjust the “Server Admin” terminology to “Workspace Admin” in Project Settings for instances with the Workspaces feature activated.
- Auto-refresh functionality for the data sources page. Administrators can deactivate it via the `frontend.userapp.show-sources-auto-refresh` server configuration key.
- Add a warning when the `preserve_filename` flag is set for the newsletter bucket.
- XSS sanitization for the email editor.

## Bug Fixes

- Dashboard query is highlighted in the item cards of the items widget.
- User cannot select a facet with a numerical value from the item card.
- Fix long loading in “from chunks” mode.
- Ensure proper closing of scan context.
- Editing the name of the collection, favorite, or search-results agent types does not update the agents dropdown.
- `llm_timeout` not being parsed properly from project settings.
- Reference search, document search and similar items query include dashboard query.
- Missing tool calls in conversation history for agentic workflows with multiple iterations.
- Paragraph citation in Chat not highlighted in the old reference format.
- Timeline widget not showing header.
- Date and time not displayed in the client timezone.
- Fixed the `arbitrary_prompt` endpoint by adding LLM configuration from project settings.
- Fixed quotes handling in the unanalyzed field search.
- Pass the `itemsCollectionsCollection` property to the `ItemDetail` component in the Chat widget, for the collections context.
- Lost text fragments in Dynamic UI components leading to incorrect highlighting of referenced text.
- When semantic search results contain a small amount of items, the frontend fetches the first 2 pages and shows loading indefinitely.
- Inline citations inside dynamic UI not opened in the item detail.
- Dashboard time selection not included in the chat context.
- Passthrough mode condition incorrectly handles the `CHAT_WITH_LLM` agent type.
- Query not clearing when changing dashboard programmatically via external navigation, preventing a clean dashboard state transition.

## Miscellaneous

- Upgraded LangChain libraries for improved performance and security.

## Known Issues

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

## Breaking Changes

- Email templates that make external requests to populate the template using the `h.requests_get` utility are no longer supported.
- `extended_plugin_options` was removed from the `DataSource` class.
- LangChain v1 removes support for classic chains like LLMChain and Chain base classes. Custom code using these deprecated classes must update imports from `langchain.*` to `langchain_classic.*`. See the [langchain-classic migration guide](https://docs.langchain.com/oss/python/releases/langchain-v1#langchain-classic).

## Installation and Upgrade

For new installations, find step-by-step instructions on the [Install and Manage Squirro with Ansible](../../install/ansible/index.md#ansible) page (recommended) and [Installing Squirro on Linux](../../install/linux.md#install-linux) pages.

To upgrade an existing installation, see the [Upgrading Squirro](../../install/upgrade.md#install-upgrade) page.
