Commit graph

31500 commits

Author SHA1 Message Date
michelligabriele
558f01e848
fix(proxy): use return value from CustomLogger.async_post_call_success_hook (#19670)
* fix(proxy): use return value from CustomLogger.async_post_call_success_hook

Previously the return value was ignored for CustomLogger callbacks,
preventing users from modifying responses. Now the return value is
captured and used to replace the response (if not None), consistent
with CustomGuardrail and streaming iterator hook behavior.

Fixes issue with custom_callbacks not being able to inject data into
LLM responses.

* fix(proxy): also fix async_post_call_streaming_hook to use return value

Previously the streaming hook only used return values that started with
"data: " (SSE format). Now any non-None return value is used, consistent
with async_post_call_success_hook and streaming iterator hook behavior.

Added tests for streaming hook transformation.

---------

Co-authored-by: Gabriele Michelli <michelligabriele0@gmail.com>
2026-01-26 08:48:22 -08:00
Ephrim Stanley
caa2c57619 Fix /batches to return encoded ids (from managed objects table) 2026-01-26 10:36:43 -05:00
Tamir Kiviti
aa8134fee9
add timeout to onyx guardrail (#19731)
* add timeout to onyx guardrail

* add tests
2026-01-25 23:13:46 -08:00
Harshit Jain
87acdef899
feat: tpm-rpm limit in prometheus metrics (#19725)
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-01-25 23:11:33 -08:00
Harshit Jain
79603b9c3a
fix: optimize logo fetching and resolve mcp import blockers (#19719) 2026-01-25 23:08:16 -08:00
Harshit Jain
344ea3d9f2
feat: add clientip and user agent in metrics (#19717)
* feat: add clientip and user agent in metrics

* fix: lint errors

* Add model id and other req labels

---------

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-01-25 23:07:19 -08:00
Harshit Jain
a65ac2af13
add callbacks and labels to prometheus (#19708) 2026-01-25 23:03:23 -08:00
jquinter
5666c725ce
Fix/non standard mcp url pattern (#19738)
* fix(mcp): Add standard MCP URL pattern support for OAuth discovery (#17272)

  OAuth discovery endpoints now support both URL patterns:
  - Standard MCP pattern: /mcp/{server_name} (new)
  - Legacy LiteLLM pattern: /{server_name}/mcp (backward compatible)

  The standard pattern is required by MCP-compliant clients like
  mcp-inspector and VSCode Copilot, which expect resource URLs
  following the /mcp/{server_name} convention per RFC 9728.

  Changes:
  - Add _build_oauth_protected_resource_response() helper
  - Add oauth_protected_resource_mcp_standard() endpoint
  - Add oauth_authorization_server_mcp_standard() endpoint
  - Keep legacy endpoints for backward compatibility
  - Add tests for both URL patterns

  Fixes #17272

* fix(mcp): Add standard MCP URL pattern support for OAuth discovery (#17272)

  OAuth discovery endpoints now support both URL patterns:
  - Standard MCP pattern: /mcp/{server_name} (new)
  - Legacy LiteLLM pattern: /{server_name}/mcp (backward compatible)

  The standard pattern is required by MCP-compliant clients like
  mcp-inspector and VSCode Copilot, which expect resource URLs
  following the /mcp/{server_name} convention per RFC 9728.

  Changes:
  - Add _build_oauth_protected_resource_response() helper
  - Add oauth_protected_resource_mcp_standard() endpoint
  - Add oauth_authorization_server_mcp_standard() endpoint
  - Keep legacy endpoints for backward compatibility
  - Add tests for both URL patterns

  Fixes #17272

* Test was relocated

* refactor(mcp): Extract helper methods from run_with_session to fix PLR0915

Split the large run_with_session method (55 statements) into smaller
helper methods to satisfy ruff's PLR0915 rule (max 50 statements):

- _create_transport_context(): Creates transport based on type
- _execute_session_operation(): Handles session lifecycle

Also changed cleanup exception handling from Exception to BaseException
to properly catch asyncio.CancelledError (which is a BaseException subclass
in Python 3.8+).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(mcp): Fix flaky test by mocking health_check_server

The test_mcp_server_manager_config_integration_with_database test was
making real network calls to fake URLs which caused timeouts and
CancelledError exceptions.

Fixed by mocking health_check_server to return a proper
LiteLLM_MCPServerTable object instead of making network calls.

* test(mcp): Fix skip condition to properly detect claude model names

The skip condition for missing API keys was checking for "anthropic" in
the model name, but the test uses "claude-haiku-4-5" which doesn't match.
Updated to check for both "anthropic" and "claude" model patterns.

Also added skip condition for OpenAI models when OPENAI_API_KEY is not set.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(mcp): Fix skip condition to properly detect claude model names

The skip condition for missing API keys was checking for "anthropic" in
the model name, but the test uses "claude-haiku-4-5" which doesn't match.
Updated to check for both "anthropic" and "claude" model patterns.

Also added skip condition for OpenAI models when OPENAI_API_KEY is not set.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 23:00:53 -08:00
Jay Prajapati
582d324a76
fix(proxy): support slashes in google generateContent model names (#19737)
* fix(proxy): support slashes in google route params

* fix(proxy): extract google model ids with slashes

* test(proxy): cover google model ids with slashes
2026-01-25 22:59:50 -08:00
yuneng-jiang
e0074b8365 Fix bulk user add 2026-01-24 21:52:29 -08:00
Harshit Jain
667b9122e0
Merge pull request #19720 from Harshit28j/fix/model_alias_map-argument-error
fix: args issue & refactor into helper function to reduce bloat for b…
2026-01-25 10:51:28 +05:30
Harshit Jain
6df0406cf6
fix: args issue & refactor into helper function to reduce bloat for both(#19441) 2026-01-25 10:21:20 +05:30
yuneng-jiang
edfb1b8fe1
Merge pull request #19718 from BerriAI/litellm_ui_team_member_add_error
[Feature] UI - Virtual Keys: Auto Truncation of Table Values
2026-01-24 18:58:54 -08:00
yuneng-jiang
6ffd8a1d32 auto truncation of virtual keys table values 2026-01-24 18:03:32 -08:00
Ishaan Jaffer
e41b9c29a8 fix MCP tests 2026-01-24 18:00:22 -08:00
Ishaan Jaffer
f148207b11 fix patch reliability mock tests 2026-01-24 17:37:17 -08:00
Ishaan Jaffer
73dd1bd97a test_stream_transformation_error_sync 2026-01-24 17:19:21 -08:00
yuneng-jiang
06f7a7ec69
Merge pull request #19716 from BerriAI/ui_build_yj_0124_2
[Infra] Rebuilding UI
2026-01-24 16:28:22 -08:00
yuneng-jiang
3c94458f35 chore: update Next.js build artifacts (2026-01-25 00:27 UTC, node v22.16.0) 2026-01-24 16:27:30 -08:00
yuneng-jiang
8094aff8c5
Merge pull request #19715 from BerriAI/key_teams_fallback_docs
[Docs] UI Keys Teams Router Settings docs
2026-01-24 16:26:28 -08:00
yuneng-jiang
937ccf1977 UI Keys Teams Router Settings docs 2026-01-24 16:23:46 -08:00
Harshit Jain
05fdd099ba
fix(presidio): resolve runtime error by handling asyncio loops in bac… (#19714)
* fix(presidio): resolve runtime error by handling asyncio loops in background threads

* add test case for thread safety
2026-01-24 15:36:49 -08:00
Ishaan Jaffer
53d3868ff2 TestBedrockInvokeToolSearch 2026-01-24 15:36:30 -08:00
yuneng-jiang
99e9462ec9
Merge pull request #19713 from BerriAI/litellm_model_search_id_team
[Feature] UI - Model Page: Filter by Model ID and Team ID
2026-01-24 15:04:20 -08:00
yuneng-jiang
47810f1523 Model and Team filtering 2026-01-24 14:45:14 -08:00
Ishaan Jaffer
9f99e8231c test_retrieve_container_basic 2026-01-24 14:31:54 -08:00
Ishaan Jaffer
f2fd54ffcf test fixes 2026-01-24 14:27:56 -08:00
Ishaan Jaffer
d8e0c43a21 test fixes 2026-01-24 14:08:48 -08:00
Ishaan Jaffer
df3c54ec6a BUMP extras 2026-01-24 14:04:30 -08:00
Ishaan Jaffer
e4e76a4963 test_team_update_sc_2 2026-01-24 13:17:32 -08:00
Ishaan Jaffer
489c986cac test_hanging_request_azure 2026-01-24 13:14:48 -08:00
Ishaan Jaffer
a62ccd582d fix flaky tests 2026-01-24 13:04:20 -08:00
Ishaan Jaffer
31a4cb65bf test_get_default_unvicorn_init_args 2026-01-24 12:59:51 -08:00
Ishaan Jaffer
241c0c6d2a docs fix 2026-01-24 12:32:18 -08:00
Ishaan Jaffer
6c6ed0dad2 docs fix 2026-01-24 12:11:39 -08:00
Ishaan Jaffer
28a9003103 docs fix 2026-01-24 12:10:42 -08:00
Ishaan Jaffer
bbeb007f4e docs fix 2026-01-24 12:09:16 -08:00
Ishaan Jaffer
a081dc2ee2 docs fix 2026-01-24 11:41:16 -08:00
Ishaan Jaffer
a7e26460d0 fix unstable tests 2026-01-24 11:15:16 -08:00
Ishaan Jaffer
bd38374a45 fix: FLAKY tests 2026-01-24 11:13:44 -08:00
Alexsander Hamir
9cdd7a8fd2
Fix: log duplication when json_logs is enabled (#19705) 2026-01-24 11:09:04 -08:00
Ishaan Jaffer
6710abd1fa test_web_search 2026-01-24 11:06:23 -08:00
Ishaan Jaffer
6587cd228b test_partner_models_httpx_streaming 2026-01-24 10:58:35 -08:00
Ishaan Jaffer
1a7274aa4e fix: _apply_search_filter_to_models mypy linting 2026-01-24 09:24:50 -08:00
Ishaan Jaffer
489d587332 CI/CD fixes - split local testing 2026-01-24 09:23:03 -08:00
yuneng-jiang
387cb8fde8
Merge pull request #19703 from BerriAI/yj_ui_build_jan24
[Infra] Build UI for Release
2026-01-24 09:20:26 -08:00
yuneng-jiang
17aec96186 chore: update Next.js build artifacts (2026-01-24 17:18 UTC, node v22.16.0) 2026-01-24 09:18:58 -08:00
Ishaan Jaffer
006b810370 bump: version 1.81.2 → 1.81.3 2026-01-24 09:15:06 -08:00
yuneng-jiang
ed1b9529f7
Merge pull request #19601 from BerriAI/litellm_ui_update_org_model
[Feature] UI - Organization Edit Page: Reusable Model Select
2026-01-24 09:10:15 -08:00
yuneng-jiang
5e395db1dc
Merge pull request #19604 from BerriAI/litellm_team_update_org
[Fix] Team Update with Organization having All Proxy Models
2026-01-24 09:09:55 -08:00