3.17.4 Release Notes#
Squirro 3.17.4 was released on October 29, 2026.
Learn more about the Squirro Release Process.
Notes for administrators
RPM-based deployments on EL9 need version 9.8 or later of the operating system, for Python 3.14.
The platform moves to Python 3.14 and SQLAlchemy 2.0. Check custom pipelets, data loader plugins, Studio plugins, and GenAI plugins before upgrading.
This release introduces important changes that may require adjustments to your existing setup. Learn more
Release summary
Squirro Neo projects can be set up to hand work to several agents that run in parallel, while users keep writing and follow the progress of each agent in the conversation.
Neo answers can include interactive widgets, such as tables and charts, that users can copy or export, and every answer is labeled as AI generated.
Neo has a redesigned message box, and users can quote passages from earlier answers, pin conversations, filter search results by date and number ranges, and import saved memories.
The platform moves to Python 3.14 with updated libraries, and to a new version of the document conversion engine.
Some customers need to update their operating system before the upgrade, and customers with custom code, machine learning models, document conversion settings, or Neo configurations need to update them as part of the upgrade.
What’s New#
Agents in Neo conversations
In projects set to the
correspondencedelegation model, Neo can hand work to agents that run in parallel. Each agent appears as a card with its status, the conversation lists its agents in the right sidebar, and the transcript of each agent opens in the side panel. Users can mention an agent with@, stop one agent or all of them, keep writing while agents work, and answer their approval requests on cards above the message box.Interactive widgets in Neo answers
Neo answers can show widgets such as tables, charts, and comparisons. Each widget has a text fallback, used when an answer is copied or exported, and most widgets have an export menu with Copy as image, Download PNG, and Download PDF. Custom Neo bundles can add their own widgets.
Python 3.14
The platform runs on Python 3.14, in RPM-based deployments on EL8 and EL9 and in containerized deployments, with updated dependencies such as NumPy 2, pandas 2.3, scikit-learn 1.7, spaCy 3.8, and Pydantic 2.12. AutoML is experimental on Python 3.14.
Improvements#
Neo Tasks#
Neo task approval cards showing what a change would save, including each changed field before and after, and the next runs.
Messages sent while a Neo scheduled task runs held until the run ends, and task turns read-only.
Neo Interface#
Redesigned Neo message box, with one menu for uploading files and choosing templates, capabilities, knowledge graphs, and connectors.
Assistants shown as cards on the new chat screen of Neo.
Quote action in the Neo text selection menu, sending a passage with an optional instruction, or adding it to the message box.
Up to 20 quotes per Neo message, shown as tiles in the message box and in sent messages, and editable when a question is edited.
Pinned Neo conversations, with Pin and Unpin in the conversation menus and a collapsible Pinned group in the sidebar.
Chat bar above Neo conversations on desktop, showing the conversation title with options to pin, rename, export, or delete the conversation.
Neo settings grouped into Account and This project sections, with a section switcher on phones and a full-screen option.
API access section in Neo settings, showing, copying, and renewing the personal token for the Neo CLI and SDK.
Memory import in Neo settings, from a file exported from Neo, listing the entries that could not be imported.
Collapsible Tasks group in the Neo sidebar, with a badge counting tasks with unread or failed runs while collapsed.
Recent group of the Neo sidebar renamed Recent chats, with the Chats header removed and Delete all kept in the Chat data settings.
Date range and number range filters in Neo search, for date, integer, and float labels, with geo-point labels no longer offered as filters.
Finished groups of Neo steps folded into a one-line summary, with compact step rows and a live status while steps run.
AI generated label on every Neo answer, replacing the Response details icon, and in the Explain and Translate panels.
AI-generated marking in the document properties of Neo tables exported to Excel.
Progress indicator and Cancel option for Export all chats in Neo settings.
Export as JSON in the Neo conversation menu offered only to project administrators with admin debug tools turned on.
Export all chats limited to the questions, answers, and provenance of each conversation, except for project administrators with admin debug tools turned on.
Copy answer keeping the Markdown formatting of Neo answers.
Formatted headings, lists, and tables for HTML documents in the Neo side panel and full-screen viewer, and wrapped plain-text documents.
Interrupted Neo answer streams resuming where they stopped.
Regenerate offered on finished Neo answers, including answers that stopped short or were written from the reports of agents.
Reason shown when a Neo turn or agent ends short, such as running out of steps or time, or an approval that nobody gave.
Answer duration in the Response details of Neo covering the work of the agents.
landingoption in thenavfield of a Neo bundle manifest, choosing the page Neo opens on.REDIS_AUTHsetting for the Neo session store, using an IAM role for Amazon ElastiCache or, experimentally, Microsoft Entra ID for Azure Cache for Redis.Security hardening of sign-in, session, and CSRF handling in the Neo web client server.
Security hardening of how Neo displays source links and conversation titles.
Startup warning when Neo single sign-on is set up without
FE_URLorSSO_DOMAINS, or withSSO_DOMAINSnot listing theFE_URLhost.
Neo Agent Configuration#
Per-graph switches for Neo knowledge graphs,
source.knowledge_graph.graphs.<id>.enabled, scoping a conversation to particular graphs.Default Neo knowledge graph following what is in scope, falling back to the next default when the preferred graph is switched off.
studio_mcp.toolsrules on Neo projects and agents, controlling which Studio plugin tools an agent sees and refusing calls to the others.Neo configuration deployable before its secrets exist, with a deploy warning for each missing
auth.secrethandle andcredential_missingon the affected model’s turns.Keyless Microsoft Entra ID authentication for Neo Azure models, with
auth: {type: entra_id}.genai lintwarnings for knowledge graphs locked out of scope and unworkable Studio tool rules, and notes for models or knowledge graphs withoutauth.Lint advisories printed by
genai deploybefore it deploys.--as-delegateoption ofgenai explain, showing an agent as it runs when delegated to.in use:line ingenai explain, naming the default knowledge graph a turn actually uses.
Neo Core Library#
localeandstringsoptions onExportDocument, and Arabic support inexportAsPDFandexportAsDocxof@squirro/neo-core/export.CommonMark backslash escapes resolved by the DOCX converter in
@squirro/neo-core/export/markdown-to-docx.Behavior changes of the chat components recorded in the
CHANGELOG.mdof@squirro/neo-core.onCloseAutoFocusoption onConfirmationDialog, andtooltipSideoption onTruncatedText.
Neo SDK#
@squirro/neo-sdkpublished on npm, with a chat proxy that runs on plain Node.js.Neo SDK reference split into pages shipped with the package, with a short README as the npm landing page.
Security hardening of token renewal in the Neo SDK proxy.
Squirro Interface#
Embedded dashboards on deployments without single sign-on authenticating with a short-lived access token handed over by the parent page, with
?token=embeds unchanged.
Platform#
Neo assistant starting work without writing a todo list first, and no longer streaming
output_block.todo_list@v1blocks.Stronger protection of the Neo assistant against prompt injection through the content it reads.
quoted_selectionsonPOST /chatof the Neo API, with up to 20 quoted passages per message, each with an optional instruction.too_many_quotes,prompt_too_long, andempty_messageerrors on the Neo chat API, with prompts limited to 100,000 characters including quoted passages._importendpoint of the Neo memory API, reading back a file from_exportand listing each entry it could not import.Per-user pinning of Neo conversations, with
pinnedon the conversationPATCHrequest and as a filter of the conversation list.histogramaggregation for integer and float labels in the items query, with a numericinterval.SQ_GENAI_V1_BUNDLED_MODELS_PATHsetting, replacing the bundled Neo models with theModelresources of a directory, for projects seeded or reseeded after it is set.entra_client_idoption in the[db]and[redis]sections, authenticating to PostgreSQL and Redis as a user-assigned Microsoft Entra identity.Warning in the service logs, naming both IDs, when the Redis
usernameis not the object ID of the Microsoft Entra identity.Authorization: Beareraccess tokens accepted by the frontend and Studio plugins, without creating a session.Machine-readable
codein 401 and 403 responses of the frontend, and a 503 error when the user service is unreachable.Apache Tika 4.1.0 for content conversion, replacing Tika 3.2.3.
SQLAlchemy 2.0 across the platform, the data loader, and the containers.
Pipelet code compiled once per upload, speeding up pipelet runs.
[pipeline] pdf_ocr_temp_directorysetting, giving the PDF OCR step a dedicated temporary storage location.ignore_ocr_errorsoption of the PDF OCR step, reporting OCR failures as item errors when set tofalse.Interrupted one-time data source loads retried after 30 minutes, within the consecutive error limit.
Next retry time of failed or interrupted data source loads reported in the service logs.
Empty ingestion batches, and damaged batches without items, moved to the failed directory unchanged, listed with the reason, and not retried.
hide_all_on_erroroption of the Microsoft and RheinInsights ACL filters, on by default, returning no documents when the sources cannot be looked up.Stronger Privacy Layer masking, covering every detected character and merging overlapping detections.
Security updates of bundled libraries, including PyMuPDF, Pillow, certifi, and cryptography.
Security hardening of machine learning workflow uploads.
Containerized Deployments#
Technical Preview - Neo web client image of containerized deployments based on Amazon Linux 2023.
Bug Fixes#
Neo Tasks#
Neo task instructions of only whitespace accepted, then failing every run.
Tasks page showing “Run in progress” in place of the transcript after each turn of a running task.
Neo task created offline saved to another project after reconnecting.
Neo task runs stopped by a user shown as failures.
Neo Interface#
Neo Stop failing without a message when the answer could not be stopped.
Skip on Neo approval cards rejecting the tool call without saying so.
Neo approval answered on another tab or device staying on screen.
Neo answer resumed after an approval opening empty, or losing its steps after a reload.
Step that failed before a Neo tool approval shown as completed after the resume, and failed agents shown as complete.
Steps of a reloaded Neo conversation all shown as ending when the page loaded.
Neo answer that could not be streamed whole shown as an empty finished answer.
Follow-up sent while scrolled up in a long Neo conversation staying off screen.
Draft typed in a new Neo chat cleared when the conversation list finished loading.
Neo project selector retrying forever, with no error, when the project list failed to load.
Enter in the search field of the Neo project picker selecting the current project.
Tasks, files, saved searches, filters, and chat data staying on the previous project after a deep link or a project switch in Neo.
Neo memory actions and exports acting on another project after a project switch, and memory errors showing developer text.
Neo template saved while offline landing in another project after reconnecting, and partly saved template imports reported as successful.
Failed or offline template deletes in Neo looking successful.
Deleting conversations or disconnecting an MCP server while offline in Neo spinning forever, then running without notice on reconnect.
Neo requests failing once after the CSRF token of the session expired.
First incognito message in Neo staying on the welcome screen until the conversation appeared.
Text selection and the scroll position of code blocks and tables lost while a Neo answer streamed.
Pasting a screenshot over selected text in the Neo message box deleting that text.
Neo turn-failure messages always in English, failed resumes showing no reason until a reload, and setup failures leaving an empty, frozen answer.
Neo agent cards reading “Processing subagent…” or an untranslated “Processing…”.
Plain-text emails losing their line breaks in the Neo side panel,
&shown in search snippets, and search highlights hard to see in dark mode.Long source links in Neo answers running past the edge of the message.
Neo search results stopping at a false end of the list after the window regained focus or the connection returned.
Superseded Neo searches running to the end.
Neo opening on a page hidden from the sidebar, or on a landing page the user cannot see.
Date picker in Neo, including the task schedule, not showing the selected day.
Escape in the Categories suggestions of the Neo template form closing the form and discarding the input.
Neo template form validation errors always shown in English.
Arabic text unreadable in Neo PDF exports and laid out left to right in Word exports.
Lines of Neo PDF exports garbled by a single character the PDF font cannot print.
Tables in Neo PDF exports overlapping the following line or the page footer, and Word export table columns squeezed in macOS Quick Look.
DOCX exports of Neo conversations containing links with internal item IDs and cited passages.
Keyboard, screen reader, and theming issues in Neo, including focus not moving into the phone navigation menu and unannounced template form errors.
Neo Agent Configuration#
MCPandTraitDimensionIDs with hyphens or uppercase letters refused in Neo configuration.Switches turned off for a Neo turn coming back for the agents it delegates to.
Knowledge graph retrieval switched off for a Neo turn still running when the knowledge graph skill was loaded earlier in the conversation.
Per-turn values of the wrong type getting past a locked Neo setting.
Neo configuration values of the wrong shape crashing a deploy or a turn with a 500 error.
Locked Neo settings not shown as locked in the setting pickers.
Bundled Neo configuration override that fails to read or deploy taking seeded projects down.
Refused
genai reseednot saying why, and thegenaiCLI printing a Pydantic warning aboutmodel_nameat every start.
Neo UI CLI#
@squirro/neo-uireleases depending on the previous@squirro/neo-corerelease.neo-ui devproxy failing with a 502 error whenSQUIRRO_API_URLis an IPv6 address.
Neo Core Library#
buildFacetFiltersearching the value as text instead of filtering on the field.luceneTermproducing broken queries for empty values, values ending in a backslash, and values containing braces.createItemsDataSourceignoring thefiltersandsortofItemsQuery.ItemsListignoringonExternalLinkClick.useMessageBlockslooping with “Maximum update depth exceeded” for a message outside the selected conversation.
Neo SDK#
Neo SDK package missing the license notices of bundled third-party code.
Neo SDK chat proxy reporting a stalled connection to an IPv6
squirroUrlas a DNS timeout.
Squirro Interface#
App staying blank when opened over plain HTTP from an address other than
localhost.Clicking the source hostname on an item card also opening Document Details.
Boolean operator dropdown in search not closing when clicking outside it.
Widgets that need the current user, such as the results list, failing in embedded dashboards.
Storage URLs for PDFs and downloads carrying
?token=, breaking presigned S3 URLs.Excel export link in embedded dashboards exposing a link without credentials to right-click and middle-click.
Squirro Chat Widget#
Stopping a Chat answer replacing the text already streamed with “(interrupted)”.
First message in embedded chat after an idle period failing because the access token had expired.
Platform#
Neo conversations whose turn history loops back on itself hanging when opened, shared, regenerated, or switched to another branch.
Neo messages sent with attachments and no text missing from the conversation, and edits of them dropping the previous turn.
Neo turns failing during setup losing their question, quotes, and attachments.
Neo memory treating quoted passages as the words of the user.
Tool calls after the first step of a Neo answer shown only once their step ended, and tool calls with unparsable arguments staying pending.
Restoring several hundred removed Neo memories at once failing with a 500 error.
Moving an inferred or imported Neo memory to another category making it rank like a stated one.
Neo conversation
PATCHresponse reporting wrongis_sharedandstatusvalues./catalogand the MCP sign-in route of an unseedable Neo project returning a 422 error with the deploy failures, instead of a 503 error.Google MCP connectors for Gmail, Calendar, and Drive disconnecting after an hour.
GenAI plugin that fails to load preventing the other GenAI plugins from loading.
Microsoft ACL filter not applying the ACLs of SharePoint Azure VM and SharePoint App-Only sources.
Microsoft ACL filter ignoring the
acl_es_index_prefixof a source.SharePoint and RheinInsights documents shown to users outside their ACL in some cases.
Deleting a SharePoint App-Only data source leaving its ACL index behind.
New RheinInsights data sources indexing items without their link.
RheinInsights data sources storing different connector and source IDs from the ones their wizard configured.
Cached access tokens of OAuth data loader plugins, such as SharePoint and Gmail, getting the wrong expiry after a restart on non-UTC hosts.
SharePoint sources losing a rotated refresh token when the ACL crawl failed.
SharePoint Managed Identity sources failing on every run after the first with a datetime comparison error.
Interrupted data source loads staying in progress for up to 30 minutes before being shown as failed.
Data source connector credentials written to service logs when the source reached its error limit.
Data source completion, failure, and stop updates failing when the saved pipeline workflow was missing.
Ingestion batches with a damaged header retried without end, and failed-batch retries losing the first item or requeueing a batch with its old retry state.
Wrong item counts for ingestion batches in the backlog, in retries, and in batches where only some items failed.
Failed-batch listings breaking on an unreadable batch, or showing “No batch history” for a batch that has one.
Rerunning processed batches writing an invalid header when an item contains bytes that are not valid text.
Items whose file is given as an HTTP or HTTPS URL dropped during ingestion when the file is a PDF or another binary file.
Hyphen-dense documents, such as minified code, base64 data, or long URLs, silently not indexed.
Search for a term joined by an apostrophe or a dot, such as O’Neil’s, matching documents containing only its last part, on new indices.
Reset index searched with the field mappings of the index it replaced.
Models created from the Logistic Regression Classifier AI Studio template failing to train.
JPEG profile pictures failing to upload when the image begins with a color profile or other metadata.
Pipelet uploads logging a misleading error when the pipelet storage directory is not writable.
Configuration service leaving a database connection idle in a transaction after its startup migration.
Services returning mixed-up responses and 500 errors after a worker restarted following a timeout.
Privacy Layer unmasking failing when the LLM dropped the trailing zero of a token.
Responses streamed through the Privacy Layer leaking PII tokens split across chunks, or repeating their last words.
Summarization endpoint not unmasking PII in its response, and tool-calling models failing behind the Privacy Layer.
Technical Preview - OpenSearch hybrid search returning different hits and scores from Elasticsearch, or none when the query words matched nothing.
Technical Preview - OpenSearch paragraph embedding fields using a different similarity and index options than on Elasticsearch, with existing fields fixed by a reindex.
Technical Preview - OpenSearch scoring lexical matches lower than Elasticsearch, changing hybrid search, rescoring, and
min_scoreresults.Technical Preview - OpenSearch storing byte embeddings at 4 bytes per dimension, with existing fields fixed only by a reindex.
Technical Preview - Semantic highlighting and paragraph thumbnails not working on OpenSearch, and highlighted phrases split at HTML tags.
Containerized Deployments#
Technical Preview - Asset initialization container of containerized deployments failing to run as a non-root user.
Breaking Changes#
Neo Interface#
Neo web client deployments that set none of
LEGACY_API_URL,FE_URL, or aUSER_SERVICE_ENDPOINTending in/api/userget a 503 error on/api/v0requests and a startup warning. RPM,deploy.sh, and containerized deployments are unaffected. On other deployments, such as Kubernetes, setLEGACY_API_URLto the URL at which the Neo web client reaches the Squirro platform.Neo single sign-on takes its host from
FE_URL, or else from theHostheader, and checks that host againstSSO_DOMAINS. Behind a reverse proxy that rewrites theHostheader, setFE_URLto the public Neo URL and list its host inSSO_DOMAINS, on RPM installations in/etc/squirro/webclient.d/docker-override.env.
Neo Agent Configuration#
genai deploysucceeds with a warning when a secret that the configuration names is missing. Until the secret is provided, turns on that model fail, that MCP server cannot be used, and calls to that knowledge graph go out unauthenticated. An oldergenaiCLI does not print the warning. Upgrade thegenaiCLI together with the Squirro server, and provide every secret that the warning names.Neo deploys refuse more invalid configurations: a
source.knowledge_graph.defaultnaming an unpublished graph, a toggle constrain that admits"auto", a restriction that resolution cannot honor on its own, a constrain operand of the wrong kind, an undeclared or mistyped preference path, andstudio_mcp.toolsrules that can never match. Fix each path the deploy names, for example by writingnot_in: [true, "auto"]instead ofnot_in: [true]and giving the projectfalseinprefers, or by pinning the path tofalse.A Neo project not yet seeded cannot start from a bundled override that this release refuses. Before upgrading, run
genai lintfrom thegenaiCLI of this release on the directory thatSQ_GENAI_V1_BUNDLED_CONFIG_PATHnames, and fix the override. An older CLI does not report these refusals.Neo setting resolution no longer returns a value that the restrictions of the project exclude, an agent
matchesconstrain no longer widens the one of the project, and0oncapability.memory.enabledturns memory off in conversations too. Projects deployed before the upgrade keep their behavior until redeployed, except formatchesand for0oncapability.memory.enabled, which apply at once. Check agents that relied on the wider behavior, writefalseinstead of0, then redeploy.Do not roll back a Neo project that uses per-graph switches, or
MCP,trait, or per-server IDs with hyphens or uppercase letters: an earlier release ignores these settings or fails every turn. After a rollback, redeploy the pre-upgrade workspace withgenai deploy, or rungenai reseed --forcefor a bundled-seed project.
Neo Core Library#
Hosts that switch exhaustively over
IOutputBlock,ChatSidePanelPayload, orTurnOutcomein@squirro/neo-core/chatmust handle the new members, such asoutput_block.ui,output_block.forwarded_message,agent-transcript, andout_of_time. Add these cases to custom code.ChatStringsgains required keys, includinganswerAiGenerated,selectionTargetLanguage,errorStopFailed,errorTaskRunOpen, andmessageHeldForTaskRun, and strings for refused delegations and the reports of agents. It also loses keys, such aswelcomeTagline,filesAddContent,catalogAbilities, andcatalogEnableGraph. Add the new keys to a custom Neo interface that builds the set in full, or pass a partial set instead, and remove overrides of the removed keys.An approval card rendered directly with
InterruptResolutionUIorInterruptChoiceDialogand wired withoutonCancelTurnno longer shows a dismiss control, andinterruptSkipandinterruptHintSkipinChatStringsno longer have any effect. WireonCancelTurnto show a dismiss control, which ends the turn instead of rejecting the action.COMPOSER_TEXTAREA_ID,INCOGNITO_DISCLAIMER_ID, andINCOGNITO_FILES_CLAUSE_IDare removed from@squirro/neo-core/chat, because chat element IDs are unique per chat. UseCOMPOSER_FIELD_ATTRIBUTEto find the message field.createItemsDataSourcerejects a filter on a full-text field, such as$titleor$body. Search these fields throughItemsQuery.text.Squirro item citations give the host an empty
url. Open these citations byitemIdin custom code.quoted_selectionis replaced by thequoted_selectionsarray onIConversationMessage,ITreeNode, andStreamingChatRequest, andQuestionCardProps.quotedSelectionis removed. Readquoted_selections, and pass the thirdonSubmitargument ofInputFieldon tostartStreamingChat, or quotes are dropped without an error.The
renderTemplatesslot ofInputFieldrenders inside the message box menu, andInputFieldTemplateSlotHelperslosescompact. Return menu items from the slot, and stop readingcompact.The delete methods and
disconnectExternalMcpofChatDataSourcereject when the browser is offline or the request fails. Handle the rejection in custom code.
Neo SDK#
Abstracts returned by
sdk.items.search(),sdk.items.getItem(), andonOpenItemare decoded text instead of HTML-escaped. Insert them withtextContentinstead ofinnerHTML.
Platform#
RPM-based deployments on EL9 need version 9.8 or later of Red Hat Enterprise Linux or Rocky Linux, whose AppStream repository provides Python 3.14. On EL8, Python 3.14 comes from the Squirro repository. Before upgrading, update EL9 hosts, and add
python3.14,python3.14-libs, andpython3.14-pip-wheelto your own mirror of the Squirro repository for EL8.Python 3.14 checks TLS certificates strictly, and refuses a private or TLS-inspecting CA certificate that lacks an Authority Key Identifier or whose Basic Constraints extension is not critical. Reissue such CA certificates before upgrading.
Squirro moves from
/opt/squirro/virtualenv311to/opt/squirro/virtualenv314, and the upgrade leavesvirtualenv311in place. Update scripts, crontabs, systemd units, nginx files, and settings that namevirtualenv311, and reinstall packages installed into it by hand. Once nothing uses it, rundnf remove 'squirro-python311-*' python3.11 python3.11-libsand delete/opt/squirro/virtualenv311.The platform services run on Python 3.14, which removes standard library modules such as
asyncore,imp,distutils, andtelnetlib, and makesforkserverthe default start method ofmultiprocessingon Linux. Make custom pipelets, data loader plugins, Studio plugins, and GenAI plugins compatible with Python 3.14, and make everything they pass to a new process picklable.Models built on the Pydantic version 1 API (
pydantic.v1) in custom code lose their fields on Python 3.14 without raising an error, and LangChain tools built on them lose their arguments. Addfrom __future__ import annotationsto each module that defines such models, or move them to Pydantic 2.Data loader plugins and GenAI plugins that list dependencies in a
requirements.txtfile can fail to load until they are uploaded again. Upload these plugins again after the upgrade.SQLAlchemy moves from 1.4 to 2.0: writes persist only after an explicit commit or inside
engine.begin(), parameters are passed toexecute()as a dict, andengine.execute(),select([...]),MetaData(bind=...), and string-key row access are gone. Update custom pipelets, data loader plugins, and Studio plugins that use SQLAlchemy from the platform, as described on the SQLAlchemy 2.0 migration website.AutoML models trained before the upgrade no longer load, and AutoML is experimental on Python 3.14. scikit-learn classifiers, projectors, and TF-IDF embedders load with a warning. Retrain AutoML models, and retrain the scikit-learn models as recommended.
Google Universal Sentence Encoder is no longer available. Edit, save, and retrain models created from the Cosine Similarity Classifier and Logistic Regression Classifier AI Studio templates, and switch machine learning workflows that use the
tensorflowtransformer of the embedder step tosentence_transformer, then retrain them. Publish the models again if they were published.The
semantic_term_expanderquery processing step is removed. Remove it from query processing workflows.Content conversion needs more memory, with a default
vmargsinconvert.iniof-Xmx1g,-Xms64M,-XX:+ExitOnOutOfMemoryError. Raise an explicitvmargssetting to-Xmx1gwith-XX:+ExitOnOutOfMemoryError, and give containers with tight memory limits more memory.Installations whose
tika-urlinconvert.inipoints at their own Tika server need Tika 4 with the metadata key names of Tika 3, or every conversion fails. Upgrade that server to Tika 4.1.0, and start it with the settings of thetika-config.jsonfile that ships with Squirro, which includelegacy-key-migration-filter.The Tika server configuration moves from
/etc/tika-config.xmlto/etc/tika-config.json, and an upgrade replaces a locally editedtika.serviceunit, keeping the edit astika.service.rpmsave. Re-apply XML customizations in the JSON file, and move unit changes to a systemd drop-in. If a drop-in overridesExecStart, replace its command with the one in the newtika.service, or Tika does not start.Some metadata keys of Office and HTML documents change with the new Tika version. Check metadata mappings that use Tika key names.
For HTTP and HTTPS URLs,
open()anddownload()of the storage handler (get_injected("storage")) always return bytes. Decode the result in custom pipelets that use it as text.The database data loader plugin opens its source connection in autocommit mode, so writes made by its configured SQL, such as stored procedure calls, commit where earlier releases rolled them back. Check SQL that writes to the source database before upgrading.
Users can see fewer SharePoint and RheinInsights documents: the Microsoft and RheinInsights ACL filters apply the ACLs of more sources, and return no documents when the sources cannot be looked up, with
hide_all_on_erroron by default. Check the ACL indexes of these sources after the upgrade.
Containerized Deployments#
Technical Preview - The GPU image of the containerized NLP services needs a driver for CUDA 12.8 or newer. Update the GPU driver of the host before upgrading.
Installation and Upgrade#
For new installations, find step-by-step instructions on the Install and Manage Squirro with Ansible page (recommended) and Installing Squirro on Linux pages.
To upgrade an existing installation, see the Upgrading Squirro page.