Verify Docker Image Signature
All LiteLLM Docker images are signed with cosign. This release is signed with the key introduced in commit e82a3c6.
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 published signing key:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/e82a3c646908ba0a6ee0beddc4310d7a6cac4065/cosign.pub \
ghcr.io/berriai/litellm:v1.109.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.109.0-dev.2/cosign.pub \
ghcr.io/berriai/litellm:v1.109.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
- fix(databricks): price the openjev decision model at its published 0.6 DBU per 1M input tokens by @kerry-berri in #48694
- fix(tavily): return raw_content, score, favicon and the response envelope from Tavily search by @mrinal-berri in #48684
- fix(ui): keep guardrail wizard navigation within the dialog by @tin-berri in #48688
- fix(langfuse otel): emit request metadata under langfuse.observation.metadata and langfuse.trace.metadata on the OTEL v2 Langfuse mapper by @devin-ai-integration[bot] in #42697
- fix(cohere): map string stop parameter to list of strings for stop_sequences by @Pyhroff in #47091
- fix(anthropic): count search results and reject unsupported token-count blocks by @kerry-berri in #48699
- fix(proxy)!: paginate customer lists and usage filters by @tin-berri in #48700
- fix(responses): skip failed spend-log turns when rebuilding a session from previous_response_id by @ryan-crabbe-berri in #48647
- fix(responses): reject or drop Responses params the chat completions bridge cannot translate by @ryan-crabbe-berri in #48655
- fix(ui): prefill the key edit Organization picker from org_id by @mateo-berri in #39535
- fix(responses): keep every MCP tool round in streaming follow-up input by @shivamrawat1 in #47698
- docs(readme): link the LiteLLM OSS Champions program from Contributing by @zoveki in #48734
- test(harness): audit #47530 by @norkelbyte in #48751
- test(sagemaker): audit #47495 by @rj-cairn in #48767
- test(gemini): audit #47542 by @zoveki in #48758
- test(proxy): pin the max_parallel_requests slot release when a streamed /v1/messages MCP auto-execute ends by @mateo-berri in #47788
- fix(cost-map): drop the gpt-5-nano priority input price OpenAI does not sell by @tessellark in #48763
- test(spend): audit #47815 by @norkelbyte in #48774
- feat: add ai& (aiand) provider by @islomjon-aiand in #38958
- fix(router)!: count an explicit allowed_fails of 3 and keep fallback deployments out of cooldown by @HardMax71 in #46183
- test(proxy): audit #47418 by @tavren27 in #48766
- fix(router): let affinity pins yield to deployments that already failed this request by @aidanasingh in #32309
- test(llms): audit #47535 by @tessellark in #48786
- test(responses): audit #47504 by @norkelbyte in #48787
- test(spend): audit #47353 by @rj-cairn in #48785
- test(proxy): audit #46815 by @m6atlas in #48768
- fix(bedrock): retry without strict when Bedrock rejects strict tool schemas under drop_params by @m6atlas in #48733
- test(files): audit #40621 by @zoveki in #48788
- test(anthropic, bedrock): audit #47489 by @zoveki in #48782
- fix(anthropic): let drop_params drop speed on claude-opus-4-7 after Anthropic removed its fast mode by @norkelbyte in #48764
- test(token_counter): audit #47586 by @simonp9 in #48800
- test(anthropic): audit #47478 by @paveln83 in #48803
- fix(router): continue Responses mid-stream fallbacks on models without assistant prefill by @tin-berri in #47672
- test(router): audit #47498 by @mika-lt in #48799
- test(decisions): audit #47508 by @tavren27 in #48777
- test(router): audit #47376 by @norkelbyte in #48792
- test(proxy): audit #47358 by @norkelbyte in #48784
- test(router): audit #41368 by @tavren27 in #48794
- refactor(fallback-generalizations)!: remove the legacy extends and mixed-rule shim by @norkelbyte in #48737
- fix(streaming): exact-match the SSE [DONE] marker in BaseModelResponseIterator by @michelligabriele in #47832
- test(nvidia_riva): audit #41021 by @quietjules in #48801
- feat(proxy): per-provider and per-model rpm/tpm requirements for enforce_project_model_quota by @mateo-berri in #47693
- feat(cli): keep the ChatGPT login with lite codex --subscription by @rj-cairn in #48741
- test(proxy): audit #47352 by @norkelbyte in #48804
- test(mcp): audit #47422 by @tavren27 in #48821
- test(scim): audit #47544 by @zoveki in #48791
- build(rust): upgrade reqwest to 0.13 and move MCP out of litellm-http by @yujonglee-berri in #48039
- fix(http): honor transport settings for Rust WebSockets by @yujonglee-berri in #47968
- fix(vertex_ai): send Vertex Claude labels as X-Vertex-AI-Labels header instead of the request body by @ryan-crabbe-berri in #48753
- fix(cost-map): rolling provider pricing, capability and retirement audit by @devin-ai-integration[bot] in #48188
- fix(proxy/auth): apply max_end_user_budget_id to end users without a row on cached keys by @moe-berri in #48704
- refactor(http): build outbound requests as reqwest::Request by @yujonglee-berri in #48041
- refactor(rust): adopt one error discipline across litellm-rust with source chains and Report by @yujonglee-berri in #48042
- feat(rust): one typed decline from core up to each host by @yujonglee-berri in #47772
- fix(huggingface): stop forcing truncate=false on TEI rerank and pass truncate params through by @moe-berri in #48706
- fix(ollama): forward embedding credentials, headers and timeout by @moe-berri in #48707
- fix(router)!: isolate child tier pins in user turn mode by @tin-berri in #48701
- fix(refuseless): update GLM 5.3 and DeepSeek V4.1 Flash prices by @moe-berri in #48844
- fix(ui): match simple auto router models to advanced setup by @moe-berri in #48851
- fix(ui): show reasoning in the Playground for /v1/responses by @moe-berri in #48850
- fix(responses): forward top-level moderation param to OpenAI by @moe-berri in #48708
- fix(proxy): store boolean settings as JSON booleans on /config/field/update by @shrey-berri in #48595
- fix(azure): map context_length_exceeded error code to ContextWindowExceededError by @shrey-berri in #48616
- fix(images): honor max_retries and prevent Router retry amplification by @moe-berri in #48705
- fix(vertex-ai): preserve image size aspect ratios by @shrey-berri in #48463
- fix(otel)!: label configured pass-through routes litellm.passthrough instead of chat by @yucheng-berri in #48675
- fix(chatgpt): derive the upstream session id from prompt_cache_key by @occ in #42014
- fix(cost-map)!: price Mistral Large 4 at its list price now that the launch sale ended by @zoveki in #48825
- fix(anthropic-messages): merge deployment and client anthropic-beta instead of overwriting by @shrey-berri in #48594
- feat(proxy): log one line per token count call by @mateo-berri in #47657
- fix(otel): suppress spans for excluded proxy requests by @tin-berri in #48720
- fix(baseten): price the two decision models at their published input rates by @devin-ai-integration[bot] in #48849
- fix(router)!: resolve trusted JEV connection environment references by @tin-berri in #48717
- chore(cost-map): fill fireworks spot router capability fields from base models by @kerry-berri in #48858
- fix(mistral): replay assistant reasoning as a Mistral thinking chunk by @rj-cairn in #48778
- fix(images): normalize absent images in async edits by @tin-berri in #48872
- fix(count_tokens)!: audit #47441 and keep the framed estimate for Bedrock count models from the cost map by @rj-cairn in #48805
- fix(responses)!: answer 400 before counting a lone Responses built-in tool on Claude by @tessellark in #48798
- fix(router): drop the deployment rpm filter from enable_pre_call_checks by @kerry-berri in #48873
- fix(router): pass lifecycle events through on background OpenAI responses streams that cannot fall back by @simonp9 in #48817
- fix(batches): stop unbillable batches from blocking file deletes and new-batch polling by @tessellark in #48752
- fix(audio): reject unsupported transcription providers with 400 by @shrey-berri in #47971
- fix(azure): share one Entra token request per worker and audit #47348 by @tessellark in #48769
- fix(cost-map): add mistral/deepseek-v4-1-flash-1017 by @devin-ai-integration[bot] in #48879
- feat(decisions): support Ollama decision models by @moe-berri in #48871
- fix(gemini)!: accept Google's current Managed Agents fields on create and interactions by @zoveki in #48750
- fix(openai)!: send the whole reasoning_effort dict when chat is bridged to Responses by @m6atlas in #48807
- fix(proxy): account for media in combined TPM reservations by @tin-berri in #48865
- feat(providers): add ZeroGPU as an OpenAI-compatible provider by @amaan-ai20 in #43874
- refactor(ui): use the shadcn Kbd primitive for keyboard hints by @yuneng-berri in #48885
- fix(pricing): sync databricks model prices by @devin-ai-integration[bot] in #48884
- fix(cli): let the proxy decide when a classic lite login token has expired by @mateo-berri in #47712
- fix(aiohttp_openai): forward service_tier in transform_response by @TemoSulava in #47263
- refactor(rust-bridge): require the native extension by @yujonglee-berri in #48852
- fix(streaming): surface upstream abort as server errors (LIT-10159) by @sorgfresser in #48328
- fix(ui): bundle the Aria avatar so it loads in every deployment by @yuneng-berri in #48890
- fix(responses)!: bill partial usage on mid-stream failures and report bridged /v1/messages failures to the proxy by @mateo-berri in #47537
- fix(files)!: scope provider and model file lists to the caller's managed files under require_managed_files by @mateo-berri in #47682
- fix(anthropic): map model_context_window_exceeded stop reason to length by @moe-berri in #48874
- feat(accounting): add accounting contracts, PricingSnapshot and ledger schema (LIT-10193) by @devin-ai-integration[bot] in #48862
- fix(ci): spend logs guard requires the approval to cover the head's spend-log lines by @kerry-berri in #48904
- fix(guardrails)!: make hide-secrets honor skip_tool_message_in_guardrail by @yucheng-berri in #48689
- fix(pricing): add databricks priority pay per token prices by @kerry-berri in #48891
- fix(ci): keep the spend logs guard approval through a later COMMENTED review (LIT-10242) by @kerry-berri in #48901
- fix(logging): bill each SDK call its own native Bedrock guardrail trace when calls share one metadata dict by @kerry-berri in #48923
- fix(aiohttp_transport): keep the owned session open while a response stream is still being read (LIT-10237) by @kerry-berri in #48920
- ci(spend-logs-guard): run only on pull_request_target, re-run by hand after approving by @kerry-berri in #48941
- fix(router): cool down failing deployments when fallbacks use string targets (LIT-10238) by @kerry-berri in #48913
- fix(migration_data_checks): size btree entries by the bytes Postgres stores (LIT-10244) by @kerry-berri in #48911
- feat(daily-activity): per-guardrail spend breakdown in user, team and organization daily activity by @mrinal-berri in #48702
- feat(ui): search and multi-select tools in the MCP toolset editor by @mrinal-berri in #48601
- fix(gemini): preserve every grounding web source by @SilverMarcs in #48745
- feat(proxy)!: model family and access group entries in model_max_budget by @mateo-berri in #47722
- test(routing): audit #46601 by @tessellark in #48910
- feat(skills): add a litellm-setup agent skill by @mateo-berri in #47731
- fix(ci): flag any schema.prisma change inside model LiteLLM_SpendLogs in the spend logs guard by @kerry-berri in #48905
- feat(router): add deployment rpd and tpd daily limits to enforce_model_rate_limits by @kerry-berri in #48875
- feat(tencent): add Seedream image generation and editing through TokenHub by @tessellark in #48735
- test(spend): audit #47506 by @quietjules in #48919
- feat(proxy): accept request priority from the x-litellm-priority header by @mubashir1osmani in #47618
- fix(websearch): strip Claude Code instructional prefix in short-circuit search by @agustin18 in #43458
- feat(accounting): add durable event ledger writer by @joshua-berri in #48883
- refactor(types): replace Any with proven types in 28 files by @rj-cairn in #48903
- test(gemini): cover every web source for a grounded passage by @moe-berri in #48861
- fix(router): reject string fallback targets at Router init (LIT-10238) by @kerry-berri in #48943
- fix(vertex-ai): add batch above 200k and image output batch prices for gemini models by @devin-ai-integration[bot] in #48945
- fix(streaming): keep merged think tags balanced and split SSE lines only on CR/LF by @rj-cairn in #48755
- refactor(router): fence the router surface and document the router-core boundary by @narmstrong-berri in #48839
- test(extraction): audit #47473 by @paveln83 in #48898
- ci: run zizmor with --no-ignores and move the spend logs and cost map guards to pull_request by @yuneng-berri in #48947
- refactor(images): remove dall-e-2 and dall-e-3 code paths by @kerry-berri in #48703
- test(proxy): audit #46997 by @zoveki in #48918
- test(responses): audit #47445 by @tavren27 in #48902
- fix(vertex_ai)!: send the caller's anthropic-version in the Vertex Claude /v1/messages body, not the header by @zoveki in #48814
- refactor(model-catalog): parse, lower and validate the catalog into typed prices by @yujonglee-berri in #48853
- test(router): set string fallback targets after Router init in the sdk cooldown cases (LIT-10238) by @kerry-berri in #48954
- fix(health): ask OpenAI and Azure audio chat models for audio output in the health check probe by @mateo-berri in #47730
- fix(proxy): stop log lines from leaving terminal colors on by @ryan-crabbe-berri in #48966
- fix(bedrock): omit system prompt from audio transcription and report its token usage by @david-koh in #41565
- fix(logging): stop dumping the request body at every layer under --detailed_debug by @ryan-crabbe-berri in #48973
- fix(stream): the last usage frame carries litellm's bill in usage.cost by @kerry-berri in #48955
- fix(responses): drop params compact rejects and send Azure compaction to the v1 route by @simonp9 in #48876
- fix(guardrails): scan Responses tool results in texts-mode guardrails by @mika-lt in #48827
- fix(guardrails): skip embeddings input in google_text_moderation by @simonp9 in #48934
- feat!: add StreamLake provider metadata by @ZHOUKAILIAN in #41006
- fix(proxy): let typesafe/* allowlists cover /typesafe Jev calls and list Jev in the model picker by @mateo-berri in #47697
- feat(router): daily_reset_time picks when deployment rpd and tpd daily limits start over by @kerry-berri in #48957
- test(unit): keep unix socket paths in unit tests under the macOS AF_UNIX limit by @devin-ai-integration[bot] in #45040
- feat(ocr)!: support outputContentFormat=markdown for Azure Document Intelligence by @zoveki in #48926
- feat(azure_ai): reach Foundry agents through the project Responses API by @mateo-berri in #47717
- docs(adrs): add ADRs for the Python SDK and proxy, starting with provider usage extras by @devin-ai-integration[bot] in #36668
- fix(responses): drop the null created_by OpenAI rejects when output items are replayed by @tessellark in #48783
- fix(cli): give lite codex aliases of a Codex-known model that model's catalog entry by @tessellark in #48894
- fix(proxy)!: enforce an end user's per-model budget from their linked budget by @mika-lt in #48815
- fix(context_management)!: count the system prompt toward the clear_tool_uses input_tokens trigger by @AlonSoko in #47857
- fix(google_genai): read one-object and null spellings of repeated fields in countTokens and generateContent by @zoveki in #48771
- fix(proxy)!: stop labelling management and health rejections as auth failures by @tavren27 in #48739
- test(json_fragment_accumulator): assert peak allocation instead of a drain timing ratio by @devin-ai-integration[bot] in #43370
- fix(credentials): keep the stored secret when PATCH echoes its masked read-back by @tessellark in #48950
- fix(responses): call the renamed drops_params helper on the compact path by @ryan-crabbe-berri in #49030
- docs(qa): allow focused proof for mechanical PRs by @mateo-berri in #49031
- fix(proxy): enforce team and key Allowed Vector Stores when no vector store registry is loaded by @paveln83 in #48915
- build(deps): bump langgraph and tornado and add dated scan ignores to clear osv-scan and image-scan by @devin-ai-integration[bot] in #48302
- fix(responses): stream every citation batch before completion by @SilverMarcs in #48747
- fix(token_counter): count OpenAI models newer than tiktoken's table with o200k_base by @rj-cairn in #48728
- fix(cost_map): mark fireworks_ai/minimax-m3 as vision and pin capabilities verified against live calls by @devin-ai-integration[bot] in #43390
- feat(responses): support Codex client tool_search on Anthropic and other bridged providers by @mateo-berri in #48972
- fix(proxy)!: list every priced Vertex family under a vertex_ai/* grant by @devin-ai-integration[bot] in #41959
- fix(responses): keep each Codex tool once when its tool list repeats across turns by @ryan-crabbe-berri in #49006
- feat(providers): add BigModel support and model pricing by @AaronHowell in #48563
- fix(health)!: openai realtime health check reports healthy with a missing or invalid api key by @devin-ai-integration[bot] in #41233
- fix(responses): replay the original Responses item order, phase, and boundaries on the next chat turn by @simonp9 in #48912
- fix(responses): resume background response streams with stream and starting_after by @paveln83 in #48819
- test(integration): scope the signoz, otel conversation id, and series cap proxy fixtures to their module by @rj-cairn in #48965
- fix(anthropic): drop the non-spec custom object from /v1/messages tool definitions by @zoveki in #48893
- fix(responses): drop a malformed prompt_cache_breakpoint under drop_params on the direct /v1/responses path by @devin-ai-integration[bot] in #45330
- test: fix flaky spend-log cleanup budget, login lockout, and wedged Redis tests by @devin-ai-integration[bot] in #47108
- fix(vertex_ai): build the cachedContents collection URL under a custom api_base by @devin-ai-integration[bot] in #44783
- fix(github_copilot): treat a malformed api-key.json like a missing one by @devin-ai-integration[bot] in #44723
- feat(proxy)!: add suppress_startup_output to turn off startup prints by @mateo-berri in #47708
- feat(proxy): let a Claude Code gateway user choose the session team by @simonp9 in #49001
- feat(proxy)!: general_settings.claude_code_marketplace_auth_required puts the Claude Code marketplace behind a LiteLLM key by @zoveki in #48980
- fix(token_counter)!: keep a loaded Hugging Face tokenizer when a slower download fails by @quietjules in #48916
- fix(llms): move later developer messages for models declared system-first by @mika-lt in #48897
- fix(openai): warn when the GPT-5 reasoning effort gate drops a level under drop_params by @mateo-berri in #47761
- fix(websearch)!: keep the provider prefix on the agentic follow-up model by @msdianprince-7 in #38885
- fix(logging): mark mirrored silent_model calls with is_silent_experiment in spend logs by @tavren27 in #48888
- fix(cohere): price native Cohere embed calls on Foundry relays and the Cohere passthrough by @tavren27 in #48978
- feat(providers): add Kyma API as an OpenAI-compatible provider by @m6atlas in #48756
- fix(cost): bill a deployment's per-second rates on native Anthropic /v1/messages by @devin-ai-integration[bot] in #42417
- fix(proxy): stream a guardrail block on /v1/messages as Anthropic events by @tessellark in #49010
- fix(caching): read the cache key's model group from the router's metadata for the call by @mika-lt in #48917
- fix(passthrough): forward OpenAI-Beta and default agents=v1 on the OpenAI passthrough by @mika-lt in #49009
- test(router_strategy): keep foreign asyncio task noise out of the budget limiter caplog asserts by @devin-ai-integration[bot] in #43375
- fix(bedrock)!: route region-prefixed embedding models to that region and bill its price by @tessellark in #49072
- fix(anthropic)!: drop beta-gated body fields under drop_params by @tavren27 in #48793
- ci: run the dashboard API types and Terraform endpoint checks on every change that can alter the spec by @tavren27 in #49022
- refactor(types): replace Any with proven types in 14 files by @mika-lt in #48928
- fix(fallback): read stored router_settings from the database on fallback writes by @mika-lt in #48999
- build(model-catalog): ship the cost map inside the native extension by @yujonglee-berri in #48907
- ci(model-catalog): check the cost map by loading it through model-catalog by @yujonglee-berri in #48908
- feat(soniox): add realtime speech-to-text on /v1/realtime by @dan2k3k4 in #44822
- fix(exceptions)!: honor status code when mapping OpenAI invalid_request_error exceptions by @otiscuilei in #32537
- fix(anthropic)!: send /v1/messages PDF documents to OpenAI-shaped providers as file parts by @mateo-berri in #47166
- feat(vector_stores): add OpenSearch k-NN search as a vector store provider by @mateo-berri in #47759
- feat(router): opt in to non-chat deployment filtering by @mateo-berri in #46257
- feat(secret_managers): resolve oidc/google api_key references per request by @mateo-berri in #47703
- fix(guardrails): scan and rewrite streamed /v1/completions under post_call guardrails by @paveln83 in #49035
- feat(dashscope)!: derive protocol bases from one domain by @Bytechoreographer in #47812
- fix(proxy): persist tag spend and drain success callbacks within the shutdown budget by @devin-ai-integration[bot] in #48988
- feat(proxy): replace the pre-migration row check with a rolled-back dry run of the pending migrations by @kerry-berri in #48961
- fix!: retain unattributed daily activity across reports and exports by @mrinal-berri in #48925
- refactor(router): add router entry points and keep the old members as a deprecated mixin by @narmstrong-berri in #48840
- fix(caching): keep reasoning, citations, and audio on streamed cache hits by @jesco-absolut in #32096
- fix(proxy): keep the litellm command light so spawned workers answer uvicorn's first health ping by @devin-ai-integration[bot] in #45039
- refactor(router): move router callers onto the entry points and invert the proxy imports by @narmstrong-berri in #48847
- feat(vertex_ai)!: use HTTP/2 httpx client for search_api vector store by @devin-ai-integration[bot] in #40631
- fix(anthropic): keep Mistral thinking text on streaming /v1/messages by @zoveki in #49059
- feat(guardrails): opt-in response_masked_data on PANW Prisma AIRS block by @mrinal-berri in #46219
- fix(proxy)!: honor litellm_settings.drop_params for Claude Code and Codex requests by @simonp9 in #49058
- docs: link README to Python SDK and autorouter guides by @moe-berri in #48986
- feat(router): infer custom classifier tiers from model mappings by @moe-berri in #48987
- fix(cost): finalize synchronous response cost once for header, spend log and rollups by @devin-ai-integration[bot] in #48993
- fix(guardrails)!: make lakera_v2 on_flagged block reject PII-only detections, add mask by @yucheng-berri in #48944
- fix(otel)!: give key/team Langfuse destinations user, tags and session on OTel v2 without global Langfuse keys by @yucheng-berri in #48718
- feat(guardrails): scan sampled stream windows in the background by @yucheng-berri in #48952
- fix(otel)!: print OTel v2 spans to stdout only when the operator asks by @yucheng-berri in #48723
- ci: run the integration groups on GitHub Actions by @yuneng-berri in #48985
- fix(responses): only merge repeated Codex tools when drop_params is on by @ryan-crabbe-berri in #49112
- fix(caching): key cached async clients by a per-loop token instead of id(loop) by @paveln83 in #48877
- test(otel): fix main's Langfuse destination tests after the stdout opt-in change by @yucheng-berri in #49129
- ci: run the extensions integration group with 48 workers by @yuneng-berri in #49134
- fix(guardrails): allow MCP call modes on the generic guardrail API by @jhoblitt in #48060
- fix(mcp)!: restore upstream-token admission for legacy delegate servers by @shrey-berri in #48939
- fix(ci): build base native extension for OpenAPI lint by @yujonglee-berri in #49136
- fix(proxy)!: bill streamed /v1/completions without stream_options like chat by @devin-ai-integration[bot] in #45366
- fix(anthropic): retry /v1/messages without strict when Claude rejects strict tools under drop_params by @zoveki in #49102
- feat(ui): add i18next plumbing and move the Workflows page onto it by @yuneng-berri in #49144
- fix(responses)!: keep the proxy's error body on litellm.responses errors from litellm_proxy models by @mika-lt in #49073
- fix(context_management)!: run clear_tool_uses in the gateway on the Responses API path by @AlonSoko in #47861
- chore: bump litellm-enterprise 0.1.80 -> 0.1.81, litellm-proxy-extras 0.4.111 -> 0.4.112 by @yuneng-berri in #49149
- feat(dashscope): add image edits and text-to-speech by @zoveki in #48998
- feat(pass-through): add eu/jev decision API pass-through with spend tracking by @edujuan in #46875
- chore(caching)!: remove the disk cache backend by @yuneng-berri in #48114
- test: update integration tests left stale by recent product changes by @yuneng-berri in #49143
- feat(lite): offer each model group's reasoning efforts in pi, OpenCode and Codex by @quietjules in #48949
New Contributors
- @Pyhroff made their first contribution in #47091
- @zoveki made their first contribution in #48734
- @rj-cairn made their first contribution in #48767
- @tessellark made their first contribution in #48763
- @islomjon-aiand made their first contribution in #38958
- @aidanasingh made their first contribution in #32309
- @m6atlas made their first contribution in #48768
- @mika-lt made their first contribution in #48799
- @quietjules made their first contribution in #48801
- @occ made their first contribution in #42014
- @amaan-ai20 made their first contribution in #43874
- @TemoSulava made their first contribution in #47263
- @SilverMarcs made their first contribution in #48745
- @david-koh made their first contribution in #41565
- @ZHOUKAILIAN made their first contribution in #41006
- @otiscuilei made their first contribution in #32537
- @jhoblitt made their first contribution in #48060
- @edujuan made their first contribution in #46875
Full Changelog: v1.109.0-dev.1...v1.109.0-dev.2