v1.104.0-dev.2
Pre-release
Pre-release
·
25 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.104.0-dev.2Verify 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.104.0-dev.2/cosign.pub \
ghcr.io/berriai/litellm:v1.104.0-dev.2Expected 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
- chore(e2e): move the compat-matrix populator from a GCE VM to a Render cron job by @devin-ai-integration[bot] in #42608
- chore(prices): sync Google Gemini prices: 1 model by @berriai-litellm-provider-info-sync[bot] in #42642
- chore(prices): sync OpenAI prices: 1 model by @berriai-litellm-provider-info-sync[bot] in #42648
- fix(bedrock): stream /v1/messages Invoke bytes through instead of holding them in a 1024-byte chunker by @devin-ai-integration[bot] in #42607
- fix(bedrock): send json_schema as a forced tool on Claude Opus 4.7 and 4.8 Converse by @devin-ai-integration[bot] in #42644
- test(e2e): tolerate provider-side flakes on five full-suite cells by @devin-ai-integration[bot] in #42628
- chore(prices): sync AWS Bedrock prices and sources from the AWS price list by @berriai-litellm-provider-info-sync[bot] in #42632
- fix(pricing): drop the unpublished cached rate from the Gemini Live preview entries by @devin-ai-integration[bot] in #42651
- test(integration): regression tests for August provider translation and streaming bugs by @devin-ai-integration[bot] in #42621
- fix(vector_stores): keep config-defined vector stores listed and read-only by @devin-ai-integration[bot] in #42574
- test(integration): regression tests for August cost tracking and budgeting bugs by @devin-ai-integration[bot] in #42622
- chore(prices): sync Vertex AI prices: 2 models, 2 new [enrichment failed: Vertex AI, 224 held] by @berriai-litellm-provider-info-sync[bot] in #42589
- fix(pricing): align bedrock_mantle/openai.gpt-daybreak-blue-5.6-sol with its Bedrock model card by @devin-ai-integration[bot] in #42672
- chore(prices): sync AWS Bedrock prices: 2 models by @berriai-litellm-provider-info-sync[bot] in #42673
- chore(prices): sync AWS Bedrock prices: 11 models by @berriai-litellm-provider-info-sync[bot] in #42677
- fix(prices): align regional Bedrock Mistral Large 24.02 keys with the AWS pricing page by @devin-ai-integration[bot] in #42684
- chore(prices): sync AWS Bedrock prices: 1 model by @berriai-litellm-provider-info-sync[bot] in #42685
- test(integration): allow skipped nodes and drop the shard cap by @devin-ai-integration[bot] in #42687
- chore(prices): sync Vertex AI prices: 1 model by @berriai-litellm-provider-info-sync[bot] in #42680
- fix(policy_engine): keep inherited parent guardrails when a child policy condition misses by @devin-ai-integration[bot] in #42548
- fix(proxy): publish auth cache invalidations in the background so a wedged coordination Redis cannot stall user updates by @devin-ai-integration[bot] in #42534
- feat(otel): emit gen_ai.conversation.id from the caller's session id on v2 LLM spans by @devin-ai-integration[bot] in #42486
- ci: remove the unused create-release workflow by @devin-ai-integration[bot] in #42696
- fix(proxy): revoke UI session tokens on logout and password change by @ojensen-berri in #42463
- refactor(types): replace Any with proven types in 5 files by @devin-ai-integration[bot] in #42722
- chore(prices): sync OpenRouter prices: 19 models, 9 new [18 held] by @berriai-litellm-provider-info-sync[bot] in #42592
- fix(model_prices): add azure_ai gpt-image-2 and groq llama-guard-3-8b deprecation dates by @devin-ai-integration[bot] in #42738
- fix(proxy): validate model credential name only when it changes by @devin-ai-integration[bot] in #42701
- feat(models): add openrouter/aion-labs/aion-3.5-mini pricing by @devin-ai-integration[bot] in #42743
- test(integration): add MCP gateway coverage wave 1 with a dedicated mcp shard and proxy coverage artifact by @devin-ai-integration[bot] in #42711
- fix(ui): keep untouched stored auto-router booleans and reminder marker casing on save by @devin-ai-integration[bot] in #42703
- feat(bedrock): add gpt-6-sol and gpt-6-luna model pricing by @devin-ai-integration[bot] in #42746
- chore(ci): drop litellm_internal_staging and litellm_oss_staging references, main is the only trunk by @devin-ai-integration[bot] in #42745
- feat(cost-map): add Azure Foundry pricing for gpt-6-sol and gpt-6-luna by @devin-ai-integration[bot] in #42747
- feat(secrets): route secret resolution through native Rust backends by @devin-ai-integration[bot] in #42619
- test: deflake fuzzy picker, breached-password HIBP, and MCP stdio timeout tests (rolling deflake 2026-09-22) by @devin-ai-integration[bot] in #42125
- feat(gemini): add gemini-3.8-flash-tts and gemini-3.8-flash-lite-tts prices by @devin-ai-integration[bot] in #42752
- test(integration): regression tests for July provider translation, routing and streaming bugs by @devin-ai-integration[bot] in #42693
- test(integration): regression tests for July cost tracking, budgeting and spend bugs by @devin-ai-integration[bot] in #42694
- feat(models): add openrouter/stealth/space-bunny-alpha by @devin-ai-integration[bot] in #42759
- fix(params): stop stream_chunk_size reaching provider request bodies by @devin-ai-integration[bot] in #42664
- ci: add merge smoke checks workflow with loopback-only harness and 11 curated cases by @devin-ai-integration[bot] in #42709
- fix(completion_extras): forward non-enum reasoning_effort through the Responses bridge instead of dropping it by @devin-ai-integration[bot] in #42452
- fix(bedrock): honour stream_chunk_size in Invoke streaming by @devin-ai-integration[bot] in #42686
- fix(prices): add baseten/zai-org/GLM-5.3-Fast pricing by @devin-ai-integration[bot] in #42764
- fix(ui): keep per-user MCP credentials updatable and clearable after setup by @devin-ai-integration[bot] in #42652
- test(rust): model the blocking OCR hook as a guardrail so its raise propagates by @devin-ai-integration[bot] in #42775
- feat(guardrails): straiker guardrail speaks the v3 platform API (/api/v3/detect) by @PhimmStraiker in #41880
- fix(anthropic): preserve MCP tool results in the non-Anthropic Messages bridge by @devin-ai-integration[bot] in #42783
- test(integration): cover customer reported cache key, cache_control, bedrock request id, responses schema, scim and tag budget contracts by @devin-ai-integration[bot] in #42785
- chore(prices): sync OpenRouter prices: 2 models, 2 deprecated [20 held] by @berriai-litellm-provider-info-sync[bot] in #42756
- ci: add tests-only CircleCI pipeline with coverage and docs validation by @devin-ai-integration[bot] in #42773
- chore(prices): sync Baseten prices: 1 model by @berriai-litellm-provider-info-sync[bot] in #42771
- feat(bedrock): add bare openai.gpt-6-sol and openai.gpt-6-luna cost map rows by @devin-ai-integration[bot] in #42798
- feat(cache): add a guarded native response-cache resolver foundation by @devin-ai-integration[bot] in #42769
- feat(embeddings): add native dispatch foundation by @devin-ai-integration[bot] in #42799
- fix(mcp): return 401 challenge for REST token-exchange tool calls without a subject token by @devin-ai-integration[bot] in #42782
- fix(mcp): forward caller bearer on REST oauth_delegate tool calls by @devin-ai-integration[bot] in #42787
- feat(models): add together_ai/together/Tev1-4B-experimental by @devin-ai-integration[bot] in #42807
- chore(prices): sync Fireworks AI prices: 2 models, 2 new [2 with gaps] by @berriai-litellm-provider-info-sync[bot] in #42590
- feat(rust-bridge): extend native dispatch foundation to chat completions, responses, and messages by @devin-ai-integration[bot] in #42805
- feat(bedrock): serve the OpenAI models on bedrock-runtime's native Responses API (internal copy of #38489) by @devin-ai-integration[bot] in #42767
- fix(redis): authenticate sync clusters with IAM credential providers by @SiluPanda in #40204
- fix(proxy): apply user_api_key_cache_max_size to the key object partition by @devin-ai-integration[bot] in #42796
- fix(mcp): keep tool attribution on guardrail-blocked REST calls by @devin-ai-integration[bot] in #42790
- chore(prices): sync OpenRouter prices: 1 model [17 held] by @berriai-litellm-provider-info-sync[bot] in #42806
- fix(key_management): invalidate cached object permissions on key update by @devin-ai-integration[bot] in #36719
- docs: simplify pull request template into plain English questions by @devin-ai-integration[bot] in #42813
- test(straiker): deterministic integration audit of the v3 platform relay by @devin-ai-integration[bot] in #42781
- fix(otel): root post-response service spans in their own trace linked to the request by @devin-ai-integration[bot] in #42826
- revert: restore the full pull request template (reverts #42813) by @devin-ai-integration[bot] in #42828
- fix(ui): hide LiteAdmin in Playground and add admin preference by @tin-berri in #42755
- fix(ui): prefer native providers in auto-router presets by @tin-berri in #42639
- fix(shadow-eval): replay approved pre-call guardrail snapshots by @tin-berri in #42774
- fix(ui): show ten prompt caching requests per page by @tin-berri in #42638
- feat(lint): add LIT013 flagging *-ok suppressions that suppress nothing and remove the 240 stale ones by @devin-ai-integration[bot] in #42793
- fix(mcp): reject duplicate MCP server names and aliases by @devin-ai-integration[bot] in #42791
- feat(proxy): honor model_info.discoverable on the model listing endpoints by @devin-ai-integration[bot] in #42825
- feat(cost-map): add vertex ai llama 3.3 70b, veo 2/3, virtual try-on and 2.5 tts rows by @devin-ai-integration[bot] in #42837
- fix(proxy): gate disable_global_guardrails on keys and teams to proxy admins by @devin-ai-integration[bot] in #42699
- fix(models): sync openrouter prices from the models API by @devin-ai-integration[bot] in #42832
- feat(models): add gemini preview aliases and deep research 04-2026 rows by @devin-ai-integration[bot] in #42833
- docs(pr-template): drop empty sections from the PR body and tighten the User Flow by @devin-ai-integration[bot] in #42794
- feat(ui): configure prompt caching request rows per page by @tin-berri in #42842
- fix(ollama): read the JSON thinking field on non-streaming completions by @devin-ai-integration[bot] in #42838
- feat(models): add openai chat-latest, codex and deep-research rows from the model docs by @devin-ai-integration[bot] in #42834
- fix(proxy): document request body and response schemas for the Responses API in OpenAPI by @devin-ai-integration[bot] in #42802
- fix(models): add the June 1, 2026 retirement date to the vertex_ai gemini-2.0-flash rows by @devin-ai-integration[bot] in #42850
- fix(caching): stamp provider on sync cache-hit logs so responses spend logs record provider by @devin-ai-integration[bot] in #42830
- feat(models): add 39 together_ai chat rows priced by the Together models API by @devin-ai-integration[bot] in #42851
- chore(models): add deprecation_date to claude-mythos-preview from the Anthropic deprecations page by @devin-ai-integration[bot] in #42845
- test(integration): assert /v1/responses usage reports Anthropic system cache write then read by @devin-ai-integration[bot] in #42855
- fix(models): add the sora-2-pro shutdown date to the sora-2-pro-high-res rows by @devin-ai-integration[bot] in #42846
- feat(models): add openrouter/openai/gpt-oss-120b:batch from the OpenRouter models API by @devin-ai-integration[bot] in #42847
- feat(models): add gemini lyria-realtime-exp row inherited from lyria-3.5 by @devin-ai-integration[bot] in #42848
- feat(bedrock): add 17 aws-bedrock cost map rows from provider sync by @devin-ai-integration[bot] in #42852
- fix(models): add fireworks deprecation dates for kimi k2.6 fast, kimi k2.7 code fast and glm 5.2 fast us by @devin-ai-integration[bot] in #42849
- fix(model-catalog): declare above_32k cost fields on ModelInfo by @devin-ai-integration[bot] in #42856
- fix(model_prices): registry audit 2026-09-23, in-region Bedrock Claude prices by @devin-ai-integration[bot] in #42779
- test(integration): cover per key tag rpm limits and tag budget_duration resets by @devin-ai-integration[bot] in #42859
- fix(models): add fireworks deprecation date for glm 5.2 fast serverless rows by @devin-ai-integration[bot] in #42866
- chore(vertex_ai): add deprecation dates for retired claude 3 and jamba 1.5 partner models by @devin-ai-integration[bot] in #42867
- test(integration): assert /v1/models reports max_input_tokens and max_output_tokens by @devin-ai-integration[bot] in #42858
- fix(fireworks_ai): route firerouter short names and bill pass-through legs at the routed model's rates by @devin-ai-integration[bot] in #42814
- fix(models): add azure gpt-4o-mini-transcribe and gpt-4o-mini-tts deprecation dates by @devin-ai-integration[bot] in #42873
- fix(models): add openai deprecation date for gpt-5-chat-latest and gpt-5-chat by @devin-ai-integration[bot] in #42872
- fix(models): add fireworks 2026-09-25 deprecation dates for glm 5.2, kimi k2.6, kimi k2.7 code, deepseek v4 and muse glimmer rows by @devin-ai-integration[bot] in #42874
- fix(model_prices): bedrock bare Claude ids priced at the Global SKU (aws-bedrock sync) by @devin-ai-integration[bot] in #42875
- feat(cost-map): add retired azure gpt-5 chat and o1-preview data zone rows by @devin-ai-integration[bot] in #42878
- fix(models): correct gemini robotics er 2 preview audio input price by @devin-ai-integration[bot] in #42877
- feat(vertex_ai): add gemini-3.8-flash-cyber pricing by @devin-ai-integration[bot] in #42879
- fix(presidio): stream non-Anthropic raw SSE through the post_call hook unbuffered by @devin-ai-integration[bot] in #42777
- fix(cost-map): halve openrouter deepseek-v4-flash-0731 output price by @devin-ai-integration[bot] in #42881
- fix(cost-map): sync vertex-ai deprecation dates from Vertex model lifecycle pages by @devin-ai-integration[bot] in #42882
- fix(cost-map): add azure gpt-realtime-mini deprecation date by @devin-ai-integration[bot] in #42883
- fix(models): correct fireworks kimi k3 us pricing to the published rate by @devin-ai-integration[bot] in #42884
- fix(cost-map): add azure gpt-realtime-mini-2025-10-06 deprecation date by @devin-ai-integration[bot] in #42885
- fix(logging): scan the exceeded budget wording linearly so a crafted error message cannot stall the proxy by @devin-ai-integration[bot] in #42778
- fix(proxy): keep deployment labels on cache-hit post_call guardrail rejections by @devin-ai-integration[bot] in #42780
- fix(proxy): do not requeue a daily spend batch whose commit already left for postgres by @devin-ai-integration[bot] in #42786
- fix(cost-map): sync openrouter prices and add fireworks ember-1 by @devin-ai-integration[bot] in #42889
- fix(cost-map): source and chat completions endpoint for bedrock mantle gpt-5.4 and gpt-5.5 by @devin-ai-integration[bot] in #42890
- feat(cost-map): add vertex_ai/gemini-3.8-live by @devin-ai-integration[bot] in #42891
- fix(passthrough): log upstream 4xx/5xx error bodies and carry them into the failure hook by @devin-ai-integration[bot] in #42695
- test(integration): add read-replica routing harness to the CircleCI integration suite by @devin-ai-integration[bot] in #42692
- fix(s3_v2): bound concurrent S3 uploads per flush and add opt-in JSONL batch files by @devin-ai-integration[bot] in #41258
- fix(cost-map): source for bedrock mantle gpt-5.6 luna, sol, terra and grok-4.6 by @devin-ai-integration[bot] in #42898
- test(integration): edge-case matrices for malformed token limits and callback_settings shapes by @yuneng-berri in #42895
- fix(cost-map): add azure deprecation dates for gpt-6 and gpt-realtime-whisper by @devin-ai-integration[bot] in #42897
- feat(cost-map): add wandb DeepSeek-V4.1-Flash and gemma-4-26B-A4B-it by @devin-ai-integration[bot] in #42924
- fix(cost-map): update openrouter kimi-k2.7-code input price by @devin-ai-integration[bot] in #42932
- fix(cost-map): add azure deprecation dates for regional gpt-6 rows by @devin-ai-integration[bot] in #42933
- chore(techdebt): clear fresh tech debt from the last 24 hours (rolling, 2026-09-06 to 2026-09-24) by @devin-ai-integration[bot] in #42710
- fix(cost-map): sync vertex-ai rows (gemma 4 maas cache price, chirp_2) by @devin-ai-integration[bot] in #42942
- feat(bedrock): add gpt-5.4 and gpt-5.5 us and global inference profile pricing by @devin-ai-integration[bot] in #42941
- fix(cost-map): update azure gpt-4.1-nano and gpt-4o-2024-05-13 retirement dates by @devin-ai-integration[bot] in #42947
- fix(proxy): list key and team model aliases in GET /v1/models by @devin-ai-integration[bot] in #42908
- fix(cost-map): sync openrouter prices for deepseek v4 and glm-5.3 by @devin-ai-integration[bot] in #42952
- fix(cost-map): add batch prices for vertex gemini-3.8-flash-cyber by @devin-ai-integration[bot] in #42953
- fix(cost-map): add azure realtime, audio and partner model rows by @devin-ai-integration[bot] in #42954
- fix(cost-map): sync openrouter deepseek-v4-pro prices by @devin-ai-integration[bot] in #42956
- fix(cost-map): sync openrouter deepseek-v4-pro prices by @devin-ai-integration[bot] in #42964
- fix(proxy): fail parked DB lookups at a deadline and flip readiness while they stall by @devin-ai-integration[bot] in #42654
- fix(cost-map): sync openrouter deepseek-v4-pro prices by @devin-ai-integration[bot] in #42969
- feat(cost-map): sync azure models, add MAI-Image-2.6, deepseek-v4.1-flash, muse-spark-1.3 by @devin-ai-integration[bot] in #42970
- fix(bedrock): extrapolate global cris pricing for gpt-5.4 and gpt-5.5 by @devin-ai-integration[bot] in #42971
- fix(cost-map): sync openrouter deepseek v4 flash, v4 pro and v4.1 flash prices by @devin-ai-integration[bot] in #42974
- refactor(types): replace Any with proven types in 13 files by @devin-ai-integration[bot] in #42937
- fix(cost-map): sync openrouter deepseek-v4-pro prices by @devin-ai-integration[bot] in #42978
- fix(cost-map): add vertex ai priority audio input prices for gemini flash rows by @devin-ai-integration[bot] in #42980
- feat(rust_bridge): stamp x-litellm-rust on native sync and async streams at the bridge boundary by @devin-ai-integration[bot] in #42758
- feat(azure): add gpt-audio and gpt-realtime alias rows from the Azure model list by @devin-ai-integration[bot] in #42981
- fix(cost-map): align openrouter deepseek-v4-pro cache hit price with cache read by @devin-ai-integration[bot] in #42985
- fix(cost-map): take the later azure deprecation date for gpt-4.1-nano, gpt-4o-transcribe and gpt-realtime-2.1 by @devin-ai-integration[bot] in #42986
- fix(cost-map): add supports_reasoning to azure/eu/gpt-6-astra by @devin-ai-integration[bot] in #42989
- fix(mcp): reject origins outside the configured allowlist by @joshua-berri in #42649
- fix(cost-map): drop stale cache_hit field from openrouter deepseek-v4-pro by @devin-ai-integration[bot] in #42994
- fix(cost-map): add vertex cache read, batch and above 200k prices for gemini image preview rows by @devin-ai-integration[bot] in #42995
- test(ollama): assert the images sent to Ollama instead of echoing them through response by @yuneng-berri in #42905
- fix(ui): pass is_proxy_admin for proxy admins on the models page team drill-in by @devin-ai-integration[bot] in #43003
- test(e2e/ui): give the logout specs their own admin session by @yuneng-berri in #42930
- fix(azure): update gpt-audio-mini and gpt-5-chat deprecation dates from the retirement schedule by @devin-ai-integration[bot] in #43017
- test(vertex_ai): run the files peak-memory guards without coverage tracing by @yuneng-berri in #42914
- test(mcp): stop a comprehension variable from shadowing the body() helper by @yuneng-berri in #42906
- test(mcp): patch create_mcp_server_if_identifier_free in the store-model-in-db MCP tests by @yuneng-berri in #42916
- test(guardrails): run the cache-hit redis outage test on the shared owned_redis helper by @yuneng-berri in #42925
- feat(rust): shape Anthropic Messages requests natively by @devin-ai-integration[bot] in #42982
- fix(prometheus): add model_group label to deployment request and rate limit metrics by @ahamedshaik16 in #42966
- fix(cost-map): add the Vertex shutdown date to gemini-2.5-flash-native-audio by @devin-ai-integration[bot] in #43024
- feat(vertex): native batch JSONL passthrough with cost tracking by @devin-ai-integration[bot] in #42810
- fix(logging): pass provider response headers to callbacks on every endpoint by @devin-ai-integration[bot] in #42824
- feat(usage): search keys beyond the top-N usage subset by @devin-ai-integration[bot] in #42827
- feat(usage): search team keys beyond the top-N in the Team usage view by @devin-ai-integration[bot] in #42857
- fix(bedrock): route unmapped openai family model ids to converse by @devin-ai-integration[bot] in #42713
- refactor(rust): move tests.rs files inline or under tests/ and drop autotests = false by @devin-ai-integration[bot] in #43028
- fix(cost-map): add video and reasoning output prices to vertex gemini-omni-1.1-flash by @devin-ai-integration[bot] in #43036
- feat(proxy): server-side Team Usage export beyond the top-N key cap by @devin-ai-integration[bot] in #42996
- fix(proxy): stop leaking periodic tasks on every DB config reload by @devin-ai-integration[bot] in #42784
- chore(cost-map): add azure deprecation dates from the Models API for five realtime and transcribe rows by @devin-ai-integration[bot] in #43037
- fix(proxy): pass team member spend rows as jsonb so a $0 flush cannot poison the pool connection by @ryan-crabbe-berri in #43029
- fix(vertex_ai): keep batch output_file_id null until Vertex reports outputInfo by @devin-ai-integration[bot] in #43030
- fix(playground): stop following streamed tokens, add jump to bottom button by @devin-ai-integration[bot] in #42968
- fix(cost-map): drop the priority input price from vertex gemini-2.5-flash-image by @devin-ai-integration[bot] in #43050
- feat(compat-matrix): resolve and install the Claude Code CLI per run by @devin-ai-integration[bot] in #43038
- test(e2e/ui): hide the LiteAdmin button in the shared admin session by @yuneng-berri in #43033
- ci: fix the litellm-tests unit job (sysmon, codecov on failure, env -i allowlist, selection errors, reruns param) by @devin-ai-integration[bot] in #42900
- test: take keys out of the legacy proxy, enterprise and mcp unit tests before moving them by @devin-ai-integration[bot] in #42901
- feat(terraform): add display_name to litellm_model resource and model data sources by @devin-ai-integration[bot] in #42987
- feat(proxy_cli): add --validate_config dry-run flag by @devin-ai-integration[bot] in #41705
- fix(e2e): skip unpublished npm versions in the Claude Code PR-gate resolver by @devin-ai-integration[bot] in #43053
- chore(cost-map): move azure gpt-realtime-2.1-mini deprecation date to the later Models API date by @devin-ai-integration[bot] in #43058
- docs(github): require UI before/after screenshots and intentional UX change note in PR template by @devin-ai-integration[bot] in #43021
- ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests by @devin-ai-integration[bot] in #42902
- feat(proxy): let callbacks filter the model listing routes per caller by @devin-ai-integration[bot] in #43027
- ci: move tests/proxy_unit_tests to tests/unit/proxy and run the proxy-db shards from litellm-tests by @devin-ai-integration[bot] in #42903
- ci: move provider-independent MCP tests into tests/unit and run mcp-integration from litellm-tests by @devin-ai-integration[bot] in #42904
- fix(vertex_ai): translate /v1/responses batch rows through the Responses-to-Chat bridge by @devin-ai-integration[bot] in #43042
- fix(cost-map): add vertex priority prices for gemini-3-pro-image-preview and batch price for gemini-embedding-001 by @devin-ai-integration[bot] in #43069
- feat(agents): add optional per-agent kill switch webhook by @devin-ai-integration[bot] in #42841
- fix(proxy): stop /utils/transform_request from calling the provider and blocking the event loop by @devin-ai-integration[bot] in #33954
- fix(ui): explain unbackfilled key lifetime spend and ship a backfill script by @devin-ai-integration[bot] in #42967
- chore(cost-map): add video input price to gemini 3.8 live rows by @devin-ai-integration[bot] in #43073
- fix(cost-map): drop cache read price from vertex gemini-2.5-flash-image by @devin-ai-integration[bot] in #43078
- docs(e2e): carve harness tests out of the no-unit-tests hard rule by @devin-ai-integration[bot] in #43076
- fix(mcp): cap an agent key's tools at what the invoking user and team may call by @yassin-berriai in #42478
- feat(spend): capture-rate check of LiteLLM spend against the OpenAI bill by @devin-ai-integration[bot] in #43044
- ci: run the claude_code harness unit-test trees in the lint job by @devin-ai-integration[bot] in #43077
- fix(cost-map): sync openrouter deepseek v4 and glm-5.3-flash prices, add mistral-large-2512 by @devin-ai-integration[bot] in #43090
- feat(cost-map): add fireworks glm-5p3 US-only rows and kimi-k3-us priority prices by @devin-ai-integration[bot] in #43092
- feat(ui): offer reset of custom member budgets when team default changes by @devin-ai-integration[bot] in #42835
- fix(router): serve Responses turns from a sibling when the encrypted content origin has no boundary peer by @devin-ai-integration[bot] in #43015
- chore(cost-map): sync gemini priority, flex and video token prices from the Gemini API pricing page by @devin-ai-integration[bot] in #43091
- feat(cost-map): add fireworks deepseek-v4p1-flash US-only rows by @devin-ai-integration[bot] in #43097
- fix(router): match provider-prefixed fallback keys for bare model groups served by wildcard deployments by @devin-ai-integration[bot] in #43062
- fix(bedrock): map Anthropic batch row params the way real time does by @devin-ai-integration[bot] in #43087
- feat(ui): make the audit log detail drawer wider and resizable by @devin-ai-integration[bot] in #42808
- feat(proxy): enforce tpm_limit and rpm_limit set on tag objects by @devin-ai-integration[bot] in #41807
- feat(rust_bridge): read secrets through Python from Rust routes and declare Rust-only routes with NO_PYTHON by @devin-ai-integration[bot] in #43057
- refactor(ocr): remove the Python OCR execution path and require the Rust route by @devin-ai-integration[bot] in #43081
- fix(spend): attribute CLI session spend to the per-user cli-session alias instead of the hashed session token by @mateo-berri in #40541
- test(e2e): pin end-user and tag attribution from Codex-style headers on /v1/responses by @devin-ai-integration[bot] in #43093
- fix(vertex_ai): return chunk content, extractive text, and structData from search_api vector store hits by @devin-ai-integration[bot] in #43100
- feat(lint): cap comprehensions at one for and one if clause (LIT014) by @devin-ai-integration[bot] in #42650
- chore(cost-map): add openai deprecation dates from the deprecations page by @devin-ai-integration[bot] in #43102
- chore(cost-map): add gemini tts batch output prices from the Gemini API pricing page by @devin-ai-integration[bot] in #43103
- feat(proxy): let team admins update member key budgets when enabled by @devin-ai-integration[bot] in #42555
- fix(vertex_ai): surface the Gemma container's own error inside a 200 :predict response by @devin-ai-integration[bot] in #43075
- chore(cost-map): add azure retirement dates from the retired Foundry models page by @devin-ai-integration[bot] in #43104
- fix(fal_ai): price nano-banana-2 and nano-banana-pro image generations by resolution by @devin-ai-integration[bot] in #43101
- chore(cost-map): add computer-use-preview deprecation date from the openai deprecations page by @berriai-litellm-provider-info-sync[bot] in #43116
- fix(proxy): authorize key model aliases the same way as team aliases by @devin-ai-integration[bot] in #43049
- chore(cost-map): add azure retirement dates for command-r-plus and gpt-4 by @berriai-litellm-provider-info-sync[bot] in #43117
- fix(vertex_ai): stop advertising OpenAI platform-only params on Gemma and Llama routes by @devin-ai-integration[bot] in #43079
- fix(router): honor disable_fallbacks on mid-stream fallback by @devin-ai-integration[bot] in #43111
- refactor(types): declare litellm-owned kwargs as typed objects and derive the lists from their fields by @devin-ai-integration[bot] in #42843
- chore: bump litellm-enterprise 0.1.70 -> 0.1.71, litellm-proxy-extras 0.4.101 -> 0.4.102 by @yuneng-berri in #43120
- fix(cost): apply a deployment's pricing override to realtime sessions by @devin-ai-integration[bot] in #43114
- refactor(rust): extract the host coroutine into its own crate by @devin-ai-integration[bot] in #43129
- chore(cost-map): add together-ai deprecation dates for gpt-oss-20b and gemma-4-31B-it by @berriai-litellm-provider-info-sync[bot] in #43127
- feat(mcp): allow ["*"] wildcard in mcp_tool_permissions to grant all current and future tools by @devin-ai-integration[bot] in #43108
- ci: cut rc/<X.Y.0> off main every Friday at 3am Pacific by @devin-ai-integration[bot] in #43121
- fix(anthropic): keep the replayed prefix byte-stable for preserved thinking on chat completions by @devin-ai-integration[bot] in #42630
- feat(providers): add Nadir intelligent-router provider (nadir/auto) by @doramirdor in #33227
- fix(together_ai): backfill deprecation_date from Together deprecation history by @berriai-litellm-provider-info-sync[bot] in #43135
New Contributors
- @PhimmStraiker made their first contribution in #41880
- @SiluPanda made their first contribution in #40204
- @ahamedshaik16 made their first contribution in #42966
- @doramirdor made their first contribution in #33227
Full Changelog: v1.104.0-dev.1...v1.104.0-dev.2