<!-- Source: https://docs.squirro.com/en/latest/getting/release/3-10/squirro-3.10.x-release-notes/3.10.4-release-notes.html -->
# 3.10.4 - Release Notes

Squirro 3.10.4 was released June 20, 2024.

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

## What’s New

- Upgraded the platform to Python 3.11. All Python-based microservices now run on Python 3.11, and all Squirro-related Python dependencies are located in the `/opt/squirro/virtualenv311/` virtual environment (can be activated using `squirro_activate` as before). Please note that Python 3.11 support applies to RHEL 8 (and derivatives) deployments.
- Added support for agent-driven LLM endpoints.
- Added a Redo OCR configuration option to the PDF OCR pipeline step.

## Improvements

- Changed the default value for boosting popular items from the top 100 to the top 30.
- Enabled lazy loading for “Show all labels” mode for `LabelsWidget`.
- Added an option to hide empty placeholder images in non-grid modes for `ItemWidget`.
- Upgraded many Python dependencies to newer or the latest versions.
- Limited the Crawler plugin to load 1,000 pages from a website to prevent overloading while indexing large sites. This limit can be adjusted in the data source configuration.
- Added a new `response_format` option to the API for running ML workflows. This option allows changing the response format. Supported formats include `standard` (current format with values wrapped in a list) and `plain` (response without wrapping).

## Bug Fixes

- Fixed an issue where older strategies were not being parsed by our Pydantic models.
- Added the ability to handle missing `abstract` fields when querying items to generate starter questions.
- Correctly cast the `distinct-sub-items` flag as a boolean in the reindex script.
- Fixed an issue where numbers were being removed when tokenizing a query, e.g., `401k` became `k`.
- Fixed mapping for custom summaries in PDFs.
- Added custom date formatting inside item details.
- Return an error status when the PDF OCR pipeline step raises an exception.
- Fixed a 404 error in reference screen inline search when dashboard filters and similar items are mutually exclusive.
- Renamed the `dashboards.communityWizard` column to `dashboards.community_wizard` to support PostgreSQL.

## Breaking Changes

- As part of the Python 3.11 upgrade , the `autogluon` packages were upgraded from `v0.7.0` to `v1.1.0` because support for Python 3.11 was added in `v1.0.0` of the library. AutoGluon does not support loading models trained on older versions of the library. Therefore, re-training any AI Studio models that were trained with AutoGluon is necessary to use those models again.
- Removed the `cache_document` and `document_cache_expiration` configurations from the NLP steps; they no longer have any effect.
- Changed the response shape of the `/parse` endpoint so that it no longer wraps values in a list. This affects the usage of Query Contexts in dashboard queries. A migration script is provided to update the most common pattern used in Hybrid Search dashboards (`queryContext?.parse?.type?.length > 0 && queryContext?.parse?.type[0]`) to the new format (`queryContext?.parse?.type`). Other uses of the Query Context in dashboard/widget queries must be manually migrated.

## Installation and Upgrade

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

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