Repository navigation
v1.106.0-dev.1
Pre-release
Pre-release
·
8 commits
to main
since this release
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.106.0-dev.1Verify 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.106.0-dev.1/cosign.pub \
ghcr.io/berriai/litellm:v1.106.0-dev.1Expected output:
The following checks were performed on each of these signatures:
- The cosign claims were validated
- The signatures were verified against the specified public key
What's Changed
- feat(mcp): add Microsoft 365 (Graph) server to the MCP catalog by @devin-ai-integration[bot] in #43099
- chore(cost-map): add azure_ai deprecation dates from the Azure retired models page by @berriai-litellm-provider-info-sync[bot] in #44142
- fix(daily_activity): keep NULL entity ids when excluding entity ids by @devin-ai-integration[bot] in #44139
- fix(proxy): reject non-canonical daily activity dates by @devin-ai-integration[bot] in #44143
- fix(proxy): always exit when database setup fails at boot by @devin-ai-integration[bot] in #44141
- feat(tracing): add scoped SQL queries and schema-aware help by @yujonglee-berri in #44085
- fix(guardrails): straiker v3 routes sk_agt_ keys to v3 and fails closed on a missing verdict by @PhimmStraiker in #44011
- test(integration): move legacy proxy, router and Redis tests into tests/integration by @yuneng-berri in #44128
- chore(cost-map): take azure_ai claude-sonnet-4-5 retirement date from the Azure schedule by @berriai-litellm-provider-info-sync[bot] in #44145
- fix(azure_storage): keep client call ids from sharing one Data Lake file by @devin-ai-integration[bot] in #44099
- fix(guardrails): restore Azure guardrail get_user_prompt dispatch and allow logging by @devin-ai-integration[bot] in #44067
- fix(proxy): keep tool payloads and logprobs unmasked in stored spend logs by @devin-ai-integration[bot] in #44075
- test(e2e): move live-provider legacy tests into tests/e2e by @yuneng-berri in #44120
- chore(harness): remove banner comments, restating comments and dead in_loop_thread by @devin-ai-integration[bot] in #44161
- test(straiker): assert a saved api_version v1 with an sk_agt_ key routes to v3 by @devin-ai-integration[bot] in #44153
- refactor(types): replace Any with proven types in 7 files by @devin-ai-integration[bot] in #43844
- test(mcp): fire MCP client test deadlines on conditions instead of wall-clock time by @devin-ai-integration[bot] in #44166
- fix(cost-map): add OpenAI TTS and GPT-5.x deprecation dates by @devin-ai-integration[bot] in #44175
- fix(tracing): unify ClickHouse storage configuration by @yujonglee-berri in #43941
- feat(docker): one-command quickstart that starts the gateway, Postgres, and the admin UI by @misbahsy in #43673
- fix(lens): simplify the example investigation preview by @moe-berri in #44123
- chore(helm): drop migrationJob values the chart never reads by @Bernedotcom2312 in #42141
- fix(ui): register tencent in the Add Model provider dropdown by @jimaldon in #40924
- test: remove 130 legacy tests owned by stronger unit proofs by @devin-ai-integration[bot] in #44157
- feat(mcp)!: disable stdio MCP servers by default by @yuneng-berri in #44066
- fix(proxy): exit when DATABASE_URL is set but the Prisma toolchain is missing by @devin-ai-integration[bot] in #44207
- fix(proxy): preserve lifespan state across all entrypoints by @tin-berri in #44214
- fix(oci): resolve the GenAI endpoint realm from the compartment OCID instead of hardcoding oraclecloud.com by @fede-kamel in #43180
- fix(chatgpt): preserve requested service tier in Responses calls by @SteffanWolter in #40108
- fix(ui): leave unset callback select params out of the save payload by @devin-ai-integration[bot] in #44213
- fix(proxy-extras): hand libpq a root cert, not Prisma's sslcert, when the migration job builds indexes by @devin-ai-integration[bot] in #44203
- feat: add Laya gateway and OSS classifier providers by @tin-berri in #43626
- fix(auto-router): count usage savings by selected UTC request day by @tin-berri in #44115
- fix(lens): preserve framework agent names and GenAI message content by @moe-berri in #44218
- feat(jwt): auto_register_map_existing_key maps JWT to the user's existing virtual key by @devin-ai-integration[bot] in #42375
- feat(ui): select Laya for OSS classification by @tin-berri in #43768
- fix(otel): tolerate non-dict callback_settings.otel and ignore bare EXCLUDED_SERVICES env by @devin-ai-integration[bot] in #44086
- fix(proxy): carry key, team and project tags into pass-through spend logs by @devin-ai-integration[bot] in #42662
- feat(ui): add System One (Jev) tab to the playground by @devin-ai-integration[bot] in #44043
- chore: bump litellm-proxy-extras 0.4.104 -> 0.4.105 by @devin-ai-integration[bot] in #44234
- chore(prices): add xAI grok-voice-transcribe-1.0 deprecation date by @berriai-litellm-provider-info-sync[bot] in #44237
- fix(exa): fall back to highlights/summary when text is missing by @wakqasahmed in #42213
- fix(scim): apply path-less group PATCH ops instead of storing them under an empty metadata key by @devin-ai-integration[bot] in #43978
- fix(lens): run investigations with configured wildcard models by @moe-berri in #44233
- fix(ui): shrink the sidebar logo so it stops outweighing page titles by @yuneng-berri in #44247
- feat(tracing): support claude agent sdk traces with agent name, logo and chat content by @ishaan-berri in #44248
- fix(ui): make model leaderboard chart bars wide and readable by @devin-ai-integration[bot] in #44249
- test: repair stale and polluting tests red on scheduled main CI by @yuneng-berri in #44229
- feat(traces): type queries and align read access with log visibility by @yujonglee-berri in #44228
- chore(ui): untrack tsconfig.tsbuildinfo and gitignore *.tsbuildinfo by @devin-ai-integration[bot] in #44261
- refactor(mcp): extract upstream preparation and support modern clients by @joshua-berri in #44232
- fix(lens): default to traces and reopen span details by @moe-berri in #44260
- fix(bedrock): surface unrecognized converse-stream event frames instead of an empty turn by @devin-ai-integration[bot] in #44112
- perf(proxy): batch daily model usage writes instead of upserting per request by @ishaan-berri in #44243
- test(integration): opt the config pass-through spend-log case into auth by @yuneng-berri in #44265
- test: fix three order-dependent and timing-flaky tests by @yuneng-berri in #44271
- fix(ui): make the Lens traces refresh button always clickable by @devin-ai-integration[bot] in #44252
- feat(lens): add sample previews and improve setup and worker feedback by @moe-berri in #44268
- chore(openrouter): sync prices, limits and deprecation dates from the models API by @berriai-litellm-provider-info-sync[bot] in #44287
- refactor(traces): type the ClickHouse query help response by @devin-ai-integration[bot] in #44285
- fix(proxy): stop queued registry read-throughs spending the resync budget by @yuneng-berri in #44277
- feat(lens): show investigation progress as one staged bar with time left by @ishaan-berri in #44301
- refactor(ui): compose dashboard pages with shared layouts by @devin-ai-integration[bot] in #44306
- fix(proxy): share ownership permissions for spend logs and traces by @yujonglee-berri in #44239
- fix(proxy-extras): retry P3009 when a peer already recovered the named migration row by @devin-ai-integration[bot] in #44283
- fix(bedrock): price amazon nova 2 pro preview at the standard tier by @berriai-litellm-provider-info-sync[bot] in #44302
- feat: add Bespoke Nimble gateway and OSS classifier support by @tin-berri in #44246
- fix(anthropic): stop repeating streamed thinking text in the signature chunk by @devin-ai-integration[bot] in #44127
- fix(responses): drop bridge-minted reasoning items from OpenAI replays by @devin-ai-integration[bot] in #44132
- feat(bedrock): drop lookaround regex patterns from tool schemas for Converse models that reject them by @devin-ai-integration[bot] in #44138
- feat(bedrock): serve gpt-5.6+ chat completions natively by default, with chat_completions/ opt-in for gpt-oss and grok by @devin-ai-integration[bot] in #44307
- feat(lens): issue briefs with problem, user goal, outcome and test cases by @ishaan-berri in #44311
- fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged tool calls into one choice by @devin-ai-integration[bot] in #44295
- fix(cost): price rule-only model names at the deployment's rate by @devin-ai-integration[bot] in #44144
- fix(auto-router): attribute router-day savings without spend logs or a session by @tin-berri in #44226
- test(integration): let run.py select cells by pytest node id by @devin-ai-integration[bot] in #44319
- fix(bedrock): honor unsupported reasoning effort levels for OpenAI GPT models by @Aasif-Multani in #44183
- feat(lens): add preset watch-for checks to investigation setup by @ishaan-berri in #44313
- fix(proxy): use OpenAI workload identity federation tokens on /openai_passthrough by @6matt in #44140
- feat(interactions): durable cross-pod settlement for background interaction billing by @devin-ai-integration[bot] in #41955
- fix(streaming): keep the finish_reason of the provider's last content chunk in the logged response by @joeym82956 in #44318
- fix(bedrock): send the anthropic-workspace-id header to Bedrock Mantle by @kohjunhao in #44173
- fix(guardrails): run unified guardrails on /v1/images/edits by @michelligabriele in #44195
- feat(scaleway): add rerank support by @ankit373 in #44160
- fix(vector_stores): return managed file ids from vector store file list by @devin-ai-integration[bot] in #43800
- fix(proxy): return 4xx instead of 500 for missing required params, invalid pagination and unknown ids by @devin-ai-integration[bot] in #43787
- fix(guardrails): encrypt guardrail litellm_params secrets at rest by @yucheng-berri in #43627
- fix(search_tools): encrypt search tool litellm_params at rest by @yucheng-berri in #43631
- feat(roi): add GitLab sources and branch cost attribution by @moe-berri in #44324
- fix(model-prices): mark azure us/eu responses-only models as mode responses by @devin-ai-integration[bot] in #44323
- revert(cost): revert "fix(cost): price rule-only model names at the deployment's rate" (#44144) by @devin-ai-integration[bot] in #44335
- fix(proxy): stamp the client alias on a copy of each streamed chunk so pricing sees the deployment model by @devin-ai-integration[bot] in #44341
- revert(responses): revert "fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged tool calls into one choice" (#44295) by @devin-ai-integration[bot] in #44344
- refactor(dashboard): migrate to zod 4 and openai 6 by @devin-ai-integration[bot] in #44345
- feat(ui): move LiteAdmin into the header with a docked side panel by @tin-berri in #44293
- fix(responses): merge bridged tool calls into the same choice as the text by @devin-ai-integration[bot] in #44346
- feat(ui): improve trace inspection and ROI estimation by @moe-berri in #44351
- refactor(ui): reorganize Lens dashboard components by @devin-ai-integration[bot] in #44354
- refactor(ui): inject Lens backends as services instead of a fake HTTP client by @devin-ai-integration[bot] in #44369
- refactor: clean up fresh tech debt from 2026-10-02 by @devin-ai-integration[bot] in #44362
- feat(traces): tracing development seed by @devin-ai-integration[bot] in #44363
- refactor(types): replace Any with proven types in 4 files by @devin-ai-integration[bot] in #44370
- build(deps): suppress unfixed braces GHSA-vfj7-8cjw-p6xm to clear osv-scan by @devin-ai-integration[bot] in #44347
- fix(azure): add MAI-Image max_input_tokens from models sold directly page by @berriai-litellm-provider-info-sync[bot] in #44375
- fix(proxy): emit postgres service spans only on real DB reads in auth cache helpers by @devin-ai-integration[bot] in #44148
- fix(otel): nest cache spans under their operation and name service spans by purpose by @devin-ai-integration[bot] in #44150
- fix(otel): name postgres service spans by operation and table by @devin-ai-integration[bot] in #44240
- perf(proxy): stop prompt-cache eligibility from tokenizing the whole conversation by @devin-ai-integration[bot] in #44221
- fix(proxy): keep the database error when the log_db_metrics failure hook raises by @devin-ai-integration[bot] in #44383
- feat(azure): add azure_ai/kimi-k2-thinking from Azure Kimi pricing page by @berriai-litellm-provider-info-sync[bot] in #44382
- feat(harness): add Harness.TOOL_LOOP, a minimal in-process tool-calling loop by @devin-ai-integration[bot] in #44391
- feat(decisions): add unified /v1/decisions endpoint for Jev-compatible providers by @devin-ai-integration[bot] in #44236
- fix(lens): paginate trace reads within ClickHouse limits by @moe-berri in #44384
- feat(lens): live dot field timeline and full-screen traces view by @ishaan-berri in #44390
- feat(ui): make LiteAdmin enterprise-only by @tin-berri in #44399
- fix(bedrock): stop emitting Converse cachePoint blocks for Kimi K3 by @devin-ai-integration[bot] in #44292
- test(cost): pin OpenAI reported web search count with mixed actions by @devin-ai-integration[bot] in #44414
- fix(ci): give the pass-through auth regression test a real FastAPI app by @devin-ai-integration[bot] in #44403
- fix(azure): add azure_ai/flux.2-pro input token limit from the models sold directly page by @berriai-litellm-provider-info-sync[bot] in #44405
- fix(lens): batch run reads and reset trace pagination by @moe-berri in #44398
- fix(lens): preserve full trace access and expose investigation failures by @moe-berri in #44406
- feat: add make lens-dev for one-command lens local dev by @ishaan-berri in #44413
- fix(bedrock): honor the per-request timeout on Converse and Invoke streaming (internal copy of #38210) by @devin-ai-integration[bot] in #44134
- feat(traces): render curated SQL examples from shared files by @devin-ai-integration[bot] in #44388
- fix(model_prices): registry audit 2026-10-03, add cohere embed v5, grok-imagine-video-1.5-lite and openrouter gpt-image rows by @devin-ai-integration[bot] in #44376
- refactor(traces): extract snapshot cache by @devin-ai-integration[bot] in #44424
- feat(lens): always-on investigations with findings and investigations tables by @ishaan-berri in #44418
- feat(docker): add a Windows quickstart in PowerShell, and a styled terminal for both quickstarts by @misbahsy in #44310
- feat(proxy): serve a Codex-native model catalog with per-model service_tiers from /v1/models by @devin-ai-integration[bot] in #44136
- refactor(types): replace Any with proven types in 9 files by @devin-ai-integration[bot] in #44389
- fix(proxy): treat Postgres connection exhaustion as DB unavailable, not poison spend-log rows by @devin-ai-integration[bot] in #44270
- fix(proxy): treat Postgres connection exhaustion as backpressure, not poison rows by @devin-ai-integration[bot] in #44266
- fix(lens): release budget reservations when the analysis model call fails by @devin-ai-integration[bot] in #44431
- fix(mcp): preserve upstream tool schemas and parameter headers by @joshua-berri in #44425
- fix(bedrock_mantle): route Claude chat completions to the native Messages endpoint by @devin-ai-integration[bot] in #43646
- fix(tracing): preserve spend identity and gateway correlation by @yujonglee-berri in #44421
- feat(roi): measure shipping velocity, quality, and recorded spend by @moe-berri in #44426
- fix(azure): set text-embedding max input to 8192 from the models sold directly page by @berriai-litellm-provider-info-sync[bot] in #44449
- feat(ui): show invitation and reset password links in a copyable field by @yuneng-berri in #44454
- feat(lens): coordinate worker releases and bundled installs by @moe-berri in #44428
- fix(auth): resolve hidden model_group_alias entries in the zero-cost budget check by @devin-ai-integration[bot] in #43741
- fix(vertex_ai): forward system and tools to partner model count_tokens by @devin-ai-integration[bot] in #43900
- fix(traces): reject conflicting spend aliases and unrelated HTTP siblings by @devin-ai-integration[bot] in #44456
- chore(cost-map): add azure_ai/kimi-k2-thinking retirement date from the Azure retired models page by @berriai-litellm-provider-info-sync[bot] in #44455
- fix(health): probe Bedrock Mantle Claude deployments over the Anthropic Messages API by @devin-ai-integration[bot] in #44419
- fix(tests): match the OS bind error in the owned-proxy port-race retry by @devin-ai-integration[bot] in #44462
- feat(anthropic): workload identity federation and pluggable identity sources by @devin-ai-integration[bot] in #44448
- test(integration): exact four-part translation cases on a shared fake provider and shared YAML deployment by @devin-ai-integration[bot] in #44451
- feat(roi): default people and branch lists to matched accounts by @moe-berri in #44465
- feat(enterprise): bundle LiteAdmin Slack with native gateway login by @tin-berri in #44444
- fix(caching): count tool_call cache_control marks in the injection census by @devin-ai-integration[bot] in #43556
- chore(cost-map): sync openrouter prices from the models API by @berriai-litellm-provider-info-sync[bot] in #44466
- fix(lens): preserve approved worker digests and harden its image by @moe-berri in #44467
- feat: improve Lens dev seeding and live UI by @devin-ai-integration[bot] in #44468
- test(ui): wait for step search value to settle in TraceDrawer test by @devin-ai-integration[bot] in #44470
- feat(ui): share trace drawer as a closable SidePanel and polish Lens by @devin-ai-integration[bot] in #44473
- fix(lens): align source setup with available worker images by @moe-berri in #44476
- feat(sdk): add run_tool_loop and arun_tool_loop helpers by @devin-ai-integration[bot] in #44381
- feat(lens): guide setup through the first investigation by @moe-berri in #44475
- test(ci): fix six CircleCI test regressions on main by @devin-ai-integration[bot] in #44429
- fix(proxy-extras): log v1 migration failures at ERROR so LITELLM_LOG=ERROR shows them by @devin-ai-integration[bot] in #44202
- feat(ui): inline Lens settings tab and investigation editor by @devin-ai-integration[bot] in #44479
- feat(mcp): hand listed-tool description and input schema to pre-call hooks per caller by @devin-ai-integration[bot] in #41162
- refactor: clean up fresh tech debt from 2026-10-03 by @devin-ai-integration[bot] in #44484
- fix(otel): read the registered v2 logger without importing the proxy by @devin-ai-integration[bot] in #44485
- test(mcp): keep the SSO assertion round trip from matching its refresh token inside random ciphertext by @devin-ai-integration[bot] in #44494
- test(ci): pin the ROI estimator flag and the prompt-cache counter in two drifted tests by @devin-ai-integration[bot] in #44499
- refactor(ui): move TraceView into components/lens/traces by @devin-ai-integration[bot] in #44501
- refactor(ui): rename view_logs to logs and split request, audit and detail by @devin-ai-integration[bot] in #44505
- refactor(ui): share CopyButton between Lens traces and logs by @devin-ai-integration[bot] in #44513
- refactor(lens): storage-independent trace reads, shared keyset pager, typed read failures by @devin-ai-integration[bot] in #44422
- fix(ci): send the Lens preview body as selection in the tracing endpoint tests by @devin-ai-integration[bot] in #44525
- fix(azure): set gpt-realtime-2.1 retirement dates from the retirement schedule by @berriai-litellm-provider-info-sync[bot] in #44526
- fix(ci): repair the security sweep and Lens billing integration tests for ROI, JWKS, and release identity changes by @devin-ai-integration[bot] in #44529
- fix(dashboard): route dev API calls on Accept and fail fast on non-JSON 2xx by @devin-ai-integration[bot] in #44528
- chore(cost-map): sync openrouter prices from the models API by @berriai-litellm-provider-info-sync[bot] in #44533
- refactor(ui): route dashboard URL state through nuqs parsers by @devin-ai-integration[bot] in #44537
- fix(logging): deduplicate streaming failure callbacks by @devin-ai-integration[bot] in #44442
- feat(proxy): add LITELLM_FIPS_MODE startup gate with provider assertion and loud password migration failure by @devin-ai-integration[bot] in #42700
- fix(guardrails): run the end-of-stream post_call scan when the client disconnects mid-stream by @devin-ai-integration[bot] in #43839
- refactor(mcp): fix Sequence/list return mismatch and collapse record_listed_tools wrapper by @devin-ai-integration[bot] in #44556
- chore(cost-map): add azure retirement dates for gpt-4o-realtime-preview-2024-10-01 and jamba-instruct by @berriai-litellm-provider-info-sync[bot] in #44567
- feat(ui): add persistent columns and loading skeletons to Lens runs by @devin-ai-integration[bot] in #44579
- fix(ui): remove Top models by task card from Model Leaderboard by @devin-ai-integration[bot] in #44502
- refactor(rust): track ClickHouse migrations in a checksummed ledger by @devin-ai-integration[bot] in #44580
- refactor(ui): extract shared timeline and time-range controls by @devin-ai-integration[bot] in #44584
- fix(azure): set gpt-4o-transcribe retirement date from the retirement schedule by @berriai-litellm-provider-info-sync[bot] in #44585
- ci: move Postgres, MCP and Redis suites to CircleCI integration by @devin-ai-integration[bot] in #44453
- chore!: retire the integrated ROI calculator by @moe-berri in #44477
- fix(caching): key response cache by router model group in litellm_metadata by @devin-ai-integration[bot] in #44542
- fix(auto-router): align preview and serving default resolution by @moyai-devin-berriai[bot] in #44436
- fix(mcp): bind OAuth clients to their upstream issuer by @devin-ai-integration[bot] in #37777
- feat(guardrails): add llm shield pii redaction and rehydration guardrail by @ninadphalak in #42645
- refactor(tracing): generate existing HTTP request models from Rust schemas by @devin-ai-integration[bot] in #44591
- ci: run unit selections from GHA test-path and drop the CircleCI unit jobs by @devin-ai-integration[bot] in #44461
- fix(ui): make mobile sidebar and top bar responsive by @moe-berri in #44603
- refactor(types): replace Any with proven types in 137 files by @mateo-berri in #44478
- fix(ui): restore inline Lens onboarding and responsive layout by @moe-berri in #44604
- test(integration): anthropic-route basic translation cases for six Claude models on messages, chat completions and responses by @devin-ai-integration[bot] in #44607
- fix(responses): report truncated bridged output as incomplete and echo request params by @devin-ai-integration[bot] in #44460
- fix(proxy): enforce internal-user model creation prohibition by @moyai-devin-berriai[bot] in #44438
- chore(harness): drop the unused Any import left in harness options by @devin-ai-integration[bot] in #44625
- fix(harness): drop the unused Any import that fails ruff on main by @devin-ai-integration[bot] in #44627
- refactor(proxy): rename management/teams/access.py to authz.py by @ryan-crabbe-berri in #44624
- feat(tracing)!: return only data from SQL queries by @devin-ai-integration[bot] in #44609
- fix(openai/realtime): drop model from upstream URL for intent=transcription by @michelligabriele in #43854
- fix(gemini): add priority tier audio input price to three Gemini rows by @berriai-litellm-provider-info-sync[bot] in #44632
- fix(cost): bill per-second transcription models outside chat modes by @devin-ai-integration[bot] in #44458
- fix(ui): explain why team member reset spend is unavailable instead of hiding it by @devin-ai-integration[bot] in #44629
- test(integration): bedrock_converse-route basic translation cases for six Claude models on messages, chat completions and responses by @devin-ai-integration[bot] in #44646
- test(integration): run the anthropic /v1/responses basic translation cases now that the bridge echoes request params by @devin-ai-integration[bot] in #44615
- feat(lens): restore compact navigation with live investigation review by @ishaan-berri in #44472
- feat(proxy): limit which models an end user can call by @devin-ai-integration[bot] in #43904
- fix(sso): let CLI and Claude Code gateway sign-in through on DISABLE_ADMIN_UI nodes by @devin-ai-integration[bot] in #44620
- feat(ui): declare shared search operators and flush queries on blur by @devin-ai-integration[bot] in #44665
- fix(lens): make tool steps and conversations readable by @moe-berri in #44645
- fix(ui): send null instead of $0 when a team's member default budget is cleared by @ryan-crabbe-berri in #44644
- test(integration): azure_ai-route basic translation cases for six Claude models on messages, chat completions and responses by @devin-ai-integration[bot] in #44658
- test(integration): basic translation cases for the openai_responses route by @devin-ai-integration[bot] in #44663
- feat(lens): analyze trace workspaces with confined Python and compaction by @moe-berri in #44640
- fix(vertex-ai): add deprecation_date to gemini-3.1-flash-lite-image by @berriai-litellm-provider-info-sync[bot] in #44639
- fix(bedrock): add priority and flex prices for Grok 4.3, 4.6, 4.7 and Kimi K3 by @berriai-litellm-provider-info-sync[bot] in #44670
- test(integration): pin the Claude-tokenizer recount for streamed claude-sonnet-5 no-usage cases by @devin-ai-integration[bot] in #44643
- feat(proxy): embed enterprise LiteAdmin MCP in LiteLLM images by @tin-berri in #44610
- test(integration): basic translation cases for the azure route by @devin-ai-integration[bot] in #44672
- test(integration): assert the Messages API health probe on Mantle Claude by @devin-ai-integration[bot] in #44612
- refactor(rust): rename litellm-framing crate to litellm-framer by @devin-ai-integration[bot] in #44683
- test(integration): basic translation cases for the gemini route by @devin-ai-integration[bot] in #44662
- test(integration): basic translation cases for the openai route by @devin-ai-integration[bot] in #44667
- refactor(rust): derive string enum serde through strum and serde_with by @devin-ai-integration[bot] in #44675
- fix(spend-tracking): stop caching failed spend-log metadata lookups as confirmed misses by @devin-ai-integration[bot] in #43560
- fix(proxy): let a listed team alias win over a same-named key alias in the customer model check by @devin-ai-integration[bot] in #44677
- chore: move PR template to PULL_REQUEST_TEMPLATE/general.md, add rust.md by @devin-ai-integration[bot] in #44693
- fix(router): retry a /v1/messages stream the provider drops before the first content chunk by @devin-ai-integration[bot] in #44276
- fix(lens): persist final coverage with source diagnostics by @moe-berri in #44682
- test(integration): point the scratch upgraded proxy's read replica at the scratch database by @devin-ai-integration[bot] in #44613
- fix(lens): show investigation findings for agent traces by @moe-berri in #44696
- fix(build): rebuild the Rust bridge when uv sync sees Rust sources change by @nate-berri in #44708
- fix(lens): preserve span timestamps in investigation evidence by @moe-berri in #44702
- ci: split slow unit shards and build the Rust bridge once per run by @devin-ai-integration[bot] in #44622
- test(rust_bridge): expect PartRow start_time and end_time as required LENS_CONTENT fields by @devin-ai-integration[bot] in #44719
- chore(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 by @dependabot[bot] in #44713
- feat: add Reka as an OpenAI-compatible provider by @anniejeng in #44278
- feat(ui): support native decisions endpoint in decision playground by @moyai-devin-berriai[bot] in #44664
- fix(lens): reconstruct native coding agent conversations by @moe-berri in #44711
- fix(responses): honor request cache controls on chat completions bridged to the Responses API by @devin-ai-integration[bot] in #44676
- fix(deps): bump source-map-js, smol-toml, mako, multidict and werkzeug for OSV advisories by @devin-ai-integration[bot] in #44728
- test(integration): rename translation runner run to assert_translation by @devin-ai-integration[bot] in #44741
- feat(lens): show investigation names in findings table by @moe-berri in #44753
- feat(ui): configure cache-aware auto routing by @tin-berri in #43396
- fix(lens): bound result recovery and preserve partial results by @moe-berri in #44692
- feat(prometheus): cap series per metric for every labeled metric by @devin-ai-integration[bot] in #44420
- feat(lens): type to filter the traces agent dropdown by @ishaan-berri in #44745
- test(lens): use current worker protocol in billing integration by @moe-berri in #44760
- feat(model_prices): add chatgpt subscription rows for the gpt-6 family by @devin-ai-integration[bot] in #44758
- test(e2e): assert the sibling-replica cooldown through the router by @devin-ai-integration[bot] in #44706
- test(integration): basic translation cases for the bedrock_invoke route by @devin-ai-integration[bot] in #44752
- fix(gemini): stop replaying thinking block signatures to Gemini by @devin-ai-integration[bot] in #44661
- fix(ci): namespace claude session ids in tracing seeds and allowlist /v1/logs on backend by @devin-ai-integration[bot] in #44761
- fix(proxy): judge the free-model budget waiver by the group an alias routes to by @devin-ai-integration[bot] in #44638
- test(integration): basic translation cases for the vertex_ai route by @devin-ai-integration[bot] in #44751
- fix(vertex_ai): apply regional endpoint uplift on image generation cost path by @nate-berri in #44679
- refactor(tests): extract Rust cache test split from #44714 by @devin-ai-integration[bot] in #44780
- feat(proxy): cap batch file records, daily batch uploads, and per-file downloads by @devin-ai-integration[bot] in #43632
- feat(lens): add copy link button to trace header by @ishaan-berri in #44749
- test(integration): keep scripted upstream connections open past the proxy's keepalive by @devin-ai-integration[bot] in #44695
- test(integration): basic translation cases for the bedrock_mantle route by @devin-ai-integration[bot] in #44750
- fix(chatgpt,github_copilot): refuse device-code login inside an event loop or worker thread by @devin-ai-integration[bot] in #39585
- feat(bedrock): add glm 5.3 cross-region rows and nova 2.5 sonic by @berriai-litellm-provider-info-sync[bot] in #44710
- fix(responses): honor caller stream flag when provider forces SSE (internal copy of #34095) by @devin-ai-integration[bot] in #41235
- refactor(cache): remove dead Cache._native_cache runtime path by @devin-ai-integration[bot] in #44785
- fix(vertex_ai): add regional endpoint uplift to gemini-3.1-flash-image by @nate-berri in #44673
- feat(ui): lead the Lens investigation detail with a run report by @devin-ai-integration[bot] in #44786
- fix(ui): polish Lens runs loading, reload, and time range menu by @devin-ai-integration[bot] in #44789
- refactor(types): move SpanAttributes, SpecialHeaders and AllowedModelRegion out of proxy._types by @devin-ai-integration[bot] in #44717
- refactor(types): import proxy-only types under TYPE_CHECKING in SDK modules by @devin-ai-integration[bot] in #44740
- refactor(logging): load enterprise alerting loggers lazily so import litellm skips proxy types by @devin-ai-integration[bot] in #44762
- perf(types): defer pydantic schema builds via shared LiteLLMBaseModel by @devin-ai-integration[bot] in #44720
- fix(router): price a model group from the deployments that serve it by @devin-ai-integration[bot] in #44732
- refactor: remove fresh tech debt from the 2026-10-05 window by @devin-ai-integration[bot] in #44821
- fix(azure): add gpt-6-sol priority processing prices by @berriai-litellm-provider-info-sync[bot] in #44829
- refactor(types): replace Any with proven types in 6 files by @devin-ai-integration[bot] in #44491
- test: deflake the JEV classifier select and two router tests that inherited leaked state by @devin-ai-integration[bot] in #44840
- refactor(rust): rename litellm-core to litellm-inference by @devin-ai-integration[bot] in #44802
- refactor(rust): extract inference-transcription crate by @devin-ai-integration[bot] in #44809
- refactor(rust): extract inference-responses crate by @devin-ai-integration[bot] in #44811
- refactor(rust): extract inference-messages crate by @devin-ai-integration[bot] in #44818
- refactor(rust): extract inference-chat crate by @devin-ai-integration[bot] in #44827
- refactor(rust): extract inference-ocr crate by @devin-ai-integration[bot] in #44832
- chore(rust): prune inference deps and rewrite layering docs by @devin-ai-integration[bot] in #44836
- fix(otel): name an Arize project on every OTel v2 Arize export by @devin-ai-integration[bot] in #44605
- fix(otel): gate the Arize OTel v2 exporter on operator credentials by @devin-ai-integration[bot] in #44596
- fix(otel): honor per-team Arize sampling rates in OTel v2 fan-out by @devin-ai-integration[bot] in #44595
- fix(model_prices): gemini deep research input limits, vertex flash retirement dates, azure data zone gpt-6.1-sol pricing by @devin-ai-integration[bot] in #44633
- refactor(types): replace Any with proven types in 157 files by @mateo-berri in #44798
- fix(sap): correctly handle cache_control by @yamaceay in #39122
- fix(responses): stop SDK retries nesting under router retries, and unbreak CircleCI integration tests by @devin-ai-integration[bot] in #44791
- fix(cost-map): update together_ai Kimi-K3 and Qwen3.8-Flash prices to published rates by @berriai-litellm-provider-info-sync[bot] in #44864
- fix(ui): restore key activity search to the top of the tab and add model activity search by @devin-ai-integration[bot] in #44521
- refactor(rust): extract inference-testing crate by @devin-ai-integration[bot] in #44873
- fix(ui): read MCP submission rules from bare-array /config/list response by @devin-ai-integration[bot] in #44648
- chore(model_prices): remove malformed, duplicate and decommissioned palm cost map entries by @devin-ai-integration[bot] in #44880
- fix(azure): add model router flat fee to azure provider cost tracking by @devin-ai-integration[bot] in #44876
- chore(pricing): add azure model-router and whisper rows by @berriai-litellm-provider-info-sync[bot] in #44872
- fix(security): remove the publicly known master key from the repo by @devin-ai-integration[bot] in #44718
- chore(prices): add gemini/gemini-nano-banana-2.1 from the Gemini pricing page by @berriai-litellm-provider-info-sync[bot] in #44868
- fix(ci): skip the generated dashboard bundle in the master key guard by @devin-ai-integration[bot] in #44890
- fix(model_prices): correct supported_endpoints on gemini and vertex image rows by @devin-ai-integration[bot] in #44891
- feat(vertex-ai): add gemini-nano-banana-2.1 and Nano Banana 2 priority pricing by @berriai-litellm-provider-info-sync[bot] in #44892
- fix(lens): reuse trace reviews and consolidate findings across runs by @moe-berri in #44778
- fix(lens): paginate visible conversation entries by @moe-berri in #44878
- refactor(rust_bridge): remove rule-gated native secret-manager selection by @devin-ai-integration[bot] in #44906
- feat(otel): let team and key Arize callbacks choose the OTLP transport by @devin-ai-integration[bot] in #44492
- feat(proxy): add opt-in vector_store_deny_by_default for least-privilege vector store access by @devin-ai-integration[bot] in #44244
- feat(auth): deny search tools by default when search_tool_deny_by_default is set by @devin-ai-integration[bot] in #44490
- fix(lens): correlate native gateway spend with exact call evidence by @ishaan-berri in #44738
- fix(caching): never store or serve a chat completion with no choices by @devin-ai-integration[bot] in #44709
- fix(auto-router): separate tuning and select chained heuristic by @tin-berri in #44928
- fix(lens): copy supported trace and span content requests by @moe-berri in #44902
- fix(tracing): retain native logs and headless tool results by @moe-berri in #44894
- fix(lens): preserve chronological order when grouping trace steps by @moe-berri in #44895
- fix(tracing): preserve optional provider evidence in fixture replay by @moe-berri in #44930
- fix(lens): use async-timeout on python 3.10 for budget reservation timeouts by @devin-ai-integration[bot] in #44911
- perf(lens): reduce rendering on live investigations by @moe-berri in #44935
- fix(logging): log spend once for large non-streaming requests on the chat to Responses bridge by @hektorjg in #44508
- feat(azure): add azure_ai/grok-4.7 and update grok-4.6 input price by @berriai-litellm-provider-info-sync[bot] in #44937
- fix(projects): show Projects to team and org admins and scope it correctly by @devin-ai-integration[bot] in #41325
- fix(model_prices): drop /v1/batch from gemini/gemini-nano-banana-2.1 by @devin-ai-integration[bot] in #44940
- chore: bump litellm-enterprise 0.1.73 -> 0.1.74, litellm-proxy-extras 0.4.105 -> 0.4.106, litellm 1.105.0 -> 1.106.0 by @yuneng-berri in #44942
- fix(cost): price batch image output tokens at the batch image rate by @devin-ai-integration[bot] in #44897
- fix(lens): refresh open traces without claiming session completion by @moe-berri in #44900
- fix(proxy): bound daily spend rollup row-lock waits with lock_timeout and requeue 55P03 by @devin-ai-integration[bot] in #44450
- feat(otel): trace auto-router configuration and classifier failures by @tin-berri in #44926
- feat(lens): add Copy for agent to investigation details by @moyai-devin-berriai[bot] in #44945
- fix(proxy): resolve oidc/ pass-through credentials on every request by @nilpntr in #44577
- feat(lens): add datasets built from real traces by @ishaan-berri in #44765
- feat(lens-ui): replace the conversation view with a thread view by @ishaan-berri in #44947
- fix(cli): show full-session auto-router cost comparison by @tin-berri in #44959
- fix(lens): show the first user message as the run input by @ishaan-berri in #44958
- fix(terraform): keep unconfigured allowed_routes plan-known and unsent by @yucheng-berri in #44487
- test(e2e): add enum values, auto-discovering label gates and secret hiding for e2e metadata by @ryan-crabbe-berri in #44949
- fix(proxy): stop logging license values during verification by @moyai-devin-berriai[bot] in #44956
- refactor: expose core private helpers under public names by @devin-ai-integration[bot] in #44871
- test: fix shared-provider discovery, Codex catalog size and generated master key mismatches in CircleCI suites by @devin-ai-integration[bot] in #44905
- chore(cost-map): sync openrouter prices from the models API by @berriai-litellm-provider-info-sync[bot] in #44975
- feat(mistral): add Mistral Large 4 (Le Chonk) support by @moyai-devin-berriai[bot] in #44870
- fix(responses): preserve prompt cache reuse in chat bridge by @sorgfresser in #42281
- fix(mcp): keep worker MCP configurations consistent via a catalog revision by @joshua-berri in #42568
- fix(ui): give Lens traces a flush toolbar layout by @devin-ai-integration[bot] in #44972
- fix(ci): generate a master key for the migration startup jobs by @devin-ai-integration[bot] in #44978
- feat(mcp): add portable catalog pagination by @joshua-berri in #44446
- fix(exceptions): map upstream 402 to PaymentRequiredError and cool down 402 deployments by @devin-ai-integration[bot] in #44879
- feat(claude_code_gateway): issue rotating refresh tokens and a revocation endpoint by @devin-ai-integration[bot] in #44635
- fix(azure): set kimi-k2.7-code deprecation date from the models list API by @berriai-litellm-provider-info-sync[bot] in #44986
- fix(docker): pin openssl-3.6-dev in the pgbouncer-builder stage by @devin-ai-integration[bot] in #44991
- feat(bedrock): add kimi k3 india cross-region row by @berriai-litellm-provider-info-sync[bot] in #44990
- fix(azure): sync azure openai audio, realtime and image prices with azure pricing page by @berriai-litellm-provider-info-sync[bot] in #44992
- test: move whole-unit legacy test files into tests/unit and delete dead skips by @devin-ai-integration[bot] in #44807
- fix(bedrock): forward each Nova Sonic assistant sentence once over the realtime API by @devin-ai-integration[bot] in #44987
- test(mcp): run the static root path issuer discovery test in-process by @devin-ai-integration[bot] in #44988
- fix(realtime): skip guardrail VAD session.update injection for transcription sessions by @devin-ai-integration[bot] in #44843
- fix(ci): stop deferred pydantic builds leaking caller locals and add the missing Lens FK migration by @devin-ai-integration[bot] in #44981
- fix(ui): render team_metadata_schema keys as fixed labels by @devin-ai-integration[bot] in #41482
- fix(vertex-ai): correct input_cost_per_second on gemini-3.5 transcribe-live and live-translate by @berriai-litellm-provider-info-sync[bot] in #45002
- revert(docker): unpin openssl-3.6-dev in the pgbouncer-builder stage by @devin-ai-integration[bot] in #44997
- test(mcp): set server_id on openapi local fake tools by @devin-ai-integration[bot] in #44998
- ci: run integration-mcp on an xlarge machine by @devin-ai-integration[bot] in #44608
New Contributors
- @misbahsy made their first contribution in #43673
- @Bernedotcom2312 made their first contribution in #42141
- @jimaldon made their first contribution in #40924
- @SteffanWolter made their first contribution in #40108
- @wakqasahmed made their first contribution in #42213
- @Aasif-Multani made their first contribution in #44183
- @joeym82956 made their first contribution in #44318
- @kohjunhao made their first contribution in #44173
- @moyai-devin-berriai[bot] made their first contribution in #44436
- @ninadphalak made their first contribution in #42645
- @nate-berri made their first contribution in #44708
- @anniejeng made their first contribution in #44278
- @yamaceay made their first contribution in #39122
- @hektorjg made their first contribution in #44508
- @nilpntr made their first contribution in #44577
- @sorgfresser made their first contribution in #42281
Full Changelog: v1.105.0-dev.2...v1.106.0-dev.1