Commit graph

34557 commits

Author SHA1 Message Date
Alexsander Hamir
a5e8eb6848
docs: add Semgrep & OOM fixes section to v1.81.12 release notes (#21334) 2026-02-16 11:40:39 -08:00
yuneng-jiang
17312f5d20
Merge pull request #21332 from BerriAI/yj_infra_feb16
[Infra] Bumping proxy extras version
2026-02-16 11:23:22 -08:00
yuneng-jiang
ca1a642655 bumping pypi + build artifacts 2026-02-16 11:21:40 -08:00
yuneng-jiang
6371b30bfd bump: version 0.4.39 → 0.4.40 2026-02-16 11:20:59 -08:00
Ishaan Jaff
90edd98e0b
Fix OCI Grok output pricing (#21329) 2026-02-16 10:40:51 -08:00
Ryan Crabbe
8c58d355a4 fix: make aclose() idempotent, fix import ordering 2026-02-16 10:26:26 -08:00
Felipe Felix
504c70f4e0
fix(responses-api): return finish_reason='tool_calls' when response.completed contains function_call items (#19745)
When using the Responses API (e.g., Azure gpt-5.1-codex-mini), the response.completed
event was always returning finish_reason='stop', even when the response contained
function_call items in its output. This caused agents like OpenCode to incorrectly
conclude the stream ended without tools to execute, breaking tool/function calling
workflows.

The fix inspects the response.output field in the response.completed event to determine
the correct finish_reason:
- 'tool_calls' when output contains function_call items
- 'stop' otherwise (text-only responses)

Added tests to verify:
- response.completed with function_call output returns finish_reason='tool_calls'
- response.completed with message-only output returns finish_reason='stop'
- response.completed with empty output returns finish_reason='stop' (backward compat)

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-02-16 09:19:57 -08:00
Krish Dholakia
45690db820
UI - Content Filters, help edit/view categories and 1-click add categories + go to next page (#21223)
* feat(ui/): allow viewing content filter categories on guardrail info

* fix(add_guardrail_form.tsx): add validation check to prevent adding empty content filter guardrails

* feat(ui/): improve ux around adding new content filter categories

easy to skip adding a category, so make it a 1-click thing
2026-02-16 09:11:16 -08:00
Shivam Rawat
d448682291
fix: prevent double-counting of litellm_proxy_total_requests_metric (#21159)
* fixed double counting

* Update litellm/proxy/utils.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* reverse prev commit

* Update litellm/proxy/utils.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* removed else branch

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 09:10:49 -08:00
michelligabriele
035f0916ad
fix(mcp): revert StreamableHTTPSessionManager to stateless mode (#21323)
PR #19809 changed stateless=True to stateless=False to enable progress
notifications for MCP tool calls. This caused the mcp library to enforce
mcp-session-id headers on all non-initialize requests, breaking MCP
Inspector, curl, and any client without automatic session management.

Revert to stateless=True to restore compatibility with all MCP clients.
The progress notification code already handles missing sessions gracefully
(defensive checks + try/except), so no other changes are needed.

Fixes #20242
2026-02-16 09:08:44 -08:00
Vincent Koc
0dcc744f7e
fix(proxy): handle missing DATABASE_URL in append_query_params (#21239)
* fix: handle missing database url in append_query_params

* Update litellm/proxy/proxy_cli.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 09:03:10 -08:00
Chiranjeevisantosh Madugundi
dcff3260df
fix: preserve metadata for custom callbacks on codex/responses path (… (#21243)
* fix: preserve metadata for custom callbacks on codex/responses path (#21204)

- Use metadata or litellm_metadata when calling update_environment_variables
  in responses/main.py so metadata is not overwritten by None on the
  bridge path (completion -> responses API).
- Add tests for metadata in custom callback for codex models and for
  litellm_metadata in aresponses().

Co-authored-by: Cursor <cursoragent@cursor.com>

* Update tests/test_litellm/responses/test_metadata_codex_callback.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 08:59:38 -08:00
Krrish Dholakia
89e95f779f fix(index.md): cleanup str 2026-02-16 08:59:17 -08:00
Atharva Jaiswal
7bcef1490b
Fix: Exclude tool params for models without function calling support (#21125) (#21244)
* Fix tool params reported as supported for models without function calling (#21125)

JSON-configured providers (e.g. PublicAI) inherited all OpenAI params
including tools, tool_choice, function_call, and functions — even for
models that don't support function calling. This caused an inconsistency
where get_supported_openai_params included "tools" but
supports_function_calling returned False.

The fix checks supports_function_calling in the dynamic config's
get_supported_openai_params and removes tool-related params when the
model doesn't support it. Follows the same pattern used by OVHCloud
and Fireworks AI providers.

* Style: move verbose_logger to module-level import, remove redundant try/except

Address review feedback from Greptile bot:
- Move verbose_logger import to top-level (matches project convention)
- Remove redundant try/except around supports_function_calling() since it
  already handles exceptions internally via _supports_factory()
2026-02-16 08:36:32 -08:00
Itay Ovadia
bc2fefde45
Generic Guardrails: Add a configurable fallback to handle generic guardrail endpoint connection failures (#21245)
* Generic Guardrails: Add a configurable fallback to handle guardrail endpoint connection failures

* Fix PR comments

* Generic Guardrails: Add the fallback support to litellm.Timeout
2026-02-16 08:34:21 -08:00
Sameer Kankute
351e834802
Merge pull request #21320 from BerriAI/litellm_anthropic_doc_beta_header
Litellm anthropic doc beta header
2026-02-16 22:03:18 +05:30
Sameer Kankute
452f481fa0 correct the time 2026-02-16 21:59:54 +05:30
Sameer Kankute
e67641cdb3 Add blog fffor Managing Anthropic Beta Headers 2026-02-16 21:46:12 +05:30
Sameer Kankute
2ad648a083 Add blog fffor Managing Anthropic Beta Headers 2026-02-16 21:45:01 +05:30
jquinter
bf93ce8841
Merge pull request #21284 from BerriAI/fix/mcp-server-test-mocks
fix(test): add cleanup fixture and no_parallel mark for MCP tests
2026-02-16 12:12:58 -03:00
jquinter
c3fb5e1ea5
Update tests/test_litellm/proxy/_experimental/mcp_server/test_mcp_server.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 12:12:48 -03:00
jquinter
d84336bd07
Merge pull request #21283 from BerriAI/fix/video-generation-logging-mock
fix(test): correct async mock for video generation logging test
2026-02-16 12:12:20 -03:00
jquinter
87861549d8
Merge pull request #21282 from BerriAI/fix/cost-calculation-log-test-parallel
fix(test): replace caplog with custom handler for parallel execution
2026-02-16 12:11:48 -03:00
jquinter
a2ce7fc99d
Merge pull request #21280 from BerriAI/fix/add-pytest-postgresql-dependency
fix(deps): add pytest-postgresql for db schema migration tests
2026-02-16 12:09:55 -03:00
Julio Quinteros Pro
af9b6f6e0d Merge main into fix/add-pytest-postgresql-dependency
Resolved poetry.lock conflict by regenerating with Poetry 2.3.2.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 12:03:20 -03:00
Harshit Jain
1308a2cd76
Merge pull request #20314 from Harshit28j/fix/sso_PKCE_deployments
fix: SSO PKCE support fails in multi-pod Kubernetes deployments
2026-02-16 19:40:44 +05:30
Harshit Jain
dd2111e664
Merge pull request #20321 from Harshit28j/litellm_fix-virtual-key-grace-period
fix: virutal key grace period from env/UI
2026-02-16 19:36:18 +05:30
Harshit Jain
0341b6fa2b
Update litellm/litellm_core_utils/litellm_logging.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 19:34:13 +05:30
Harshit Jain
ca4029a715 fix req changes 2026-02-16 13:55:58 +00:00
Sameer Kankute
86a254a215
Merge pull request #21307 from BerriAI/litellm_oss_staging_02_14_20262
Litellm oss staging 02 14 20262
2026-02-16 19:10:59 +05:30
Harshit Jain
b753d8e413
Update litellm/litellm_core_utils/litellm_logging.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 19:08:42 +05:30
Harshit Jain
acfddf2049
Update litellm/litellm_core_utils/litellm_logging.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 19:07:22 +05:30
Sameer Kankute
0f2b0869ae
Merge pull request #21311 from BerriAI/litellm_add_agents_sdk_openai
Add doc for OpenAI Agents SDK with LiteLLM
2026-02-16 19:06:27 +05:30
Sameer Kankute
6ceebdcfe2 fix mypy 2026-02-16 19:05:06 +05:30
Sameer Kankute
be9df253dd
Update docs/my-website/sidebars.js
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-16 19:03:15 +05:30
Sameer Kankute
5b6e232da6 Add doc for OpenAI Agents SDK with LiteLLM 2026-02-16 19:00:53 +05:30
Sameer Kankute
a38b4c8924 Add doc for OpenAI Agents SDK with LiteLLM 2026-02-16 18:59:39 +05:30
Sameer Kankute
4548d9fbe9 fix mypy 2026-02-16 18:55:21 +05:30
Harshit Jain
da4915c072 fix langfuse otel missing traces 2026-02-16 13:24:02 +00:00
Sameer Kankute
ac2f17a514 fix: proxy/batches_endpoints/endpoints.py:309:11: PLR0915 Too many statements (54 > 50) 2026-02-16 18:41:06 +05:30
Sameer Kankute
27890dd46e
Merge pull request #21306 from mjkam/fix/bedrock-min-budget-tokens
fix(bedrock): clamp thinking.budget_tokens to minimum 1024
2026-02-16 18:31:28 +05:30
Sameer Kankute
72a1bd66c7
Merge pull request #21157 from Point72/ephrimstanley/s3-logger-skip-missing-standard-logging-object
Managed batches - Misc bug fixes
2026-02-16 18:29:59 +05:30
Emerson Gomes
06e7bfce2e perf(spend): avoid duplicate daily agent transaction computation (#21187) 2026-02-16 18:28:34 +05:30
Constantine
7ef9083812 fix(aiohttp): prevent closing shared ClientSession in AiohttpTransport (#21117)
When a shared ClientSession is passed to LiteLLMAiohttpTransport,
calling aclose() on the transport would close the shared session,
breaking other clients still using it.

Add owns_session parameter (default True for backwards compatibility)
to AiohttpTransport and LiteLLMAiohttpTransport. When a shared session
is provided in http_handler.py, owns_session=False is set to prevent
the transport from closing a session it does not own.

This aligns AiohttpTransport with the ownership pattern already used
in AiohttpHandler (aiohttp_handler.py).
2026-02-16 18:28:28 +05:30
Kristoffer Arlind
51b1b0339c Allow effort="max" for Claude Opus 4.6 (#21112) 2026-02-16 18:28:22 +05:30
Ephrim Stanley
a3762e7d49 Addressed greptile comments to extract common helpers and return 404 2026-02-16 07:58:04 -05:00
Fly
9c71d8b61b feat(s3): add support for virtual-hosted-style URLs (#21094)
Add s3_use_virtual_hosted_style parameter to support AWS S3 virtual-hosted-style URL format (bucket.endpoint/key) alongside the existing path-style format (endpoint/bucket/key).

This enables compatibility with S3-compatible services like MinIO and aligns with AWS S3 official terminology.
2026-02-16 18:26:44 +05:30
jquinter
43f9a588d9 fix: improve Langfuse test isolation to prevent flaky failures (#21093)
The test was creating fresh mocks but not fully isolating from setUp state,
causing intermittent CI failures with 'Expected generation to be called once.
Called 0 times.'

Instead of creating fresh mocks, properly reset the existing setUp mocks to
ensure clean state while maintaining proper mock chain configuration.
2026-02-16 18:26:37 +05:30
Sameer Kankute
70a49a4b35
Merge pull request #21295 from BerriAI/litellm_correct_converse_usage
Fix converse anthropic usage object according to v1/messages specs
2026-02-16 18:22:30 +05:30
Sameer Kankute
4976029ee6
Merge pull request #21302 from BerriAI/litellm_kilo_ai
Add routing based on if reasoning is supported or not
2026-02-16 18:20:25 +05:30