Verify Docker Image Signature
All LiteLLM Docker images are signed with cosign. Every release is signed with the same key introduced in commit 0112e53.
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:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:v1.107.0Verify 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:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/v1.107.0/cosign.pub \
ghcr.io/berriai/litellm:v1.107.0Expected 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
- refactor(types): replace Any with proven types in 3 files by @devin-ai-integration[bot] in #45565
- test: wait on conditions instead of wall-clock in guardrail parallelism and scope-option tests by @devin-ai-integration[bot] in #45571
- fix(responses): keep a flagged hosted deployment's prompt cache breakpoint on the chat bridge by @devin-ai-integration[bot] in #45500
- fix(gemini): sync gemini deprecation dates with the changelog and deprecations page by @berriai-litellm-provider-info-sync[bot] in #45491
- fix(model_prices): registry audit 2026-10-09, together qwen3.7-max price, azure kimi-k2.7-code retirement by @devin-ai-integration[bot] in #45595
- test: move offline router, retry and latency tests from local_testing to tests/unit by @yuneng-berri in #45551
- test: move offline logging, secret manager and provider tests from legacy dirs to tests/unit by @yuneng-berri in #45554
- test: move offline proxy auth, hook, spend and pass-through tests to tests/unit by @yuneng-berri in #45568
- fix(ui): title usage overview chart "Daily usage" and label the model table "Top models" by @krrish-berri-2 in #45604
- feat(decisions): add hosted_vllm provider by @devin-ai-integration[bot] in #45501
- test: move offline anthropic prompt caching tests to tests/unit by @yuneng-berri in #45616
- fix(bedrock): add the bare Pegasus 1.5 row and take GPT-5.x context windows from the model cards by @berriai-litellm-provider-info-sync[bot] in #45621
- fix(liteadmin): detach keys from teams and default to Sonnet 5.5 by @tin-berri in #45625
- chore: ignore .mypy_cache by @nate-berri in #45628
- test: fix stale and flaky tests across CircleCI, GHA and Buildkite by @yuneng-berri in #45530
- feat(ui): show the public JWKS for LiteLLM-signed Anthropic credentials by @devin-ai-integration[bot] in #45527
- fix(proxy): classify /v1/messages pass-through streams as Anthropic on any host by @devin-ai-integration[bot] in #45602
- feat(azure): add azure_ai/Microsoft-Decision-1 by @berriai-litellm-provider-info-sync[bot] in #45639
- ci: run every build_and_test job in every CircleCI pipeline by @devin-ai-integration[bot] in #43152
- fix(ui): show team alias in key edit Team dropdown and allow clearing it by @devin-ai-integration[bot] in #45629
- chore(cost-map): add openai gpt-rosalind-discovery from the pricing page by @berriai-litellm-provider-info-sync[bot] in #45653
- chore(greptile): load nested AGENTS.md files as review context scoped to their directories by @mateo-berri in #45636
- feat(pricing): add github_copilot/claude-haiku-5.5 by @berriai-litellm-provider-info-sync[bot] in #45656
- fix(cost-map): add 2026-10-22 deprecation_date to two together_ai rows by @berriai-litellm-provider-info-sync[bot] in #45657
- fix(openrouter): bill Responses, Decisions and pass-through from OpenRouter usage.cost, always allow reasoning params by @devin-ai-integration[bot] in #45640
- fix(rust): update serde_with for serialization advisory by @moe-berri in #45498
- feat(teams): let proxy admins grant team admins the right to raise their team budget by @ryan-crabbe-berri in #45404
- test(decisions): add hosted_vllm /v1/decisions and provider-400 translation cases by @devin-ai-integration[bot] in #45661
- feat(bedrock): default Grok on Bedrock to native Chat Completions, mint unique tool call ids and drop stop by @devin-ai-integration[bot] in #45473
- fix(bedrock): list the account's invocable models behind bedrock/* when check_provider_endpoint is on by @devin-ai-integration[bot] in #43981
- feat(proxy): track failed requests by HTTP status and caller by @yassin-berriai in #45244
- feat(ui): add Errors tab to Usage with failure rate, status and identity breakdowns by @yassin-berriai in #45396
- refactor(cost-map): remove openrouter rows, part 1 of 5 by @devin-ai-integration[bot] in #45665
- test(mcp): make scope-discovery server aliases digits-only by @devin-ai-integration[bot] in #45675
- perf(proxy): keep stream end output and Redis cache debug strings off the event loop by @devin-ai-integration[bot] in #45252
- fix(bedrock): drop stop sequences for GPT 5.6 and newer instead of forwarding them to a 400 by @devin-ai-integration[bot] in #45664
- refactor(cost-map): remove openrouter rows, part 2 of 5 by @devin-ai-integration[bot] in #45666
- feat(microsoft_365_copilot): add Microsoft 365 Copilot chat provider with OAuth token exchange by @yassin-berriai in #45158
- feat(github_copilot): per-user GitHub OAuth connections for Copilot credentials by @yassin-berriai in #45241
- chore(github_copilot): sync model catalog with Copilot's served models by @yassin-berriai in #45386
- fix(cost): preserve zero hourly cache write rates in pricing tiers by @tin-berri in #45545
- refactor(cost-map): remove openrouter rows, part 3 of 5 by @devin-ai-integration[bot] in #45667
- refactor(cost-map): remove openrouter rows, part 4 of 5 by @devin-ai-integration[bot] in #45668
- fix(proxy): sign RDS IAM tokens for the database's own region by @devin-ai-integration[bot] in #44782
- fix(ui): show the Microsoft 365 Copilot logo instead of the Azure one by @yassin-berriai in #45687
- feat(policy-engine): stream detect-only post_call pipeline steps live when buffering is off by @devin-ai-integration[bot] in #45516
- refactor(cost-map): remove openrouter rows, part 5 of 5 by @devin-ai-integration[bot] in #45669
- fix(model_prices): registry audit, perplexity agent api models and claude-sonnet-4-5 200k context by @devin-ai-integration[bot] in #45647
- refactor(lens): connect LiteLLM to the independent Lens service by @moe-berri in #45529
- feat(decisions): add Databricks ai_decide as a /v1/decisions provider and auto-router decider by @mateo-berri in #45200
- refactor(rust): type the AWS connection params in auth-aws by @yujonglee-berri in #45610
- refactor(rust): type the Vertex AI connection params in auth-gcp by @yujonglee-berri in #45641
- refactor(rust): one LitellmParams type for a config and a caller by @yujonglee-berri in #45642
- refactor(rust): give Messages configs typed litellm params by @yujonglee-berri in #45611
- feat(rust): add the Vertex AI Anthropic Messages config by @yujonglee-berri in #45626
- feat(rust): add the DeepSeek Anthropic Messages config by @yujonglee-berri in #45614
- docs(agents): ban semicolons and colons in human-facing text by @mateo-berri in #45684
- feat(azure_ai): support Microsoft-Decision-1 on the decisions API by @devin-ai-integration[bot] in #45673
- fix(proxy): keep the mapped status on assistants and threads route errors by @devin-ai-integration[bot] in #44994
- fix(ui): accept guest email addresses in member forms by @moyai-berriai[bot] in #45688
- fix(bedrock): keep tool_reference results as text on converse by @devin-ai-integration[bot] in #44590
- fix(bedrock): keep GPT tool-result images beside the tool result by @shubhamjain0594 in #45579
- fix(ui): resolve the provider dropdown key to the slug the backend declares by @Bytechoreographer in #43707
- feat(ui): let admins find, call, and test decision models from the Admin UI by @moyai-berriai[bot] in #45654
- ci: finish the lint, unit and smoke check layout by @devin-ai-integration[bot] in #45706
- fix(databricks): keep #/$defs refs in json_schema response_format by @mrinal-berri in #45659
- fix(gemini): map OpenAI voice names to Gemini prebuilt TTS voices by @devin-ai-integration[bot] in #45303
- fix(decisions)!: refuse safety_identifier on providers that cannot take it unless drop_params drops it by @devin-ai-integration[bot] in #44955
- fix(python-bridge): preserve callback keyword deletions in native requests by @yujonglee-berri in #45692
- fix(model_prices): drop unverified output price on Microsoft-Decision-1 and guard evaluation rows by @devin-ai-integration[bot] in #45717
- fix: support OpenAI SDK 3 while retaining SDK 2 compatibility by @devin-ai-integration[bot] in #44927
- feat(ui): build System One playground requests with a form by @devin-ai-integration[bot] in #45721
- fix(realtime): only inject response.create when a transcript guardrail suppressed VAD auto-response by @RonP3 in #43791
- fix(websearch_interception): drop stream_options when forcing stream=False and replay it on the final stream by @devin-ai-integration[bot] in #45433
- fix(guardrails): avoid blocking the event loop during HiddenLayer JWT refresh by @Arjun-Aravind in #45437
- feat(strands_decider): call a Strands Decider on an AgentCore runtime ARN by @devin-ai-integration[bot] in #45678
- fix(proxy): let admins make per-model key/team rate limits a hard 429 instead of falling back by @shivamrawat1 in #45459
- feat(ui): rename the Playground System One tab to Decisions and give the JSON editor VS Code light and dark themes by @devin-ai-integration[bot] in #45729
- feat(ui): link the decision models banner to the supported providers docs and rename the System One playground to Decisions by @devin-ai-integration[bot] in #45732
- fix(mcp): preserve caller bearer for guardrail evaluation by @joshua-berri in #45746
- feat(azure): add azure_ai/Cohere-Embed-V5-Fast and azure_ai/Cohere-Embed-V5-Pro by @berriai-litellm-provider-info-sync[bot] in #45764
- fix(proxy): let MCP server management bodies carry their OAuth token exchange settings by @devin-ai-integration[bot] in #45723
- fix(spend): run /global/spend/refresh on the writer instead of the read replica by @yucheng-berri in #45699
- fix(proxy): keep keys and projects on the same team by @devin-ai-integration[bot] in #44165
- feat(guardrails): split logging_only_scope direction from input-failure policy by @yucheng-berri in #45709
- test: move routing, caching and callback tests out of local_testing by @devin-ai-integration[bot] in #45761
- test: move packaging and install checks off CircleCI build_and_test by @devin-ai-integration[bot] in #45757
- fix(model-prices): correct Bedrock Titan and Nova 2 Lite prices, add Nova Premier, clear rescinded Together dates by @devin-ai-integration[bot] in #45793
- chore: remove committed PR screenshots by @moe-berri in #45816
- fix(ui): drop the decision models sublabel from the Add Model provider dropdown by @devin-ai-integration[bot] in #45755
- perf(ci): isolate and shard integration suites by @yuneng-berri in #44146
- fix(ui): load embedded Lens styles in the gateway by @moe-berri in #45829
- fix(ui): expose both decisions playground endpoints by @devin-ai-integration[bot] in #45817
- fix(proxy): bound spend-log cleanup delete transactions to the statement timeout by @devin-ai-integration[bot] in #43279
- fix(proxy): exempt zero-spend MCP discovery routes from budget checks by @devin-ai-integration[bot] in #41276
- fix: route OpenAI cyber policy errors to content policy fallbacks by @tin-berri in #45828
- fix(proxy): keep the parsed key when the custom key header is absent by @devin-ai-integration[bot] in #44469
- feat(proxy): require trace IDs per team on LLM, MCP and agent requests by @devin-ai-integration[bot] in #44933
- fix(bedrock): price the regionless Kimi K2.5 and K2 Thinking rows from the us-east-1 Bedrock price map by @berriai-litellm-provider-info-sync[bot] in #45836
- refactor(skills): import LiteLLM_SkillsTable from litellm.models by @nate-berri in #45737
- refactor(types): move LitellmUserRoles and KeyManagementRoutes into litellm.types.proxy.auth.user_roles by @nate-berri in #45741
- refactor(anthropic): move passthrough SSE stream assembly into litellm/llms by @nate-berri in #45744
- refactor(types): import team and user table models from litellm.models by @nate-berri in #45740
- refactor(llms): move typesafe passthrough logging handler out of proxy by @nate-berri in #45742
- refactor(types): move CommonProxyErrors into litellm/types/proxy by @nate-berri in #45745
- refactor(anthropic): move prompt cache observation lookup out of the proxy hook by @nate-berri in #45748
- refactor(types): move slack alerting leaf types out of proxy/_types.py by @nate-berri in #45752
- refactor(types): move PassThroughGuardrailSettings into the pass-through types module by @nate-berri in #45763
- refactor: move stream_chunk_builder into streaming_chunk_builder_utils by @nate-berri in #45766
- refactor(cost-calc): move cache token extractors out of proxy savings by @nate-berri in #45771
- refactor(responses): move responses_api_bridge_check out of litellm.main by @nate-berri in #45772
- refactor(types): import CustomLogger and CustomLLM under TYPE_CHECKING in adapter TypedDicts by @nate-berri in #45774
- refactor(core): move path_utils from proxy common_utils to litellm_core_utils by @nate-berri in #45775
- refactor(types): import litellm lazily in prometheus types helpers by @nate-berri in #45776
- refactor(types): move complexity router request models next to their base config by @nate-berri in #45780
- refactor(repositories): import proxy helpers inside the methods that use them by @nate-berri in #45781
- refactor(responses): move ColdStorageHandler out of proxy into litellm_core_utils by @nate-berri in #45783
- refactor(types): type UserAPIKeyAuth, its token view and hash_token in place by @nate-berri in #45799
- refactor(types): annotate GenerateRequestBase containers and check_max_budget by @nate-berri in #45801
- refactor(types): annotate user request metadata and check_user_info validators by @nate-berri in #45808
- refactor(types): move is_jwt into litellm.types.proxy.auth.user_api_key_auth by @nate-berri in #45747
- feat(usage): add top users by spend and user activity views by @yassin-berriai in #45310
- fix(caching): give RedisClusterCache one async client per event loop by @yassin-berriai in #45784
- fix(proxy): let configured pass-through endpoints outrank built-in provider prefix routes by @devin-ai-integration[bot] in #44133
- fix(ui): show the team member budget on keys without their own budget by @devin-ai-integration[bot] in #43927
- fix(proxy-extras): bound migration DDL lock waits with lock_timeout and retry by @yassin-berriai in #45389
- fix(sdk): resolve litellm.proxy lazily on attribute access by @nate-berri in #45845
- refactor(anthropic): move prompt cache pricing helper out of the proxy package by @nate-berri in #45753
- fix(terraform): stop sending blocked on litellm_user updates by @marcusgreer in #45410
- fix(ui): store SSO exchange token via storeLoginToken to keep Secure flag by @yassin-berriai in #45840
- refactor(skills): move NewSkillRequest to litellm.models.skills by @nate-berri in #45768
- feat(proxy): per-model team member budgets with router fallback by @devin-ai-integration[bot] in #43887
- refactor(constants): move AUTH_OBJECTS_TARGET into litellm.constants by @nate-berri in #45779
- refactor(types): annotate key request containers and drop_blank_team_id by @nate-berri in #45809
- refactor(types): move GenerateRequestBase and LiteLLM_ObjectPermissionBase into litellm.types.proxy.management_endpoints.request_base by @nate-berri in #45802
- perf(ci): use native timing splits with bounded integration concurrency by @yuneng-berri in #45837
- refactor(anthropic): move raw SSE stream assembly helpers out of proxy guardrails by @nate-berri in #45749
- feat(otel)!: let a team capture_message_content override the global setting for its OTel v2 destination by @devin-ai-integration[bot] in #44264
- refactor(types): move key request models into litellm.types.proxy.management_endpoints.key_requests by @nate-berri in #45810
- refactor(types): move user request models into litellm.types.proxy.management_endpoints.user_requests by @nate-berri in #45813
- refactor(types): move MemberDeleteRequest into litellm.types.proxy.management_endpoints.team_endpoints by @nate-berri in #45814
- feat(scaledown): add native text provider support by @soham96 in #44168
- feat(models): register ScaleDown text pricing by @soham96 in #44167
- refactor(types): move UserAPIKeyAuth, its token view and hash_token into litellm.types.proxy.auth.user_api_key_auth by @nate-berri in #45800
- refactor(core_utils): move resource_ownership out of the proxy by @nate-berri in #45805
- fix(proxy): describe rejected characters in key_alias validation error by @devin-ai-integration[bot] in #41412
- docs(proxy): describe /v1/decisions and /v1/systemone in Swagger UI by @devin-ai-integration[bot] in #45838
- feat(ui): replace Reset example with an Example preset dropdown and a Clear button on the Decisions tab by @devin-ai-integration[bot] in #45848
- refactor(sdk): import UserAPIKeyAuth from litellm.types.proxy.auth by @nate-berri in #45806
- feat(ui): label the System One yes / no question type noul and explain it on hover by @devin-ai-integration[bot] in #45841
- test(decisions): bill the OpenAI-format openrouter case from provider-reported cost by @devin-ai-integration[bot] in #45853
- fix(proxy): only pass the JSON-RPC method to MCP admission auth by @devin-ai-integration[bot] in #45844
- feat(azure_storage): upload audit logs to Azure Storage via audit_log_callbacks by @devin-ai-integration[bot] in #43838
- fix(mcp): keep one upstream MCP session per gateway session across tool calls by @devin-ai-integration[bot] in #42741
- ci: gate undocumented POST routes in the proxy OpenAPI document by @devin-ai-integration[bot] in #45843
- fix(azure): move gpt-realtime-translate deprecation_date to the Models API date by @berriai-litellm-provider-info-sync[bot] in #45849
- fix(guardrails): guardrail Bedrock Converse stream text per content block by @dean-zavad in #45822
- feat(sdk): add litellm.systemone and trim litellm.decisions to the OpenAI shape by @devin-ai-integration[bot] in #45846
- fix(vertex_ai): parse Vertex timestamps as UTC so created_at is not shifted by the host timezone by @yucheng-berri in #45550
- fix(ui): restore dashboard modal backdrops by @yuneng-berri in #45866
- test(integration): streamed request bills the same SpendLogs row as the non-streamed request by @devin-ai-integration[bot] in #45730
- fix(sagemaker): keep AWS credentials out of the sagemaker_chat request body by @devin-ai-integration[bot] in #45724
- fix(proxy/auth): expand all-team-models sentinel for project model access checks by @devin-ai-integration[bot] in #43734
- feat(guardrails): add decision model guardrail with Admin UI flow by @yucheng-berri in #45663
- test(e2e): cover persisted pricing spend by @yuneng-berri in #41566
- test: migrate local_testing SDK and provider tests out of build_and_test by @devin-ai-integration[bot] in #45760
- fix(credentials): keep credential labels and edits consistent across UI, API, and replicas by @yuneng-berri in #45835
- test(integration): move the openai cost tracking cases from cost_tracking_cases.json to CostTrackingTestCase literals by @devin-ai-integration[bot] in #45879
- fix(langfuse): log Responses API token usage instead of zeros by @devin-ai-integration[bot] in #42212
- fix(guardrails)!: scan or refuse attachments in the bedrock guardrail by @yucheng-berri in #43383
- feat: forward-port dd user_email span tag and model hub description from internal staging by @devin-ai-integration[bot] in #42749
- refactor(rust): share provider constants via llms-types and restructure AGENTS.md by @yujonglee-berri in #45850
- feat(ui): add a Home page as the dashboard root with usage summary, recent launches, blog updates and a model leaderboard by @devin-ai-integration[bot] in #45858
- test(headroom): pin that SDK-echoed null tool_calls never reach /v1/compress by @devin-ai-integration[bot] in #39667
- fix(mcp): exclude gateway credentials from guardrail bearers by @joshua-berri in #45897
- feat(decisions): accept decisions as a model mode alongside evaluation by @devin-ai-integration[bot] in #45474
- feat(ui): load Home page What's new launches from /public/whats_new at runtime by @devin-ai-integration[bot] in #45912
- feat(ui): streamline auto-router setup with deployed decision models by @joshua-berri in #45913
- test: model the team membership lookup in MCP DCR admission fixtures and assert decisions call types per route by @devin-ai-integration[bot] in #45917
- feat(ui): restyle the Decisions playground, form first with a read-only cURL tab by @devin-ai-integration[bot] in #45903
- fix(databricks): call the ai_decide AI Function route for decisions and the auto-router by @devin-ai-integration[bot] in #45722
- fix(ui): label the Decisions yes / no answer type instead of noul by @devin-ai-integration[bot] in #45931
- test: migrate SDK and proxy-booting legacy CircleCI tests to their tiers by @devin-ai-integration[bot] in #45758
- test(security): pin the What's new catalog local in the canary egress rig by @devin-ai-integration[bot] in #45925
- test: migrate tests/llm_translation into unit, integration and e2e tiers by @devin-ai-integration[bot] in #45759
- fix(ci): isolate integration workers and repair test fixtures by @devin-ai-integration[bot] in #45863
- fix(home): serve the bundled whats_new.json by default so a build shows only its own launches by @devin-ai-integration[bot] in #45934
- fix(azure): move azure_ai/kimi-k2.7-code deprecation_date to the Models API date by @berriai-litellm-provider-info-sync[bot] in #45945
- test: migrate legacy unit dirs and unrun folders into tests/unit, tests/integration and tests/e2e by @devin-ai-integration[bot] in #45940
- refactor(types): replace Any with proven types in 12 files by @devin-ai-integration[bot] in #45943
- ci: run every CircleCI check from the integration workflow by @devin-ai-integration[bot] in #45938
- test: migrate tests/proxy_behavior into integration and unit tiers by @devin-ai-integration[bot] in #45939
- ci: trigger the gateway-dev deploy on every main push by @devin-ai-integration[bot] in #45958
- test(migrations): assert lock-timeout retry and exhaustion instead of an unbounded wait by @devin-ai-integration[bot] in #45955
- fix(bedrock_mantle): send max_completion_tokens for gpt-5.6 and gpt-6 chat completions by @devin-ai-integration[bot] in #43982
- refactor(rust_bridge): route Python state reads through host modules by @yujonglee-berri in #45689
- fix(bedrock): take the GLM 4.7 max output tokens from the Bedrock model cards by @berriai-litellm-provider-info-sync[bot] in #45976
- test: remove pass-through and user_api_key_auth coverage scripts that no CI job runs by @devin-ai-integration[bot] in #45969
- feat(rust): support MiniMax Messages API by @yujonglee-berri in #45896
- fix(bedrock): take context, output limits and EOL dates from the Bedrock model cards by @berriai-litellm-provider-info-sync[bot] in #45980
- feat(rust): support Tencent Messages API by @yujonglee-berri in #45899
- feat(rust): add native OpenRouter Messages by @yujonglee-berri in #45910
- feat(rust): add native Bedrock Claude Platform and Mantle Messages by @yujonglee-berri in #45908
- test: migrate proxy security, schema migration and MCP legacy tests by @devin-ai-integration[bot] in #45937
- test(mcp): attribute passthrough probe traffic to the caller instead of the whole peer log by @devin-ai-integration[bot] in #46020
- fix(tests): retry owned_redis on a port already served in the target namespace by @devin-ai-integration[bot] in #46019
- test(integration): give the ownership proxy its own DB pool headroom by @devin-ai-integration[bot] in #46025
- test(integration): migrate before timed owned proxy launch and gate credential probe on every worker by @devin-ai-integration[bot] in #46030
- ci: move redis-compat and MCP unit suites from CircleCI to GitHub Actions by @devin-ai-integration[bot] in #46026
- test(integration): isolate every multi-worker integration suite by default by @devin-ai-integration[bot] in #46027
- ci(integration): run integration shards on large machines and size workers per suite by @devin-ai-integration[bot] in #46034
- test(integration): give chaos and timing tests a harness API and gate raw signals by @devin-ai-integration[bot] in #46031
- test(integration): cut CircleCI proxy boot time with concurrent worker stacks and single-worker test proxies by @devin-ai-integration[bot] in #46037
- test(integration): bill Decisions spend from captured provider responses on /v1/decisions and /v1/systemone by @devin-ai-integration[bot] in #45902
- fix(managed_files): enforce input file ownership on batch and fine-tuning create by @mrinal-berri in #45855
- feat(fireworks_ai): add Decisions support for accounts/fireworks/routers/rune on /v1/systemone and /v1/decisions by @devin-ai-integration[bot] in #46057
- chore: drop Greptile from the PR template, AGENTS.md and CI by @devin-ai-integration[bot] in #46013
- refactor(bedrock): rename is_claude_4_5_on_bedrock to supports_bedrock_prompt_cache_ttl by @devin-ai-integration[bot] in #46058
- fix(model-prices): add OpenAI dated snapshots, fix Perplexity decider pricing, absorb Together Tev1 cache price removal by @devin-ai-integration[bot] in #45842
- feat(model_prices): add meta/muse-wonder-1.0 by @devin-ai-integration[bot] in #46072
- feat(vertex_ai): add semantic-ranker rerank pricing to the cost map by @devin-ai-integration[bot] in #46061
- fix(gemini): do not inject temperature for Gemini 3+ models when omitted by @sukhdeepjohar in #45107
- feat(decisions): support Clef-omni audio and video by @moyai-berriai[bot] in #45811
- test(e2e): rename load to perf and consolidate the opt-in into E2E_PERF_TESTS by @devin-ai-integration[bot] in #46077
- fix(proxy): skip failure rows for expired Admin UI session keys on dashboard info routes by @jesus-berri in #45881
- fix(mcp)!: preserve scopes during managed OAuth reauthorization by @joshua-berri in #45886
- feat(decisions): bill decisions and systemone from _decisions cost map fields by @devin-ai-integration[bot] in #45904
- fix(bedrock_mantle): map the OpenAI-shaped context overflow envelope too by @mayank-affirm in #41747
- fix(ci): wait for SIGSTOP to take effect before handing back a suspended proxy process by @devin-ai-integration[bot] in #46088
- feat(providers): add CoralBricks as a native provider by @devin-ai-integration[bot] in #44700
- fix(anthropic): carry cache_control to prompt_cache_breakpoint on the /v1/messages to Responses bridge by @ryan-crabbe-berri in #46082
- feat(cost): support provider/model-pattern keys in cost_discount_config by @devin-ai-integration[bot] in #43335
- fix(proxy): refuse /fallback writes to a fallbacks list set in config.yaml by @yassin-berriai in #45860
- docs: point the GCP one-click deploy at the terraform-google-litellm mirror by @nate-berri in #46089
- fix(ui): gray out router settings and fallbacks that config.yaml owns by @yassin-berriai in #45861
- fix(ui): lock config-owned model group aliases on the alias tab by @yassin-berriai in #45857
- fix(ui): show the legacy evaluation mode as decisions in the Model Hub and guardrail picker by @devin-ai-integration[bot] in #46098
- feat(sagemaker)!: inference components and OpenAI-compatible embeddings by @devin-ai-integration[bot] in #44985
- fix(proxy): enforce the personal max_budget on proxy-admin JWTs by @devin-ai-integration[bot] in #43070
- feat(zscaler_ai_guard): send the request user to AI Guard by @yucheng-berri in #46094
- feat(otel): let a team or key excluded_services override the global setting for its OTel v2 destination by @mrinal-berri in #45880
- fix(guardrails): honor decision model streaming buffering by @moyai-berriai[bot] in #46086
- fix(responses): fold bridged Responses output into one chat choice by @devin-ai-integration[bot] in #46099
- fix(gemini): price tool-use prompt tokens as input by @jsvisa in #46021
- feat(proxy): let personal keys inherit model access from the owner's current teams by @devin-ai-integration[bot] in #43692
- fix(responses): number bridged chat tool calls 0, 1 and pin the remaining bridge shapes by @devin-ai-integration[bot] in #46109
- fix(cost_calculator): apply the anthropic fast multiplier to cache cost breakdown by @devin-ai-integration[bot] in #46112
- test(rust): add Messages live provider harness by @yujonglee-berri in #45823
- feat(rust): settle EdenAI Messages reported cost by @yujonglee-berri in #45698
- fix(cost): bill azure_ai claude web searches per server_tool_use request by @devin-ai-integration[bot] in #46114
- fix(cost): bill custom priced deployments at their own rates over the upstream x-litellm-response-cost header by @devin-ai-integration[bot] in #46120
- test(cost): add tier 1 Claude 5 and gpt-6 native cost cases by @devin-ai-integration[bot] in #46124
- fix(databricks): accept service_tier on requests and carry the served tier on responses by @devin-ai-integration[bot] in #46111
- feat(vertex-ai): add gemini-robotics-er-2-preview by @berriai-litellm-provider-info-sync[bot] in #46126
- feat(ui): add Home entry and independent LiteAdmin chat tabs by @tin-berri in #46068
- fix(bedrock): bill the regional row for inference-profile ARNs that embed a cross-region prefix by @devin-ai-integration[bot] in #46128
- feat(ui): give the Decisions playground a clearer request hierarchy by @devin-ai-integration[bot] in #45981
- fix(cost): bill azure_ai claude web searches under deployment-owned pricing ids by @kerry-berri in #46135
- test(cost): add BridgeCostParityTestCase with a gpt-6-sol /v1/messages to Responses pair by @devin-ai-integration[bot] in #46130
- test(cost): add Bedrock Converse Claude 5 /v1/responses bridge cost parity pairs by @kerry-berri in #46141
- fix(gemini): bill context cache creation tokens from cachedContents responses by @kerry-berri in #46144
- test(cost): add azure gpt-6 /v1/messages bridge cost parity pairs by @kerry-berri in #46139
- test(cost): add Claude 5 /v1/responses bridge cost parity pairs by @kerry-berri in #46140
- test(cost): add gpt-6 chat to Responses bridge cost parity pairs by @kerry-berri in #46143
- fix(vertex_ai): keep Gemini cache creation token count out of request kwargs by @devin-ai-integration[bot] in #46152
- test(cost): add long context tier cost cases for gpt-6 (272k) and claude-haiku-5-5 (100k) by @kerry-berri in #46147
- feat(guardrails): add Wingback guardrail integration by @yucheng-berri in #46136
- feat(focus): add ternary destination for FOCUS export by @yucheng-berri in #46106
- refactor(types): replace Any with proven types in 6 files by @devin-ai-integration[bot] in #46042
- fix(azure): sync embedding, tts-hd and legacy gpt prices with the azure-openai pricing page by @berriai-litellm-provider-info-sync[bot] in #46200
- feat(azure): add azure_ai/claude-fable-5-5 by @berriai-litellm-provider-info-sync[bot] in #46201
- fix(a2a): add per-agent a2a_protocol_version override for langgraph-api 0.15 cards by @devin-ai-integration[bot] in #44463
- fix(proxy)!: enforce fallback model access by default by @moyai-berriai[bot] in #46127
- fix(db): partition runbook moves the call-id index off the legacy spend logs table by @devin-ai-integration[bot] in #46131
- test(translation): add StreamingTranslationTestCase with a Claude Sonnet 5.5 chat completions case by @kerry-berri in #46151
- test(cost): add xai grok-4.7, Bedrock runtime chat completions and Bedrock Mantle cost cases by @kerry-berri in #46154
- fix(cost-map): restore together_ai Kimi-K3 standard price after promo ended by @berriai-litellm-provider-info-sync[bot] in #46226
- chore(prices): add gemini/gemini-4-argon from the Gemini pricing page by @berriai-litellm-provider-info-sync[bot] in #46227
- feat(vertex-ai): add gemini-4-argon by @berriai-litellm-provider-info-sync[bot] in #46228
- fix(gemini): take gemini-4-argon max output tokens from the model docs by @berriai-litellm-provider-info-sync[bot] in #46236
- feat(pricing): add vertex gemini-4-argon by @kerry-berri in #46237
- test(integration): isolate shared proxy state behind six order-dependent flakes by @yuneng-berri in #46172
- fix(mcp): let tool-argument validation calls set their own timeout budget by @VimarshDwivedi in #46184
- fix(pricing)!: drop duplicate and bare gemini-4-argon rows by @kerry-berri in #46246
- feat(vertex-ai): add gemini-4-argon-cyber-permissive by @berriai-litellm-provider-info-sync[bot] in #46249
- chore: bump litellm-enterprise 0.1.76 -> 0.1.77, litellm-proxy-extras 0.4.108 -> 0.4.109, litellm 1.106.0 -> 1.107.0 by @mateo-berri in #46239
- fix(proxy)!: return provider-matching 4xx for the LIT-8062 status code follow-ups by @yucheng-berri in #45537
- fix(proxy): raise on provider count_tokens errors instead of falling back to tiktoken by @krrish-berri-2 in #46121
- fix(logging): redact nested callback input and provider response fields by @moyai-berriai[bot] in #45923
- test(unit): wait on the work itself instead of fixed sleeps by @yuneng-berri in #46261
- fix(model-prices): add TokenHub rows, fix TokenHub DeepSeek-V4-Pro price, Bedrock Claude 3.5 Sonnet and Fireworks context windows, Together dates by @devin-ai-integration[bot] in #46206
- feat(ui): source Home What's new from day 0 support blog posts by @kerry-berri in #46260
- fix(proxy): keep provider refusal, logprobs and system_fingerprint in chat completions by @devin-ai-integration[bot] in #44788
- fix(proxy): broadcast team cache invalidation on team writes by @mrinal-berri in #46113
- feat(pricing): add github_copilot/gemini-4-argon by @berriai-litellm-provider-info-sync[bot] in #46280
- fix(proxy): warn when --max_requests_before_restart runs with a single worker by @yassin-berriai in #46185
- fix(cost-map): set together_ai Qwen3.7-Max to published price and restore 2026-09-15 removal dates by @berriai-litellm-provider-info-sync[bot] in #46281
- feat(realtime): proxy OpenAI Live sessions on /v1/live/sessions by @devin-ai-integration[bot] in #43621
- fix(mcp): resolve a bare tool name on a single-server scope against that server by @yassin-berriai in #46225
- fix(proxy): bound SIGTERM connection wait by GRACEFUL_SHUTDOWN_TIMEOUT by @yassin-berriai in #46186
- fix(openai): carry cache_control to prompt_cache_breakpoint on /v1/responses to gpt-5.6 by @ryan-crabbe-berri in #46105
- refactor(rust): one stream codec shape per API format by @yujonglee-berri in #45996
- chore(typing): clear 670 basedpyright Any errors by validating provider payloads at the boundary by @mateo-berri in #45388
- feat(ui): simplify LiteAdmin on the homepage by @moe-berri in #46301
- fix(openai): carry cache_control to prompt_cache_breakpoint on chat completions to gpt-5.6 by @ryan-crabbe-berri in #46101
- fix(ui): drop the beta marker from the dark mode toggle by @yuneng-berri in #46305
- docs(agents): steer tests away from implementation details and deliberate reverts by @yuneng-berri in #46317
- fix(ui): drop deprecation banners from kept features and make the rest permanent by @yuneng-berri in #46314
- fix(cost_calculator): honour base_model when the deployment provider row has no rates, with a live-proxy integration test by @kerry-berri in #46318
- fix(vertex_ai): unwrap tool-emulated json_schema envelopes and send output_config.format for Claude by @devin-ai-integration[bot] in #45871
- feat(telemetry): add litellm.telemetry records, semantic group consent and sink protocol by @devin-ai-integration[bot] in #45484
- fix(prometheus): skip custom metadata labels a metric already carries by @yucheng-berri in #46267
- feat(telemetry): add AggregatingSink, fixed-bucket histograms, Report and HttpExporter by @devin-ai-integration[bot] in #45487
- fix(sso): fall back to id_token claims when the generic userinfo response is not JSON by @yassin-berriai in #46187
- feat(telemetry): record proxy requests and provider attempts into the telemetry sink by @devin-ai-integration[bot] in #45489
- feat(telemetry): keep reports in a local table with a persistent instance id and an admin export route by @devin-ai-integration[bot] in #45490
- feat(telemetry): add the Admin UI telemetry settings page and gated page navigation events by @devin-ai-integration[bot] in #45494
- test(integration): cover model_management endpoint contracts by @devin-ai-integration[bot] in #44684
- test(integration): cover embeddings endpoint contracts by @devin-ai-integration[bot] in #44660
- test(integration): cover agents_a2a endpoint contracts by @devin-ai-integration[bot] in #44650
- test(integration): cover images endpoint contracts by @devin-ai-integration[bot] in #44653
- test(integration): cover audio endpoint contracts by @devin-ai-integration[bot] in #44699
- test(integration): cover scim endpoint contracts by @devin-ai-integration[bot] in #44656
- test(integration): cover chat_completions endpoint contracts by @devin-ai-integration[bot] in #44688
- test(integration): cover videos_containers endpoint contracts by @devin-ai-integration[bot] in #44691
- test(integration): cover realtime endpoint contracts by @devin-ai-integration[bot] in #44689
- fix(proxy-extras): bound migration lock waits with SET LOCAL lock_timeout in the migration SQL by @yassin-berriai in #46329
- test(integration): cover mcp_management endpoint contracts by @devin-ai-integration[bot] in #44687
- test(integration): cover vector_stores endpoint contracts by @devin-ai-integration[bot] in #44739
- test(integration): cover google_genai endpoint contracts by @devin-ai-integration[bot] in #44680
- test(integration): cover small_inference endpoint contracts by @devin-ai-integration[bot] in #44654
- test(integration): cover guardrails_policies endpoint contracts by @devin-ai-integration[bot] in #44722
- test(integration): cover prompts_tags_caching endpoint contracts by @devin-ai-integration[bot] in #44686
- build(deps): bump mlflow to 3.17.0 and drop GHSA-h7x2-h6g9-p789 suppression by @devin-ai-integration[bot] in #45777
- fix(proxy-extras): bound telemetry_reports migration lock waits with SET LOCAL lock_timeout by @yujonglee-berri in #46386
- feat(ui): move the upgrade notice into the notifications bell by @yuneng-berri in #46334
- feat(proxy): let team admins create keys for team members behind an opt-in setting by @ryan-crabbe-berri in #45870
- test(integration): cover teams endpoint contracts by @devin-ai-integration[bot] in #44705
- test(integration): cover health_routing endpoint contracts by @devin-ai-integration[bot] in #44744
- test(integration): cover files_batches endpoint contracts by @devin-ai-integration[bot] in #44703
- test(integration): cover anthropic_messages endpoint contracts by @devin-ai-integration[bot] in #44704
- test(integration): cover budgets_spend endpoint contracts by @devin-ai-integration[bot] in #44736
- test(integration): cover responses endpoint contracts by @devin-ai-integration[bot] in #44733
- test(integration): cover config_utils endpoint contracts by @devin-ai-integration[bot] in #44737
- test(integration): cover mcp_runtime endpoint contracts by @devin-ai-integration[bot] in #44671
- test(integration): pin assistants and evals endpoint contracts by @devin-ai-integration[bot] in #44734
- test(integration): cover keys_auth endpoint contracts by @devin-ai-integration[bot] in #44674
- test(integration): cover orgs_users_customers endpoint contracts by @devin-ai-integration[bot] in #44725
- test(integration): cover pass_through endpoint contracts by @devin-ai-integration[bot] in #44690
- feat(claude-code): emit installationPreference in marketplace.json entries by @devin-ai-integration[bot] in #41430
- fix(proxy): scope /global/activity/cache_hits analytics to the caller's own and permitted-team logs by @ojensen-berri in #46210
- fix(anthropic): cache tool result screenshots on the /v1/messages to Responses bridge by @ryan-crabbe-berri in #46324
- test(integration): cover fine_tuning endpoint contracts by @devin-ai-integration[bot] in #44697
- fix(databricks): send a single plain text block as a string for non-Claude models by @mrinal-berri in #45686
- feat(ui): show decision models as decisions and list the supported ones in the AI Hub by @devin-ai-integration[bot] in #45965
- feat(decisions)!: send images to Cloudflare Clef through its images field by @devin-ai-integration[bot] in #45734
- feat(anthropic): generate auto mode safeguard_results with a classifier model on the /v1/messages chat bridge by @devin-ai-integration[bot] in #45600
- feat(mcp): separate confidential client for ID-JAG leg 2 by @joshua-berri in #46211
- fix(http_handler): only replay POST and PATCH when the request never reached the upstream by @mateo-berri in #46336
- feat(decisions): add Laya and Bespoke providers to the Add Model form by @devin-ai-integration[bot] in #45260
- fix(ui): widen the LiteAdmin home model selector by @moe-berri in #46446
- fix(cache): keep cache hits free of unset fields, and follow intentional behavior changes in CircleCI suites by @mateo-berri in #46359
- fix(anthropic): check Vertex forced-tool support on the real model, skip non-string user ids, drop speed where unsupported by @ryan-crabbe-berri in #46337
- fix(sso)!: reject empty identities before session creation by @yucheng-berri in #44098
- chore(codeowners): replace kerrylu-berri with kerry-berri by @kerry-berri in #46452
- fix(cost-map): registry audit 2026-10-14, remove azure_ai/claude-fable-5-5 by @devin-ai-integration[bot] in #46428
- fix(proxy): build configured logging callbacks at boot so a broken callback fails startup instead of the first request by @ryan-crabbe-berri in #46378
- feat(dashscope): add Wan 3.0, Wan 2.7 and HappyHorse video generation via /v1/videos by @Bytechoreographer in #43706
- fix(anthropic): forward service_tier on chat completions to Anthropic and Azure by @ryan-crabbe-berri in #46461
- fix(ui): label Decisions playground issues by question key and fix the Response header row by @mateo-berri in #46145
- fix(http): restore the 15s aiohttp keep-alive default in the Python and Rust clients by @mateo-berri in #46355
- fix(vertex_ai): pass the per-request timeout to Gemini streaming calls by @kerry-berri in #46349
- feat(proxy): add deployment warning endpoints with instance-wide ignore and snooze by @yuneng-berri in #46347
- fix(proxy): check previous_response_id ownership on /v1/responses/compact by @mateo-berri in #46408
- refactor(router): name the pre-content stream retry helpers for both stream paths and let the retry loop take its attempt function by @kerry-berri in #46474
- fix(anthropic): stream json_schema answers as content on Bedrock Mantle and Claude Platform, and join split answers by @mateo-berri in #46331
- fix(caching): collect the Redis circuit-breaker state gauge as one series per state across worker processes by @kerry-berri in #46357
- fix(gemini): add the changelog shutdown date to gemini-2.0-flash-exp-image-generation by @berriai-litellm-provider-info-sync[bot] in #46489
- test(integration): remove six setup causes of CircleCI integration reds by @yuneng-berri in #46490
- fix(s3_v2): bound each upload attempt, add jitter, retry 429 and transport errors in the call by @ryan-crabbe-berri in #46340
- fix(streaming): add CustomStreamWrapper.close() and release the connection when a sync stream ends by @kerry-berri in #46354
- feat(proxy): let proxy admins open soft_budget to team admins by @yuneng-berri in #46485
- fix(proxy): accept every known logging callback on /health/services by @yassin-berriai in #46297
- test(proxy): cover the OTel V2 otel callback on /health/services by @yassin-berriai in #46394
- fix(vllm): write spend log rows for /vllm passthrough calls to router models by @devin-ai-integration[bot] in #45733
- fix(config): treat blank env values as unset so the proxy neither crash-loops nor silently drops a guardrail by @ryan-crabbe-berri in #46341
- fix(proxy): evict the cached user on every proxy for every /user/update and /user/bulk_update by @yuneng-berri in #46500
- feat(proxy): let proxy admins open team member defaults to team admins by @yuneng-berri in #46353
- fix(anthropic): forward service_tier on /v1/messages for anthropic, azure_ai and bedrock_mantle by @kerry-berri in #46370
- fix(router): read the first stream chunk before returning so a failure before any token runs through the retry and fallback budget by @kerry-berri in #46493
- fix(caching): report Redis circuit-breaker metrics through the Prometheus services logger by @kerry-berri in #46484
- fix(anthropic): keep refusal stop_reason and stop_details on the logged response by @devin-ai-integration[bot] in #46104
- fix(router): add fallback_on_unsupported_params so param rejections can raise instead of falling back by @kerry-berri in #46350
- feat(access-groups): per-server MCP tool permissions on access groups by @yassin-berriai in #46300
- feat(helm): read database and Redis host or URL from a Kubernetes Secret by @yassin-berriai in #46410
- fix(mcp): leave out tool texts too long to embed instead of failing tool search by @devin-ai-integration[bot] in #43554
- perf(scim): batch group member identity lookups into one query per push by @yassin-berriai in #46412
- feat(helm): support a separate hostname per component in the componentized deploy by @yassin-berriai in #46360
- fix(redis): default every Redis client to a 5s socket timeout when none is set by @ryan-crabbe-berri in #46501
- fix(router): report fallbacks skipped for access or budget instead of calling them failed by @yassin-berriai in #46291
- fix(proxy): finish prisma engine requests when their caller is cancelled by @yassin-berriai in #46503
- fix(proxy-extras): run prisma migrate deploy under the pinned coordinator lock instead of Prisma's session advisory lock by @yassin-berriai in #46368
- test(integration): fix three more CircleCI integration reds from test setup by @yuneng-berri in #46510
- fix(caching): make Redis Cluster commands wait for a pool slot instead of tripping the circuit breaker by @yassin-berriai in #46488
- test(rust): assert native serving via the x-litellm-rust response marker by @yujonglee-berri in #46531
- fix(responses): propagate cache_control through responses->chat completion bridge by @TobiMayr in #32511
- feat(guardrails): add Airia guardrail integration by @airia-open-source in #40784
- feat(terraform): add team_member_model_max_budget to litellm_team by @matthowardcohere in #46274
- fix(responses): keep the provider code and message on top-level stream error events by @mateo-berri in #46438
- feat(access-groups): grant Claude Code skills through access groups by @yassin-berriai in #46294
- test(integration): delete flaky team model TPM concurrency test by @kerry-berri in #46541
- fix(vertex-ai): add flex prices to gemini-nano-banana-2.1 by @berriai-litellm-provider-info-sync[bot] in #46512
- feat(proxy): let proxy admins open team metadata to team admins, keeping proxy settings with proxy admins by @yuneng-berri in #46506
- fix(responses): return the first message item as content for structured output on the chat bridge by @kerry-berri in #46508
- fix(cost): split xai spend rows across input and output instead of booking the total as output by @kerry-berri in #46320
- test(rust-bridge): pin Messages and Responses callback contracts on the native path by @yujonglee-berri in #46443
- test(host-python): move driver tests out of the inline module by @yujonglee-berri in #46325
- refactor(host-python): collect host failures in a thiserror Error enum by @yujonglee-berri in #46361
- refactor(host-python): run the Python driver as one async body by @yujonglee-berri in #46235
- refactor(rust-bridge): generator-style execution protocol with stream step names by @yujonglee-berri in #46282
- test(translation): share rich request and response templates by @kerry-berri in #46546
- refactor(rust-bridge): return an unstarted Execution from native entrypoints and drive it in Python by @yujonglee-berri in #46299
- test(integration): add claude-haiku-5-5 basic translation cases by @devin-ai-integration[bot] in #45176
- feat(ui): add the Airia guardrail to the Guardrail Garden with its logo by @airia-open-source in #46562
- feat(proxy): return the W3C traceresponse header on traced responses by @adityajoy-1902 in #42079
- feat(proxy): general_settings.disable_requester_ip_address_logging keeps caller IP out of spend logs by @yucheng-berri in #45804
- test(integration): update stale CircleCI integration expectations by @yuneng-berri in #46570
- fix(cli): run group subcommands in the lite shell and default to the logged-in gateway by @mateo-berri in #46511
- fix(cost): price AgentCore web search at $7 per 1,000 queries by @litellm-stampbot in #46571
- feat(ui): replace deployment warning banners with a health icon, alert banner and panel by @yuneng-berri in #46498
- fix(caching): report zero response_cost on a response-cache hit by @Apeksha9389 in #46471
- fix(responses bridge): keep defer_loading on function tools sent to the Responses API by @mateo-berri in #46439
- fix(router): read the first stream chunk through aiter so MCP auto-run streaming works again by @kerry-berri in #46578
- fix(anthropic): keep tool_search_tool_result so the search call replays with its result by @mateo-berri in #46440
- test(translation): add gpt-6-astra translation cases by @devin-ai-integration[bot] in #46580
- test(translation): recapture bedrock invoke claude-sonnet-4-6 bases after usage shape change by @devin-ai-integration[bot] in #46579
- test(translation): add claude-fable-5-1 translation cases by @devin-ai-integration[bot] in #46581
- fix(bedrock)!: replay redacted_thinking on Converse and keep its data as Claude's own string by @ryan-crabbe-berri in #46532
- test(translation): share rich fixtures across Claude, GPT and Gemini providers by @kerry-berri in #46585
- fix(bedrock): use base_model for Claude capability checks on application inference profile ARNs by @ryan-crabbe-berri in #46569
- feat(cost-map): add scx-ai DeepSeek-V4.1-flash, GLM-5.3 and Kimi-K3 by @devin-ai-integration[bot] in #46496
- fix(cost): price typesafe/jev-1.14.0 by @hyamie in #46594
- fix(responses): translate OpenAI tool_search to Anthropic tool search for Claude models by @devin-ai-integration[bot] in #45882
- test(integration): follow #46101 in the breakpoint cache mark census expectation by @mateo-berri in #46509
- fix(router): keep the prompt caching affinity pin alive as long as the prefix's cache_control ttl by @devin-ai-integration[bot] in #46084
- fix(anthropic): emit one tool_use block per call when a /v1/messages stream chunk carries several by @narmstrong-berri in #46492
- refactor: clean up fresh tech debt in per-user Copilot auth, Ternary FOCUS export and telemetry by @devin-ai-integration[bot] in #45769
- fix(responses bridge): round-trip tool_search_call and tool_search_output items between turns by @mateo-berri in #46444
- fix(anthropic)!: translate the OpenAI tool_search tool on /v1/chat/completions for Claude models by @mateo-berri in #46389
- fix(xai): name a completed xAI batch's results file and stop looking it up on xAI's files API by @yucheng-berri in #45559
- chore(prices): add xAI grok-voice-3.0, grok-voice-2.0 and grok-voice-latest realtime rows by @berriai-litellm-provider-info-sync[bot] in #46602
- fix(responses): map Anthropic tool search to OpenAI server tool search by @mateo-berri in #46441
- fix(proxy): store list-valued audit log changes as JSON text by @yuneng-berri in #46555
- fix: index streamed thinking_blocks so the OpenAI SDK .stream() accumulator accepts them by @kerry-berri in #46611
- feat(xai): bill grok voice realtime sessions by @kerry-berri in #46600
- feat(typesafe): support Jev 1.14 images, box questions, and long-context headers by @mateo-berri in #46596
- fix(proxy): gzip responses over 16 KiB off the event loop by @mihidumh in #46362
- fix(proxy): keep JSON nulls as null in audit log values by @yuneng-berri in #46577
- test: expect the list-position index on streamed thinking blocks in the integration suite by @kerry-berri in #46618
- test: compare coding-agent response contracts across model tiers by @kerry-berri in #46597
- feat(ui): filter active and paused model deployments by @thementalcoding in #43710
- fix(anthropic): keep signed empty thinking blocks on /v1/messages requests by @clonylu in #41362
- test(cost): add tier 1 gpt cache_read cases and recapture input_text usage shapes by @devin-ai-integration[bot] in #46623
- test(integration): cache the two-turn tool_search guardrail replays by @mateo-berri in #46614
- test: cover response contracts across translation endpoints by @kerry-berri in #46632
- perf(proxy): cache the public provider and agent field endpoints by @mateo-berri in #46617
- fix(proxy): resolve model aliases to their target deployment for listing metadata by @haydster7 in #41041
- fix: cap cold MCP schema workers at usable CPUs and deflake wall-clock unit tests by @devin-ai-integration[bot] in #45791
- fix(auth): return a generic 401 for an unknown key by @koladefaj in #39787
- fix(proxy): scope /spend/tags aggregates to the caller's own and permitted-team logs by @ojensen-berri in #46194
- fix(anthropic/adapter): stop translate_anthropic_tools_to_openai mutating the caller's input_schema by @ErenAta16 in #34653
- fix(vertex): report an unreadable credentials file as a read failure by @koladefaj in #40173
- fix(llms): sanitize trailing slashes in provider get_complete_url by @Raushankumar0720 in #42887
- fix(vertex_ai): return 400 with file line number for malformed batch JSONL row by @devin-ai-integration[bot] in #40097
- test(ci): pin the xai reported-cost split and the coordinator-held Prisma lock wait by @mateo-berri in #46645
- fix: preserve explicit provider for async image, audio, and realtime routes by @WongAnneLister in #36346
- feat(minimax): add MiniMax-H3 and H3-Max video generation via /v1/videos by @Bytechoreographer in #43705
- test(caching): baseline breaker metrics from live state after gc by @devin-ai-integration[bot] in #46652
- refactor(types): replace Any with proven types in 24 files by @mateo-berri in #46663
- fix(vertex_ai): prevent Gemini from misinterpreting $ref in tool results by @Sushit-prog in #38284
- fix(decisions): keep box answers from OpenAI-format providers instead of turning them into refusals by @mateo-berri in #46633
- fix(decisions): answer 400 on a malformed provider_specific_header instead of dropping it by @mateo-berri in #46619
- fix: keep model capability flags out of provider requests by @mateo-berri in #46647
- fix(count_tokens): count system and tools on Vertex Gemini, fall back to Mantle on Bedrock 404 by @mrinal-berri in #46430
- fix(vertex_ai): route Model Garden models through the generateContent adapter by @devin-ai-integration[bot] in #41836
- fix(streaming): keep provider response headers on SDK streaming errors by @Acacian in #41528
- feat(providers): add Inference APIs as OpenAI-compatible provider by @TaylorHawkes in #41669
- fix(model_prices): registry audit 2026-10-15, OpenAI GPT-4 shutdown dates, Azure gpt-chat-latest, xAI voice text input, Sail prices by @devin-ai-integration[bot] in #46675
- test(translation): add claude-sonnet-5-5 anthropic messages service_tier case by @devin-ai-integration[bot] in #46678
- test(cost): add best-guess tier 1 cases for vertex_ai and azure_ai claude and gpt-6 cache_write_5m by @devin-ai-integration[bot] in #46687
- test(integration): expect signed empty thinking blocks to survive /v1/messages replay after #41362 by @mateo-berri in #46686
- test(rust-bridge): select native routes per test without LITELLM_RUST by @yujonglee-berri in #46620
- test(translation): recapture azure gpt-6-astra content_filters by @kerry-berri in #46691
- test(cost): let CostMapEntry hold flex, priority and ultrafast cache and tier prices by @kerry-berri in #46629
- feat(cost-map): add together_ai NVIDIA-Nemotron-3.5-Super-VL by @berriai-litellm-provider-info-sync[bot] in #46693
- fix(responses): open faked stream items empty so tool arguments and text arrive once by @mateo-berri in #46533
- test(cost): add azure_ai claude-haiku-5-5 cases and gpt-6 service tier cache prices by @devin-ai-integration[bot] in #46694
- fix(bedrock): type performanceConfig latency as standard or optimized by @kerry-berri in #46698
- fix(jwt): honor end_user_id_jwt_field on the JWT-to-virtual-key mapped path by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46637
- feat(docker): stop, start, and uninstall a quickstart install with litellm-gateway by @misbahsy in https://github.com/BerriAI/litellm/pull/46486
- test(cost): add tier 1 claude messages stream twins and recapture drifted usage shapes by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46690
- fix(proxy): list team access group models in /v1/model/info and keep key model lists narrow by @le-shi in https://github.com/BerriAI/litellm/pull/32599
- test(cost): cover turn-2 usage shapes across bridged previous_response_id, cached streams and passthrough cache writes by @kerry-berri in https://github.com/BerriAI/litellm/pull/46703
- test(cost): cover custom deployment aliases, off-peak pricing, bridge usage shapes and duplicate spend rows by @kerry-berri in https://github.com/BerriAI/litellm/pull/46708
- test(cost): pin litellm's own prompt count over a tool-call history when the stream carries no usage by @kerry-berri in https://github.com/BerriAI/litellm/pull/46710
- refactor(rust-bridge): remove the LoggerRule concept from the catalog by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46711
- test: extend runtime regression contracts for Messages and SDK by @kerry-berri in https://github.com/BerriAI/litellm/pull/46641
- feat(proxy): report when each per-model budget window resets by @Thijmen in https://github.com/BerriAI/litellm/pull/45797
- fix(scim): write a group's roster in one locked transaction instead of one member at a time by @mateo-berri in https://github.com/BerriAI/litellm/pull/45197
- fix(proxy): allow model instances in LiteLLM_EndUserTable validation by @yuefdev in https://github.com/BerriAI/litellm/pull/41677
- fix(responses): bill a background response once, on the first read or poll that sees it finished by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/45703
- feat(rust): add native OpenRouter Responses by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46000
- fix(openai): strip prompt_cache_breakpoint under drop_params for OpenAI models that cannot read it by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46453
- feat(batches): store each batch line's request and response in S3 and GCS by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41691
- feat(bedrock): add the jp.amazon.nova-2-lite-v1:0 geo inference profile by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46721
- fix(guardrails): resolve decision models in caller team scope by @moyai-berriai[bot] in https://github.com/BerriAI/litellm/pull/46085
- feat(proxy): split Azure PTU deployments across teams with per-team PTU ceilings and PTU-hour reporting by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/43043
- fix(anthropic): keep signed empty thinking blocks and honor thinking.block_binding by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46342
- test(integration): remove BUG skips for 3 tests that pass on main by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46725
- fix(mcp): preserve progress and cancel upstream work promptly by @joshua-berri in https://github.com/BerriAI/litellm/pull/46134
- fix(test): wait for the wedged Redis to be reached instead of a fixed 0.1s sleep in team roster sync tests by @mateo-berri in https://github.com/BerriAI/litellm/pull/46727
- fix(bedrock): add Priority and Flex prices to the gpt-oss-120b and gpt-oss-20b rows by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46728
- feat(vertex-ai): add deepseek-v4.1-flash-maas by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46729
- fix(cost): price bridged /v1/messages reasoning tokens from the chat completion, not the served Anthropic body by @kerry-berri in https://github.com/BerriAI/litellm/pull/46726
- test(integration): drop inherited provider API keys from the integration runner env by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46733
- fix(search): bill an unpriced fallback search tool at its own price, not the failed primary's by @kerry-berri in https://github.com/BerriAI/litellm/pull/46734
- fix(decisions): read a deployment's own supports_box_questions flag before the cost map by @mateo-berri in https://github.com/BerriAI/litellm/pull/46696
- Revert "feat(proxy): add LITELLM_FIPS_MODE startup gate with provider assertion and loud password migration failure" (#42700) by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46740
- ci(unit): run the two slowest shards on 4 workers by @kerry-berri in https://github.com/BerriAI/litellm/pull/46743
- feat(agents): support Databricks Agent Platform agents in the agent gateway by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/45681
- feat(model_prices): add missing OpenAI, Together, Fireworks and Bedrock registry entries by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46742
- fix(s3): bound object key filenames by @link89 in https://github.com/BerriAI/litellm/pull/40825
- test(e2e): perf rig (out-of-process mocks, PerformanceTestCase runner, per-request limits) and the small_bodies_5rps case by @kerry-berri in https://github.com/BerriAI/litellm/pull/46713
- feat(mcp): relay authorized modern upstream subscriptions by @joshua-berri in https://github.com/BerriAI/litellm/pull/46153
- fix(vertex-ai): price deepseek-v4.1-flash-maas at zero during free period by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46753
- fix(vector_stores): stop sharing one list across default-constructed registries by @msdianprince-7 in https://github.com/BerriAI/litellm/pull/38879
- test(integration): wait on the right signal in five flaky integration contracts by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46737
- refactor(typing): clear 1143 basedpyright Any errors across 273 files by @mateo-berri in https://github.com/BerriAI/litellm/pull/46574
- fix(websearch_interception): intercept the bare web_search tool type on chat completions by @mateo-berri in https://github.com/BerriAI/litellm/pull/46736
- fix(prompt_templates): do not mutate messages in-place in function_call_prompt by @mgeorgaklis in https://github.com/BerriAI/litellm/pull/41676
- fix(anthropic): count a replayed server tool call's cache mark the way modify_params sends it by @mateo-berri in https://github.com/BerriAI/litellm/pull/46591
- fix(proxy-extras): accept unencoded DB passwords in the v2 migration lock and redact its errors by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46592
- fix(proxy-extras): hold only Prisma's lock key during migrate deploy so it never waits on the request log index build by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46660
- fix(proxy): honor disable_end_user_cost_tracking in spend logs and end-user tables by @Dotify71 in https://github.com/BerriAI/litellm/pull/40945
- feat(proxy): name the successor model for deprecating deployments by @rameswaran-mohan in https://github.com/BerriAI/litellm/pull/41670
- fix(azure): set azure_ai/claude-opus-5-5-fast deprecation_date from list API by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46760
- feat(ui): set a search tool's cost per query from the Admin UI by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46723
- fix(proxy): chain RDS IAM DB auth through the IRSA role when the DB role trusts only the pod role by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46540
- feat(helm): expose Redis TLS settings in the litellm chart redis values by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46536
- fix(proxy): route SSO token exchange and userinfo calls through litellm's httpx client by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46547
- fix(mcp): persist the first DCR client for config-declared servers regardless of who registers by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46544
- fix(mcp): accept validated JWT subjects after virtual-key mapping by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46549
- feat(mcp): add mcp_disabled_capabilities to stop advertising prompts and resources by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46563
- feat(ui): scope the MCP server selector to the team, user and access groups it edits by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46565
- fix(oci): drop non-function tools under drop_params and gate reasoning_effort on declared levels by @fede-kamel in https://github.com/BerriAI/litellm/pull/40732
- fix(anthropic): send detail on input_image parts bridged from /v1/messages to Responses by @mateo-berri in https://github.com/BerriAI/litellm/pull/46720
- feat(helm): add db.useIAMAuth and db.useAzureEntraAuth token auth to litellm-helm by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46534
- test(integration): assert the streamed usage.cost matches the spend row on every cost case by @kerry-berri in https://github.com/BerriAI/litellm/pull/46762
- ci(unit): mcp-elicitation shard runs dist load so test_interactions.py's 74 params spread over its 4 workers by @kerry-berri in https://github.com/BerriAI/litellm/pull/46770
- feat(terraform): write-only secret attributes to keep secrets out of state by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46538
- fix(ci): run the MCP interactions integration contract in its own unit shard by @mateo-berri in https://github.com/BerriAI/litellm/pull/46773
- fix(mcp): resolve /mcp/proxy tool_id from the owning server instead of relisting every server by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46545
- fix(proxy): preserve AWS session tokens for RDS IAM auth by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46559
- feat(gemini)!: auto-continue gemini-4-argon long decodes with continuationToken by @mateo-berri in https://github.com/BerriAI/litellm/pull/46240
- fix(ui): place Home Create New Virtual Key button like the Virtual Keys page by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/46778
- fix(mcp): scope gateway OAuth consent to x-mcp-servers and add explicit scope setting by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44957
- fix(mcp): request offline access from Google upstream OAuth providers by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41197
- fix(anthropic): drop unknown legacy thinking keys under drop_params when rebuilding adaptive thinking by @mateo-berri in https://github.com/BerriAI/litellm/pull/46741
- feat(mcp): enable verified stateless protocol capabilities by @joshua-berri in https://github.com/BerriAI/litellm/pull/46264
- fix(ci): restore loadscope on the mcp-interactions shard so its MCP subscription cases do not race across workers by @mateo-berri in https://github.com/BerriAI/litellm/pull/46783
- feat(proxy): add agent_access_default_deny for least-privilege agent access by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/43979
- fix(rust-bridge): honor the configured request_timeout on native Messages by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46749
- ci: run mcp interactions and redis cluster iam integration tests only in circleci by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46780
- test(integration): hand every harness server a port from one per-worker block by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46761
- fix(terraform): stop the perpetual plan diff on litellm_mcp_server by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46781
- test(e2e): perf users start staggered with jitter, tool-call streams get a first token, small_bodies_5rps sends from the mixed case's callers by @kerry-berri in https://github.com/BerriAI/litellm/pull/46776
- fix(ollama): prevent reused response ids from dropping spend logs by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/39227
- fix(vertex-ai): end free period for deepseek-v4.1-flash-maas by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46793
- feat(cost-map): add baseten Muse Spark Open and Nemotron 3.5 Super VL by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46794
- fix(proxy): limit gzip to dashboard analytics and offload compression by @tin-berri in https://github.com/BerriAI/litellm/pull/46712
- chore(pricing): add github_copilot deprecation dates for claude-opus-5 and gpt-5.6-terra by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46792
- ci(cost map): classify token_count_framing and token_count_fallback_model in the schema generator by @mateo-berri in https://github.com/BerriAI/litellm/pull/46784
- fix(terraform): accept 2xx from the proxy in mcp server, model, key and org requests by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46550
- fix(proxy): cooldown errors carry 429, Sentry starts at boot without request bodies, tracing failures log at ERROR, exporter counters exported by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46344
- feat(wandb): add NVIDIA Nemotron 3.5 Super VL to the cost map by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46795
- fix(bedrock): forward Nova Sonic realtime tool calls with their arguments by @mrinal-berri in https://github.com/BerriAI/litellm/pull/46214
- test(ui): send Connection: close on every integration browser request by @mateo-berri in https://github.com/BerriAI/litellm/pull/46805
- refactor(rust-bridge): move the route host modules under host/routes by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46786
- refactor(rust-bridge): let each route host pick the body params by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46787
- fix(responses): preserve explicit websocket API keys (internal copy of #40853) by @mateo-berri in https://github.com/BerriAI/litellm/pull/46724
- test(integration): build OpenAI and Anthropic SDK models before tests start threads by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46797
- fix(guardrails): honor streaming settings on the Noma v2 guardrail by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46606
- fix(count_tokens): count Anthropic-format requests for OpenAI the way /v1/messages inference converts them by @mateo-berri in https://github.com/BerriAI/litellm/pull/46759
- fix(sso): share SAML sign-in state over Redis without enable_redis_auth_cache by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46807
- fix(responses): write one spend-log row per native WebSocket turn by @kerry-berri in https://github.com/BerriAI/litellm/pull/46768
- fix(crusoe): update base URL to current endpoint by @acheamponge in https://github.com/BerriAI/litellm/pull/33121
- test(e2e): attach perf case metrics and limits as JUnit properties by @narmstrong-berri in https://github.com/BerriAI/litellm/pull/46774
- fix(terraform)!: send additional_drop_params to the proxy instead of deleting the keys it names by @mateo-berri in https://github.com/BerriAI/litellm/pull/46782
- fix(count_tokens): count Anthropic-format requests for Gemini the way /v1/messages inference converts them by @mateo-berri in https://github.com/BerriAI/litellm/pull/46767
- fix(proxy): reset end-user spend in committed pages so the budget cascade survives a large LiteLLM_EndUserTable by @kerry-berri in https://github.com/BerriAI/litellm/pull/46502
- test(e2e): perf datastore limits count the Postgres statements and Redis commands a request waits on, background work reported on its own by @kerry-berri in https://github.com/BerriAI/litellm/pull/46798
- fix(cost): bill Responses API image generation and usage reported web search as tool usage cost by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41877
- fix(count_tokens): return a 400 naming Anthropic blocks the OpenAI and Gemini count can't convert by @mateo-berri in https://github.com/BerriAI/litellm/pull/46772
- fix(vertex-ai): drop cached flex price from gemini 3 preview rows by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46826
- fix(proxy): only release the legacy limiter's slot from an admitted Responses WebSocket by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46822
- test(e2e): mixed_size_requests_2rps perf case (coding-agent bodies 5k to 1m tokens with tools, JWT and key callers, two guardrails) by @kerry-berri in https://github.com/BerriAI/litellm/pull/46717
- fix(ui): validate the Add Model form when Test Connect is clicked by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46834
- fix(bedrock-passthrough)!: return AWS-shaped errors so AWS SDKs read the code and message by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46522
- test(integration): wait for the gen-AI span before reading the excluded-services operator trace by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46846
- feat(soniox): decode proxy form fields for context, translation and flags by @dan2k3k4 in https://github.com/BerriAI/litellm/pull/40605
- fix(router): let an exact base_model widen a deployment's context window by @setarm01 in https://github.com/BerriAI/litellm/pull/46197
- fix(bedrock): grant sts:GetWebIdentityToken and sts:TagGetWebIdentityToken in web identity session policy for claude_platform by @Bochenski in https://github.com/BerriAI/litellm/pull/46670
- fix(proxy)!: count endpoints return errors in their source API shape instead of silent local counts by @mateo-berri in https://github.com/BerriAI/litellm/pull/46815
- fix(responses): preserve provider request IDs in streaming failure logs by @moyai-berriai[bot] in https://github.com/BerriAI/litellm/pull/45453
- fix(guardrails): record every content filter match in logging_only and offer the mode in the UI by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46673
- fix(anthropic): keep trailing user messages with None or empty list content by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41397
- fix: preserve non-null anyOf branches when stripping null types for Vertex by @debanshd in https://github.com/BerriAI/litellm/pull/41683
- perf(ui): page the member tables and look up budget rows once per render by @Bytechoreographer in https://github.com/BerriAI/litellm/pull/26667
- fix(proxy): track and drain management audit log writes on shutdown by @akram1089 in https://github.com/BerriAI/litellm/pull/43594
- feat(gemini): allow disabling thought summaries while keeping thinking on by @Aryan-Pardeshi in https://github.com/BerriAI/litellm/pull/36460
- fix(router)!: keep RPM, region, and param checks when token counting fails by @ryuto-takemoto in https://github.com/BerriAI/litellm/pull/44544
- fix(prompt-templates): treat initial_prompt_value and final_prompt_value as optional by @mdevhurt1 in https://github.com/BerriAI/litellm/pull/39762
- fix(proxy)!: count prompt-only token_counter requests with the provider when call_endpoint is set by @mateo-berri in https://github.com/BerriAI/litellm/pull/46839
- fix(interactions): keep background interaction bills through crashes, late restarts, and deployment keys by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/45743
- fix(proxy)!: honor caller litellm_session_id in spend log session_id by @deepanshupal in https://github.com/BerriAI/litellm/pull/44199
- feat(router): mid-stream fallback continuation for chat completions by @ayushh0110 in https://github.com/BerriAI/litellm/pull/41127
- feat(volcengine): add Doubao-Seedance video generation via the OpenAI /v1/videos surface by @Bytechoreographer in https://github.com/BerriAI/litellm/pull/46156
- fix(realtime)!: keep turn_detection.type when a transcript guardrail disables auto-response by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44939
- fix(budget): hold Redis-less budget spend per key instead of queueing it per request by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46831
- fix(proxy)!: delete callbacks configured under callbacks or failure_callback by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/42740
- feat(ui): turn the Chat UI on by default by @krrish-berri-2 in https://github.com/BerriAI/litellm/pull/46918
- fix(bedrock)!: keep reasoning, thinking blocks and the json_mode finish_reason on fake streams by @mateo-berri in https://github.com/BerriAI/litellm/pull/46863
- test(cost): add tier 1 cost tracking cases for gpt-5.6-terra, gemini-4-argon and gemini-3.1-pro-preview by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46931
- fix(responses): log and bill every round of non-stream MCP auto-execute by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/43667
- fix(count_tokens): apply context_management edits in the Gemini /v1/messages/count_tokens count by @mateo-berri in https://github.com/BerriAI/litellm/pull/46843
- test(cost): bill vertex gemini-3.8-flash reasoning tokens at the reasoning price by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46939
- fix(proxy): streaming responses hand the event loop back every 50 ms instead of holding it for the whole buffered stream by @kerry-berri in https://github.com/BerriAI/litellm/pull/46925
- test(perf): cap every awaited Postgres statement at 0.5 calls per request by @kerry-berri in https://github.com/BerriAI/litellm/pull/46944
- feat(mcp): accept an ID-JAG as an RFC 7523 jwt-bearer grant on the gateway token endpoint by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46748
- feat(sso): capture the IdP id_token on Microsoft and Google logins for oauth2_id_jag by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46747
- feat(sso): retain the SAML assertion at login as the saml2 subject token for oauth2_id_jag by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46745
- test(rust-bridge): relocate dispatch tests to the Rust test suite by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/46926
- fix(tests): drain SDK logging before restoring callbacks by @kerry-berri in https://github.com/BerriAI/litellm/pull/46924
- test(integration): remove BUG skip for 1 test that passes on main by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46937
- test(perf): cap every background Postgres statement at 0.9 calls per request by @kerry-berri in https://github.com/BerriAI/litellm/pull/46957
- fix(rust): forward Anthropic headers to DeepSeek by @mateo-berri in https://github.com/BerriAI/litellm/pull/46959
- test(cost): rekey vertex gemini, add bedrock mantle gpt and claude-opus-5-5, drop suite-only price fields by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46962
- fix(openai)!: route gpt-transcribe to GPT audio transcription config by @irvallensar in https://github.com/BerriAI/litellm/pull/44021
- feat(ui): add the 1 hour cache write cost to the add model and model edit forms by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46830
- fix(proxy): report in-memory spend queue size by @mateo-berri in https://github.com/BerriAI/litellm/pull/46956
- fix(bedrock): drop dangerous-tool-use beta without safeguards by @axelray-dev in https://github.com/BerriAI/litellm/pull/44471
- feat(cost-map): add together_ai reflection/Beam-1.0-501B-A23B by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46964
- feat(ui): redesign the playground chat around a single composer and inspector by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46934
- build(deps): bump claude-agent-sdk to 0.2.165 to unblock osv-scan by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46971
- fix(proxy): keep a retried /v1/messages stream's spend log by logging the superseded attempt as a failure by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/45136
- fix(mcp): stop proxy-started legacy listeners from consuming server rpm by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46968
- fix(proxy): give /team/delete transactions a 30s timeout by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46979
- feat(ui): add Authorization URL, Token URL and Scopes fields for OAuth Delegate and True Passthrough MCP servers by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46941
- fix(guardrails): accept Gemini tools in generic_guardrail_api, add opt-in forward_messages_as_sent, name the error type on fail-open by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46338
- docs(agents): keep directory rules in nested AGENTS.md and pin integration tests to CircleCI by @mateo-berri in https://github.com/BerriAI/litellm/pull/46796
- fix(proxy)!: answer 400 for malformed tools on count_tokens instead of crashing by @mateo-berri in https://github.com/BerriAI/litellm/pull/46583
- fix(sso): concurrent first sign-ins land on the winner's account, worker-kill test stops waiting on the reap by @mateo-berri in https://github.com/BerriAI/litellm/pull/46855
- fix(bedrock): backfill Priority and Batch prices from the AWS offer index by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/46987
- feat(cost-map): add baseten and nebius rows for Reflection Beam 1.0 by @litellm-stampbot in https://github.com/BerriAI/litellm/pull/46991
- fix(cost): bill bridged /v1/messages Responses replies like native /v1/responses for reasoning tokens and service tier by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46975
- fix(providers): route Azure Responses past dated api versions, count Grok reasoning tokens on azure_ai, refresh provider sets after register_model, fix gpt-6.1-sol Azure rows by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46377
- feat(openai)!: honor per-deployment workload identity on non-chat routes by @mateo-berri in https://github.com/BerriAI/litellm/pull/39966
- refactor(ui): validate model edit prices in the zod schema by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46978
- fix(bedrock): set supports_none_reasoning_effort on gpt-6-sol and gpt-6-luna by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47000
- test(integration): fix seven CircleCI integration tests that race or assume a worker spread by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47001
- test(e2e): fix MCP tool search hit matching and the retired Bedrock image model by @yuneng-berri in https://github.com/BerriAI/litellm/pull/46998
- test(ui): wait for the logout redirect before visiting a protected page by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47008
- feat(cost-map): support s3:// URIs for LITELLM_MODEL_COST_MAP_URL by @kerry-berri in https://github.com/BerriAI/litellm/pull/46972
- feat(ui): shareable URL state for usage views and users-to-usage deeplinks by @jesus-berri in https://github.com/BerriAI/litellm/pull/43425
- fix(azure_ai): bill Grok reasoning tokens whatever the deployment is named by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46969
- fix(ui): preserve key settings drafts during background refreshes by @yuneng-berri in https://github.com/BerriAI/litellm/pull/41350
- fix(openai_like)!: surface provider response headers on non-streaming chat completions by @jesus-berri in https://github.com/BerriAI/litellm/pull/46928
- fix(bedrock)!: block realtime replay after an input-first start and reject malformed Nova Sonic session settings by @mateo-berri in https://github.com/BerriAI/litellm/pull/46936
- fix(logging): stop the spend metadata merge from walking a dict the logging thread writes to by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46044
- docs(cost): rewrite stale completion_cost docstring by @kerry-berri in https://github.com/BerriAI/litellm/pull/47022
- fix(openai): send chat completions through client.post so the SDK's per-message param transform stops holding the event loop by @kerry-berri in https://github.com/BerriAI/litellm/pull/46967
- feat: add Nace Drex decisions provider by @joshua-berri in https://github.com/BerriAI/litellm/pull/46523
- test(integration): expect a pre-token invalid prompt on a bridged stream to fall back by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47020
- test(e2e): repair fallback management test for config-owned fallbacks by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47023
- fix(proxy): keep the OIDC login refresh token as the ID-JAG subject when the SSO client is the ID-JAG client by @yassin-berriai in https://github.com/BerriAI/litellm/pull/47004
- test(e2e): assert the Vertex cache-creation billing contract in the prompt caching test by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47027
- build(docker): cache the Rust extension build in its own stage by @mateo-berri in https://github.com/BerriAI/litellm/pull/47033
- fix(proxy): unset DB environment variables removed from the row on every worker by row revision by @mateo-berri in https://github.com/BerriAI/litellm/pull/46709
- ci(cost map): classify token_count_model as an object key in the schema generator by @mateo-berri in https://github.com/BerriAI/litellm/pull/47057
- fix(bedrock): use native structured output on Haiku 5.5 and Sonnet 5.5, and fix Fable 5 and Sonnet 4.6 schema 400s by @mateo-berri in https://github.com/BerriAI/litellm/pull/46870
- fix(mcp): log upstream exchange when an MCP health check fails by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44125
- perf(cli): start lite without initializing the litellm SDK by @mateo-berri in https://github.com/BerriAI/litellm/pull/46803
- fix(prometheus): set the remaining rate-limit gauges from decimal headers again by @mateo-berri in https://github.com/BerriAI/litellm/pull/47039
- ci(cost map): remove the generated model prices JSON schema by @mateo-berri in https://github.com/BerriAI/litellm/pull/47064
- test(integration): write worker configs beside test-supplied configs by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47066
- test(e2e): keep the prompt-caching affinity test on the live provider by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47072
- test(integration): send post-kill requests on a fresh connection in two worker-kill tests by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47080
- fix(caching): keep prompt cache usage on streamed cache hits by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47073
- fix(logging): keep the async request's logging payload when the sync success thread runs late by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47019
- fix(cost): price exact cost-map names before price-free capability rules, and fix SCIM and MCP integration tests on CircleCI by @mateo-berri in https://github.com/BerriAI/litellm/pull/47037
- test(e2e): event_loop_stalls perf case fails on a gateway event-loop hold over 100 ms that is not on its allowlist by @kerry-berri in https://github.com/BerriAI/litellm/pull/46974
- feat(pricing): backfill github_copilot prices from the Copilot pricing table by @litellm-stampbot in https://github.com/BerriAI/litellm/pull/47085
- test(e2e): warm the memory test up with two batches before the measured one by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47087
- fix(bedrock)!: stream Converse passthrough frames through post_call guardrails instead of buffering by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46307
- fix(bedrock)!: scan Claude invoke-with-response-stream passthrough output with post_call guardrails by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46524
- feat(azure-ai): support Entra ID auth for Microsoft-Decision-1 on /v1/decisions and /v1/systemone by @jesus-berri in https://github.com/BerriAI/litellm/pull/46539
- feat(bedrock): apply bedrock_request_metadata_fields on the /bedrock pass-through routes by @mateo-berri in https://github.com/BerriAI/litellm/pull/47040
- fix(streaming): report the deployment's api_base when a stream fails mid-way by @mateo-berri in https://github.com/BerriAI/litellm/pull/47045
- test(translation): recapture anthropic claude bases after usage speed field by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47116
- test(translation): recapture azure ai claude bases after usage speed field by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47117
- test(translation): add sonnet 5.5 and gemini vertex rows to cross-model mid tier by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46896
- fix(anthropic): add the dangerous-tool-use beta when a /v1/messages request carries safeguards by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/43955
- fix(rust): add the dangerous-tool-use beta when an anthropic /v1/messages request carries safeguards by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46102
- test(e2e): event_loop_stalls charges a hold to the longest gc pass that fits it, not to the sum of every pass since the last hold by @kerry-berri in https://github.com/BerriAI/litellm/pull/47089
- fix(anthropic): carry safeguard_results and stop_details in synthesized message_delta events by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46096
- test(e2e): event_loop_stalls caps the request-handler bucket at 2, twice the gc-aware maximum by @kerry-berri in https://github.com/BerriAI/litellm/pull/47128
- fix(backend): retain Prometheus metrics during startup by @kerry-berri in https://github.com/BerriAI/litellm/pull/47129
- test(translation): allow anthropic usage speed in cross-model contract by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47130
- feat(terraform)!: default the component images to the module release tag by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46960
- fix(mcp)!: cap the ID-JAG credential by its signed resource claim and refuse a resource the gateway does not serve by @yassin-berriai in https://github.com/BerriAI/litellm/pull/47094
- fix(cost-map): fall back to the bundled map when urlsplit rejects LITELLM_MODEL_COST_MAP_URL by @kerry-berri in https://github.com/BerriAI/litellm/pull/47133
- test(translation): add claude-haiku-5-5 vertex ai cases by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47136
- feat(deepinfra): add DeepSeek-V4.1-Flash and DeepSeek-V4.1-Flash-1017 to the cost map by @litellm-stampbot in https://github.com/BerriAI/litellm/pull/47132
- fix(responses): run pre_call guardrails on every Responses WebSocket turn and bill each turn its own guardrail cost by @kerry-berri in https://github.com/BerriAI/litellm/pull/47013
- perf(proxy): gc.freeze() the startup heap once the proxy is up so gen-2 passes stop re-walking it by @kerry-berri in https://github.com/BerriAI/litellm/pull/47137
- test(integration): remove BUG skips for 2 tests that pass on main by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47142
- test(cost): add tier 1 cost tracking cells and sync usage shapes for 2026-10-17 by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47141
- fix(presidio): stop overlapping entity spans from corrupting numbered PII tokens by @yucheng-berri in https://github.com/BerriAI/litellm/pull/47024
- fix(otel): report cache hits at zero cost with a cache-hit flag in V1 and V2 spans by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/43604
- fix(proxy): let proxy_admin_viewer store its own MCP credentials by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46994
- test(perf): qualify database upgrades with shared 5 RPS traffic by @kerry-berri in https://github.com/BerriAI/litellm/pull/46802
- fix(register_model)!: keep bedrock geo deployments priced across price data reloads by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41523
- fix(mcp)!: register the gateway's own DCR client for bridge servers instead of relaying the caller's loopback redirect by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46940
- fix(model_prices): registry audit 2026-10-17, Perplexity decider v1.2 rows, Azure Mistral and Vertex Gemini deprecation dates by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47114
- fix(mcp): bound paginated tools/list by LITELLM_MCP_TOOL_LISTING_TIMEOUT by @yassin-berriai in https://github.com/BerriAI/litellm/pull/46513
- fix(vertex): match standalone 403 status tokens instead of any substring by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/47134
- feat(guardrails): add num_retries to generic_guardrail_api for checks lost after connect by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/46965
- fix(proxy): route team key vector store calls to a team model of the store's provider by @mrinal-berri in https://github.com/BerriAI/litellm/pull/46894
- fix(batches): handle empty models when logging batch cost by @joshua-berri in https://github.com/BerriAI/litellm/pull/47155
- fix(vector-stores): keep proxy context out of provider vector store metadata by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47021
- fix(proxy): report requested model in streamed Responses response.model by @albertoperdomo2 in https://github.com/BerriAI/litellm/pull/46662
- fix(logging): run legacy s3 callback for streamed /v1/messages calls by @kerry-berri in https://github.com/BerriAI/litellm/pull/47156
- test(e2e): get_text_external accepts JSON next to text so a pod-log error reads as the Kubernetes Status, not a 406 by @kerry-berri in https://github.com/BerriAI/litellm/pull/47150
- fix(spend_logs): persist user email in spend log metadata so it shows in UI request logs by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/41150
- test(integration): run the bedrock mantle prompt cache and output limit wire tests on their own proxy by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47152
- test(e2e): enable prometheus_system on the redis chaos proxy config by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47160
- fix(tests): wait for every thread of a killed worker before treating it as gone by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47148
- fix(proxy): warn at boot when a config environment_variables key replaces a value already set in the process environment by @kerry-berri in https://github.com/BerriAI/litellm/pull/47165
- test(caching): assert sync cache-hit logging without depending on thread order by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47093
- test(integration): report uncollected shard files as collection errors instead of crashing xdist by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47075
- test(e2e): hold failing-request RSS to a loose ceiling over two measured batches by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47170
- fix(count_tokens)!: answer 400 for Vertex partner models without a count API and OpenAI-shaped provider errors on /v1/responses/input_tokens by @mateo-berri in https://github.com/BerriAI/litellm/pull/47163
- fix(router): read an application profile's base model from metadata on a cache hit by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47144
- fix: handle missing choice indices in streamed output recording by @yucheng-berri in https://github.com/BerriAI/litellm/pull/46947
- test(mcp): replace the live Linear MCP OAuth e2e tests with integration coverage by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47154
- fix(logging): keep root logger INFO lines when json_logs is on and LITELLM_LOG is set by @kerry-berri in https://github.com/BerriAI/litellm/pull/47175
- fix(router)!: stop a chat-mode Mantle deployment from rewriting the shared Responses routing row by @mateo-berri in https://github.com/BerriAI/litellm/pull/46263
- fix(ui): take the dashboard's user role and identity from the server by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47025
- fix(router)!: bound fake-streamed calls by the request timeout, not stream_timeout by @mateo-berri in https://github.com/BerriAI/litellm/pull/47162
- fix(proxy): count the whole minor line in the upgrade notice for patch releases by @misbahsy in https://github.com/BerriAI/litellm/pull/46942
- feat(openinfer): add OpenInfer as an OpenAI-compatible provider by @AJ-ing in https://github.com/BerriAI/litellm/pull/41034
- fix(rag)!: use team provider credentials and allow viewer and JWT team access by @shivamrawat1 in https://github.com/BerriAI/litellm/pull/45497
- fix(bedrock): send native structured output first on Opus 4.8 and Sonnet 5 and fall back to the json tool when Bedrock rejects it by @mateo-berri in https://github.com/BerriAI/litellm/pull/47100
- fix(bedrock): add the July 7, 2026 EOL date to the Llama 3.1 405B and Llama 3.2 rows by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47196
- fix(batches): preserve spend across malformed output and metadata failures by @joshua-berri in https://github.com/BerriAI/litellm/pull/47184
- feat(count_tokens)!: configurable token_count_framing and token_count_model, count source in the response by @mateo-berri in https://github.com/BerriAI/litellm/pull/46777
- fix(baseten): forward reasoning_effort to Baseten Model API by @ucfjoe in https://github.com/BerriAI/litellm/pull/40152
- fix(bedrock): take the 200K context window from the Claude Sonnet 4 model card by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47202
- feat(ui): show gateway URL and agent setup instructions after creating a key by @ishaan-berri in https://github.com/BerriAI/litellm/pull/47199
- test(baseten): annotate test locals with Final by @ryan-crabbe-berri in https://github.com/BerriAI/litellm/pull/47205
- fix(proxy)!: end a chat completions stream with an error event when a guardrail blocks mid-stream by @mateo-berri in https://github.com/BerriAI/litellm/pull/46953
- fix(bedrock): take the 1,050,000 context window from the Daybreak Mantle model cards by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47211
- test(perf): measure SpendLog-backed UI query latency by @kerry-berri in https://github.com/BerriAI/litellm/pull/46955
- fix(databricks): use the native Anthropic route for Claude /v1/messages by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/46091
- fix(bedrock): take Grok 4.7 and Pegasus v1.5 context windows from the Bedrock model cards by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47226
- chore: bump litellm-enterprise 0.1.77 -> 0.1.78, litellm-proxy-extras 0.4.109 -> 0.4.110 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47228
- test(integration): give each owned proxy a private database and Redis by default by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47213
- fix(guardrails)!: preserve Bedrock Converse redactions and honor tool-only scans by @moyai-berriai[bot] in https://github.com/BerriAI/litellm/pull/45874
- test(perf): align read queries with current dashboard calls by @kerry-berri in https://github.com/BerriAI/litellm/pull/47243
- fix(proxy): authorize the public name of a team-scoped model on batch retrieve/cancel by @Mrun25 in https://github.com/BerriAI/litellm/pull/47067
- feat(pricing): add baseten DeepSeek-V4.1-Flash-1017 models by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47252
- chore(cost-map): add fireworks deepseek v4.1 flash 1017 by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47253
- feat(pricing): add missing github_copilot rows from models-and-pricing by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47254
- test(integration): stop GET /__observations from draining the upstream log by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47256
- test(integration): look up owned cache keys and clean up sweep models by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47255
- feat(vertex_ai): let operators drop chosen anthropic-beta values on the Vertex AI pass-through routes by @mateo-berri in https://github.com/BerriAI/litellm/pull/47185
- fix(streaming)!: map stream read timeouts to litellm.Timeout on chat, messages, and responses by @mateo-berri in https://github.com/BerriAI/litellm/pull/47198
- fix(logging): deliver completed batch success callbacks consistently by @joshua-berri in https://github.com/BerriAI/litellm/pull/47192
- test(integration): wait for every worker in Scenario.model by @yuneng-berri in https://github.com/BerriAI/litellm/pull/47277
- fix(bedrock): take the 256K context window from the Qwen3 Coder 480B model card by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47283
- fix(proxy): sanitize unexpected database errors from /key/info by @vanrajsinh650 in https://github.com/BerriAI/litellm/pull/46190
- test(rust): native vs Python parity harness for responses by @narmstrong-berri in https://github.com/BerriAI/litellm/pull/46567
- feat(rust): encode LiteLLM response ids on native responses by @narmstrong-berri in https://github.com/BerriAI/litellm/pull/46572
- feat(cost-map): add together_ai DeepSeek-V4.1-Flash-1017 by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47291
- fix(azure): set azure/container code interpreter session price from the azure openai pricing page by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47292
- fix(vertex-ai): drop floor deprecation_date from gemini-3.8-flash by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47294
- fix(vertex_ai): price streamed pass-through calls with the regional uplift by @pcbeingused333 in https://github.com/BerriAI/litellm/pull/44795
- chore(pricing): add meta muse-image-1.0 per-image price by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47318
- fix(azure): route WebRTC client_secrets and calls to the GA v1 realtime API by @habonlaci in https://github.com/BerriAI/litellm/pull/47316
- fix(azure): reuse the cached Entra token provider on the Responses path by @jorik in https://github.com/BerriAI/litellm/pull/46421
- fix(router)!: count native Responses WebSocket turns toward deployment limits and budgets by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/45727
- refactor(rust): fold inference-transcription prepare into its handler by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/47214
- refactor(rust): fold inference-responses prepare into its handler by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/47215
- refactor(rust): fold inference-ocr prepare into its handler by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/47216
- refactor(rust): fold inference-messages prepare into its handler by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/47217
- refactor(rust): fold inference-chat prepare into its handler by @yujonglee-berri in https://github.com/BerriAI/litellm/pull/47218
- chore(cost-map): add fireworks minimax m3.1 flash priority prices from the prices api by @berriai-litellm-provider-info-sync[bot] in https://github.com/BerriAI/litellm/pull/47346
- fix(baseten): list current Model APIs instead of retired 2023 deployment IDs by @AlexKer in https://github.com/BerriAI/litellm/pull/46945
- feat(router): discover kubernetes pods behind a headless service api_base by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44342
- feat(router): keep a session on one kubernetes pod by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44393
- feat(ui): show kubernetes pods on the model page by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44666
Full Changelog: v1.106.0...v1.107.0