# LiteLLM v1.97.0-dev.1 - Product: LiteLLM (https://whatsnew.fyi/product/litellm) - Vendor: BerriAI - Date: 2026-08-05 - Version: v1.97.0-dev.1 - Original notes: https://github.com/BerriAI/litellm/releases/tag/v1.97.0-dev.1 - Permalink: https://whatsnew.fyi/product/litellm/releases/v1.97.0-dev.1 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Resolve Cursor thinking/fast model-name suffixes on /cursor/chat/completions endpoint - **added** — Add non-streaming response toggle to playground - **added** — Apply default organization to new teams from default team settings - **added** — Expose session affinity configuration in the complexity router UI and default it to off - **added** — Add prompt moderation, response-text blocking, streaming buffer, and failure logging to Rubrik guardrails - **added** — Add custom metadata validation hook for team create and update - **added** — Add net auto-router savings to the cost-optimization dashboard - **added** — Show auto-router savings on the cost-optimization dashboard - **fixed** — Stop logging when disable_logging is called for team callbacks - **fixed** — Backfill null user_email on existing users during JWT auth - **fixed** — Block Playground page for viewer roles on direct URL access - **fixed** — Close evicted LLM clients so their connections are reclaimed - **fixed** — Apply key/team router_settings.model_group_alias - **fixed** — Read team callback dd_* params from kwargs instead of blocked dynamic params - **fixed** — Redact credential headers from request logging copies - **fixed** — Render Responses API request and response in the logs drawer - **fixed** — Hide guardrail review buttons from non-admin users - **fixed** — Stop forwarding no-op toolSpec.strict to Converse for Bedrock - **fixed** — Reject an auto-router keyword rule left empty instead of dropping it - **fixed** — Attribute blocked requests to the caller that made them in Rubrik guardrails - **fixed** — Forward client headers to the provider on /v1/responses - **fixed** — Read what a request cost from the record instead of pricing it again - **changed** — Install hiredis so redis-py parses replies with its C parser ##### Verify Docker Image Signature All LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0). **Verify using the pinned commit hash (recommended):** A commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key: ```bash cosign verify \ --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \ ghcr.io/berriai/litellm:v1.97.0-dev.1 ``` **Verify using the release tag (convenience):** Tags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules: ```bash cosign verify \ --key https://raw.githubusercontent.com/BerriAI/litellm/v1.97.0-dev.1/cosign.pub \ ghcr.io/berriai/litellm:v1.97.0-dev.1 ``` Expected output: ``` The following checks were performed on each of these signatures: - The cosign claims were validated - The signatures were verified against the specified public key ``` --- ##### What's Changed * feat(proxy): resolve Cursor thinking/fast model-name suffixes on /cursor/chat/completions by @mateo-berri in https://github.com/BerriAI/litellm/pull/35554 * fix(team-callbacks): actually stop logging when disable_logging is called by @yucheng-berri in https://github.com/BerriAI/litellm/pull/35520 * refactor(lint): drop redundant !s f-string conversion flags and fix displaced import-group comments by @mateo-berri in https://github.com/BerriAI/litellm/pull/35546 * fix(proxy): backfill null user_email on existing users during JWT auth by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/34588 * feat(playground): add non-streaming response toggle by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/35560 * feat(teams): apply default organization to new teams from default team settings by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/35540 * fix(ui): block Playground page for viewer roles on direct URL access by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/35676 * fix(caching): close evicted LLM clients so their connections are reclaimed by @yassin-berriai in https://github.com/BerriAI/litellm/pull/35492 * chore(deps): update brace-expansion, postcss, and gitpython to current patch releases by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35692 * refactor(ui): rename the create MCP server component to PascalCase by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35686 * fix(openai): drop undefined Union from owns_wrapped_http_client annotation by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/35706 * fix(openai): drop the undefined Union from owns_wrapped_http_client by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/35704 * chore(ui): note Google's Agent Platform rename in vector store setup by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/28076 * fix(proxy): apply key/team router_settings.model_group_alias by @yassin-berriai in https://github.com/BerriAI/litellm/pull/35486 * feat(complexity_router): default session affinity off and expose it in the UI by @tin-berri in https://github.com/BerriAI/litellm/pull/35714 * fix(datadog): read team callback dd_* params from kwargs instead of blocked dynamic params (#35115 port) by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/35687 * refactor(ui): extract the MCP create form's logic and field groups by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35694 * test(ui): tier the MCP create tests into unit and integration by @yuneng-berri in https://github.com/BerriAI/litellm/pull/35697 * fix(proxy): redact credential headers from request logging copies by @yucheng-berri in https://github.com/BerriAI/litellm/pull/35678 * feat(guardrails/rubr _[Truncated at 4000 characters — full notes: https://github.com/BerriAI/litellm/releases/tag/v1.97.0-dev.1]_