Commit Graph
31918 Commits
Author SHA1 Message Date
Ryan Crabbe f976a01fce fix: use precise tuple[str, str] type annotation for _PRESERVED_NONE_FIELDS 2026-02-21 11:34:30 -08:00
Ryan Crabbe c071e01fb6 fix: address PR review comments for model_dump_with_preserved_fields
- Restore preserve_fields param for backward compatibility (deprecated)
- Use zip() instead of index-based iteration to prevent IndexError
- Add backward compatibility test
2026-02-21 10:48:10 -08:00
Ryan Crabbe 19122ed271 perf: optimize model_dump_with_preserved_fields (15.9x faster)
Replace 3 full tree traversals with 1 Pydantic dump + 3 dict lookups
per choice. Deletes _path_matches_pattern, _build_preserved_paths, and
_remove_none_except_preserved helpers (~140 lines removed). Adds 13
regression tests including full output structure snapshots.
2026-02-10 09:49:44 -08:00
19024e0602 [Feat] MCP Oauth2 Fixes - Add support for MCP M2M Oauth2 support (#20788)
* add has_client_credentials

* MCPOAuth2TokenCache

* init MCP Oauth2 constants

* MCPOAuth2TokenCache

* resolve_mcp_auth

* test fixes

* docs fix

* address greptile review: min TTL, env-configurable constants, tests, docs

- Fix zero-TTL edge case: floor at MCP_OAUTH2_TOKEN_CACHE_MIN_TTL (10s)
- Make all MCP OAuth2 constants env-configurable via os.getenv()
- Move test file to follow 1:1 mapping convention (test_oauth2_token_cache.py)
- Add MCP OAuth doc page (mcp_oauth.md) with M2M and PKCE sections
- Update FAQ in mcp.md to reflect M2M support
- Add E2E test script and config

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

* fix mypy lint

* fix oauth2

* remove old files

* docs fix

* address greptile comments

* fix: atomic lock creation + validate JSON response shape

- Use dict.setdefault() for atomic per-server lock creation
- Add isinstance(body, dict) check before accessing token response fields

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

* fix: replace asserts with proper guards, wrap HTTP errors with context

- Replace `assert` statements with `if/raise ValueError` (asserts can be
  disabled with python -O in production)
- Wrap `httpx.HTTPStatusError` to provide a clear error message with
  server_id and status code
- Add tests for HTTP error and non-dict JSON response error paths
- Remove unused imports

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:35:11 -08:00
michelligabrieleandGitHub 35eb303098 fix(prometheus): sanitize label values to prevent metric scrape failures (#20600)
* fix(prometheus): sanitize label values to prevent metric scrape failures

Unicode characters like U+2028 (Line Separator) in Prometheus label values
break the text exposition format, causing scrapers (e.g. Datadog) to fail
parsing the entire /metrics endpoint. One bad label value causes ALL metrics
to be lost, not just the affected metric.

Add _sanitize_prometheus_label_value() and apply it in prometheus_label_factory()
and all direct .labels() call sites.

* fix(prometheus): handle non-string label values in sanitization

Coerce non-string values (int, bool, float) to str before applying
sanitization, preventing AttributeError on .replace() calls.

* fix(prometheus): run sanitization on coerced non-string values

Non-string values should be coerced to str and then sanitized (not
returned early), so their string representations also get cleaned.

* fix(prometheus): widen type hint to Optional[Any] for label value sanitization
2026-02-09 15:48:59 -08:00
yuneng-jiangandGitHub bb17ca15e9 Merge pull request #20785 from BerriAI/litellm_ui_team_info_refactor
[Refactor] UI - Team Info: Migrate to AntD Tabs + Table
2026-02-09 14:13:22 -08:00
yuneng-jiang c2536ee82a refactor antd tabs and table 2026-02-09 14:05:05 -08:00
yuneng-jiangandGitHub f8660a8ab0 Merge pull request #20780 from BerriAI/litellm_ui_coverage_04
[Refactor] UI - Remove unused files + Add unit tests
2026-02-09 13:02:42 -08:00
4555ed37c5 fix(callbacks): allow MAX_CALLBACKS override via env var (#20781)
* fix(callbacks): allow MAX_CALLBACKS override via env var (#20778)

* fix(callbacks): allow MAX_CALLBACKS override via env var

- Move MAX_CALLBACKS from logging_callback_manager.py to constants.py
- Add LITELLM_MAX_CALLBACKS env var override (default: 30)
- Add troubleshooting doc explaining the limit and override

Fixes issue where large deployments with 60+ teams using guardrails
would hit the hardcoded MAX_CALLBACKS=30 limit and fail to start.

* docs: add max_callbacks to sidebar navigation

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>

* fix callbacks issue

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@berri.ai>
Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
2026-02-09 12:11:32 -08:00
yuneng-jiang ff5a3acc1c addressing feedback around tests 2026-02-09 12:07:53 -08:00
yuneng-jiang fb4daad8d4 refactor: remove some unused files and add tests 2026-02-09 11:50:40 -08:00
yuneng-jiangandGitHub 9bb7f18795 Merge pull request #20773 from BerriAI/litellm_ui_error_code
[Feature] UI - Logs: Show Predefined Error Codes in Filter with User Definable Fallback
2026-02-09 11:42:36 -08:00
yuneng-jiang a7ed3f240c Show predefined error codes in UI with user adjustable fallback 2026-02-09 11:08:28 -08:00
Ishaan Jaffer f2ba120c43 docs fix 2026-02-09 10:59:57 -08:00
Ishaan JaffandGitHub 9532ad0fab docs fix (#20768) 2026-02-09 10:03:43 -08:00
Sameer KankuteandGitHub 136fc698ef Merge pull request #20601 from Harshit28j/litellm_fix_budget_model_v2
fix conflicts with main- (this PR is from upstream/main)
2026-02-09 20:08:27 +05:30
Sameer KankuteandGitHub 6b2bcdb870 Merge pull request #20483 from BerriAI/litellm_completion_websearch
[Feat] Chat completion - Add Websearch support using LiteLLM /search (using web search interception hook)
2026-02-09 17:52:52 +05:30
Sameer KankuteandGitHub 6158e46f00 Merge pull request #20747 from BerriAI/litellm_image_gen_bas_model_fix
Fix: base_model name for body and deplyment name in URL
2026-02-09 17:51:41 +05:30
Sameer Kankute 2d18ae4f9e Fix mypy issues 2026-02-09 17:44:39 +05:30
Sameer Kankute 125e11d36e Fix mypy issues 2026-02-09 17:43:52 +05:30
Sameer KankuteandGitHub 5693e2c785 Merge pull request #20752 from BerriAI/litellm_fix_cicd_9_feb
Fix: get_supported_anthropic_messages_params
2026-02-09 17:38:39 +05:30
Sameer Kankute 5702cc7e13 Fix: get_supported_anthropic_messages_params 2026-02-09 17:38:03 +05:30
Sameer Kankute 0b5cb47c03 fix: Missing return statement for async streaming 2026-02-09 17:34:48 +05:30
Sameer KankuteandGitHub e5f41ba054 Merge pull request #20733 from BerriAI/litellm_v1_messages_claude_4_6
[Feat]Add new claude 4-6 feat for v1/messages
2026-02-09 17:26:40 +05:30
Sameer Kankute 5611974228 Fix : litellm/tests/test_litellm/llms/bedrock/chat/invoke_transformations/test_bedrock_chat_invoke_transformations_anthropic_claude3_transformation.py 2026-02-09 17:18:05 +05:30
Sameer KankuteandGitHub ef55d37bf0 Merge branch 'main' into litellm_v1_messages_claude_4_6 2026-02-09 17:14:36 +05:30
Sameer Kankute 30d17c29e4 handle when litellm_parrams might be none 2026-02-09 17:13:39 +05:30
Sameer KankuteandGitHub 3cf109ed0c Merge pull request #20745 from BerriAI/litellm_vercel_ai_models
Add new vercel ai anthropic models
2026-02-09 17:07:56 +05:30
Sameer Kankute 23088f86bd Add response schema for vercel ai sonnet 4.5 2026-02-09 17:07:36 +05:30
Sameer KankuteandGitHub 493eaa6200 Merge pull request #20748 from BerriAI/litellm_anthropic_output_config
Add output_config as supported param
2026-02-09 17:04:08 +05:30
Sameer KankuteandGitHub a322db02ab Merge pull request #20696 from BerriAI/litellm_oss_staging_02_08_2026
Litellm oss staging 02 08 2026
2026-02-09 16:59:54 +05:30
Sameer KankuteandGitHub 285c00ac20 Merge pull request #20710 from tsachis/fix-video-list-pagination-id-encoding
Fix video list pagination cursors not encoded with provider metadata
2026-02-09 16:41:52 +05:30
Sameer Kankute 1b2278951d Add output_config as supported param 2026-02-09 16:39:21 +05:30
Sameer KankuteandGitHub f929461fc6 Merge pull request #20702 from emerzon/fix/issue-20698-stream-chunk-thinking-blocks
fix(streaming): preserve interleaved thinking/redacted_thinking blocks
2026-02-09 16:32:43 +05:30
Sameer Kankute d35691aa0c Fix: base_model name for body and deplyment name in URL 2026-02-09 16:25:46 +05:30
Sameer Kankute 6c4d6bb15e Add new vercel ai anthropic models 2026-02-09 16:00:01 +05:30
Sameer KankuteandGitHub 2f33445054 Merge pull request #20738 from BerriAI/main
merge main
2026-02-09 15:07:39 +05:30
Sameer KankuteandGitHub a924a07255 Merge pull request #20736 from CAFxX/verificationtoken-index
add missing indexes on VerificationToken table
2026-02-09 14:37:51 +05:30
Sameer Kankute c48986ba8d Fix double json import 2026-02-09 14:21:43 +05:30
Sameer Kankute 1f04115fb0 Fix: is_web_search_tool_chat_completion 2026-02-09 13:59:05 +05:30
Sameer Kankute 7fa4d090ec Add doc for chat completion web search 2026-02-09 13:51:26 +05:30
Sameer Kankute 4e94ecb08d Add tests for WebSearch interception with chat completions API 2026-02-09 13:41:29 +05:30
Sameer Kankute 3d49388d8e Fix structured response of tool call 2026-02-09 13:36:01 +05:30
Carlo Alberto Ferraris 248fe65736 add missing indexes on VerificationToken table 2026-02-09 16:59:28 +09:00
Sameer Kankute 319453d059 Add documentation for Fast Mode 2026-02-09 11:39:35 +05:30
Sameer Kankute c3b1c0a590 Add fast mode for other providers 2026-02-09 11:36:10 +05:30
Sameer Kankute b822e2e0ff Add support for fast param 2026-02-09 11:28:00 +05:30
Sameer Kankute 29e6efade9 Add inference_geo as supported messages param 2026-02-09 10:57:04 +05:30
Sameer Kankute 20440bcadc Add inference based costing 2026-02-09 10:51:50 +05:30
Sameer Kankute 3307f3d1c6 Add inference_geo as supported messages param 2026-02-09 10:47:13 +05:30