Repository navigation
Tale v0.5.97
Highlights
- Security fix: only Owners and Admins learn from the organization's member list whether each member uses two-factor authentication and how many passkeys they hold. Before this release, Members, Editors and Developers, who may list the members too, got both through
GET /api/app/members. They still get the list, without those two fields. No action is needed. - Security fix: saving a project agent's dialog keeps the credentials the agent is pinned to and its commit identity. Before this release, the dialog sent both as empty: an Owner's or Admin's save cleared them, also when the edit was something else, such as the agent's instructions. For a connector it no longer pinned, the agent then took the connector's default credential, which may reach more. The save of an Editor or a Developer, who may edit an agent but not its pins, was refused for an agent with pins; it is now refused only when it changes the pins, which only Owners and Admins may do. See the upgrade notes for the agents saved since pins arrived.
- Security fix: Twilio's Get account returns only the four members it declares:
sid,friendly_name,statusandtype. Before this release, it handed on Twilio's whole Account resource, the account's Auth Token included, so whoever could run the action and read its output learned the token: a chat or an agent with the Twilio connector, and an automation step that passed the output on. The token then stayed in that conversation and in the run's state, and went to the agent's model provider. In the same change, GitHub's List repositories, Get repository, List issues, Get issue, List pull requests, Get pull request and Search code no longer hand on GitHub'stemp_clone_token. That token needs no action: GitHub documents it as read-only, unable to push, and expiring five minutes after it is generated. See the upgrade notes for the Auth Token. - Security fix: Twilio's List phone numbers returns only each number's
sid,phone_numberandfriendly_name. Before this release, it handed on each number's webhook URLs, so a webhook URL that carries a user name and password for the owner's own server, as Twilio documents for HTTP basic authentication, gave that password to whoever ran the action. See the upgrade notes. - Under Settings › Data residency › Embedding model, picking an embedding model that a gateway lists through a provider your organization defined itself now fills Vector width, so Save turns on. Tale reads no width from such a listing; it takes the width its own catalog states for the model, named as the catalog names it or behind the catalog's provider, as gateways name them:
openrouter/qwen/qwen3-embedding-8bandopenai/text-embedding-3-smallget 1536. For any other model the gateway lists, enter the width the model produces, as Data residency describes. - After a change to another embedding model of the same vector width, Tale embeds the indexed documents and email bodies again. Before this release, only a change of width did: at the same width the old model's vectors stayed, so search by meaning compared the new model's queries with vectors that no query of it can match. Each document and email now records the model that embedded it. Search by meaning reads only the vectors of the model that embeds the query, so it leaves a document out until the new model has embedded it, and search still finds that document by its words. Websites keep the old model's vectors at the same width until a page's text changes, so search by meaning can miss such a page until then, as the embedding model guide says (see #4935).
Upgrade notes
- At start, the knowledge database container (
knowledge-dbin Compose) applies the knowledge-corpus migrationservices/db/migrations/knowledge-db/private_knowledge/00000000000017_documents_embedding_model.sqlfrom this release'sdbimage totale_knowledge, and the backend applies the same file to an organization's own knowledge database. It adds the nullable columnembedding_modeltoprivate_knowledge.documentsand rewrites no rows. The application database gets no migration, and the API contract stays at3.52.0. - Documents and emails indexed before the upgrade record no model and pass for the model the embedding settings state. The first save or removal of the embedding model stamps them with the model stated until then, a page at a time, before the settings change. A save that names another model is refused while the knowledge database does not answer; save again once it answers. Once a day, the corpus reconcile puts back in the queue any indexed document or email that the stated model has not embedded.
- Keep the embedding model as it is until every platform image runs this release: a document the previous image indexes for the first time during a rolling deploy records no model, so a model saved meanwhile can leave it with the old model's vectors until it is indexed again.
- A change of embedding model now embeds every indexed document and email of the organization again, also at the same width, and that calls the embedding provider for all of them: allow for the provider's usage and for the time a large corpus takes before you save another model. Earlier notes, such as v0.5.79's, say that a same-width change does not re-embed the corpus; that no longer holds. The model counts by the name the settings state, so
text-embedding-3-smallandopenai/text-embedding-3-smallare two models, while the same name and width through another provider, such as a second gateway, embeds nothing again. - Owners and Admins check the pinned credentials and the commit identity of every project agent that someone saved in its dialog since v0.5.92, and set again what a save cleared. Pins and commit identities arrived in v0.5.92, with
0219_project_agent_repository_credentials.sql. - An Admin whose organization ran Twilio's Get account, or cannot rule it out, rotates the Auth Token in Twilio's console and saves the new one in the organization's Twilio credential under Settings › Connectors. Copies of the old token already kept, in a conversation, a run's state or elsewhere, are worthless once it is rotated.
- If a Twilio number's webhook URL carries a password for your own server, and others could run the Twilio connector, or a chat, an agent or an automation ran List phone numbers, change that password on your server and in the number's webhook URL.
- No configuration, limit, credential or sign-in setting needs to change beyond these: the other fixes take effect with the new images.
API contract changes
None in this range. The contract stays at 3.52.0: 163 operations.
What's Changed
- chore: merge train 20261102-1557 by @tale-code-bot in #5328
- chore: merge train 20261103-0247 by @tale-code-bot in #5334
Full Changelog: v0.5.96...v0.5.97