Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3384 commits
Select commit Hold shift + click to select a range
ad1db9f
[Fix] LiteLLM VertexAI Pass through - ensuring incoming headers are f…
ishaan-jaff Jan 21, 2026
5b64539
fix linting errors
mubashir1osmani Jan 21, 2026
2a2717a
Merge pull request #19525 from BerriAI/litellm_ui_models_pag_change
yuneng-jiang Jan 21, 2026
4a14a53
Merge pull request #19469 from BerriAI/litellm_feat_mcp_spendlogs
uc4w6c Jan 21, 2026
5f7d848
fix lint
mubashir1osmani Jan 21, 2026
c0007bd
fix: Send litellm_trace_id to Langfuse to link LiteLLM logs with Lang…
uc4w6c Jan 21, 2026
898cc3f
test: update langfuse trace_id tests to use litellm_trace_id
uc4w6c Jan 21, 2026
3a49e43
Merge pull request #19528 from BerriAI/litellm_fix_langfuse_trace_id
uc4w6c Jan 21, 2026
b23e775
Fix virtual keys table sorting
yuneng-jiang Jan 21, 2026
a163664
Adding tests
yuneng-jiang Jan 21, 2026
665d3f2
Merge pull request #19534 from BerriAI/litellm_ui_sorting_keys_fix_2
yuneng-jiang Jan 21, 2026
4106d24
feat: add GMI Cloud provider support (#19376)
Chesars Jan 21, 2026
2620b9f
Cut chat_completion latency by ~21% by reducing pre-call processing t…
AlexsanderHamir Jan 22, 2026
6723b30
Adding scope to /models
yuneng-jiang Jan 22, 2026
1a0faaf
Merge pull request #19468 from BerriAI/litellm_ui_team_select_001
yuneng-jiang Jan 22, 2026
c6b1578
Merge pull request #19296 from BerriAI/litellm_esca_reissue
yuneng-jiang Jan 22, 2026
e877b08
Merge pull request #18995 from BerriAI/litellm_e2e_create_key_test
yuneng-jiang Jan 22, 2026
4497f2d
e2e test internal viewer sidebar
yuneng-jiang Jan 22, 2026
6b6785b
Merge pull request #19539 from BerriAI/litellm_models_scope
yuneng-jiang Jan 22, 2026
e406ebf
Model Select for Create Team
yuneng-jiang Jan 22, 2026
9fe2822
Merge pull request #19540 from BerriAI/litellm_ui_e2e_internal_viewer…
yuneng-jiang Jan 22, 2026
f737429
create team model select
yuneng-jiang Jan 22, 2026
d117256
fixing build
yuneng-jiang Jan 22, 2026
d5e9123
[Fix] VertexAI Pass through - Ensure only anthropic betas are forward…
ishaan-jaff Jan 22, 2026
8c29ad4
[Fix] VertexAI Pass through - Ensure only anthropic betas are forward…
ishaan-jaff Jan 22, 2026
0e738a5
fix(mcp): forward static_headers to MCP servers (#19341) (#19366)
jayy-77 Jan 22, 2026
967bc82
Merge pull request #19509 from Chesars/add-gpt-audio-models
Sameerlite Jan 22, 2026
36f3250
Merge pull request #19500 from Chesars/fix/audio-model-pricing
Sameerlite Jan 22, 2026
3794f86
Merge pull request #19502 from Chesars/docs/base-model-openai-dated-v…
Sameerlite Jan 22, 2026
363b0cc
fix(azure): preserve content_policy_violation details for images (#19…
jayy-77 Jan 22, 2026
ab606c9
[Feat] Add Structured output for /v1/messages with Anthropic API, Azu…
ishaan-jaff Jan 22, 2026
7777aeb
fixing prompt-security's guardrail implementation (#19374)
davida-ps Jan 22, 2026
746414e
Fix/per service ssl override v2 (#19538)
Harshit28j Jan 22, 2026
815e6fc
docs: update Claude Code integration guides (#19415)
Chesars Jan 22, 2026
ebcc37d
add redisvl dependency to the root requiremnts.tx (#19417)
houdataali Jan 22, 2026
a117509
[Fix] UI Cost Estimator - Fix model dropdown (#19529)
ishaan-jaff Jan 22, 2026
73d49f8
fix: UI 404 error when SERVER_ROOT_PATH is set (#19467)
Harshit28j Jan 22, 2026
22000f3
fix: add case-insensitive support for guardrail mode and actions (#19…
Harshit28j Jan 22, 2026
60840ea
fix(bedrock): correct streaming choice index for tool calls (#19506)
joaodinissf Jan 22, 2026
c8669cf
Fix Azure RPM calculation formula (#19513)
emerzon Jan 22, 2026
ab274ac
fix(azure response api): flatten tools for responses api to support n…
yogeshwaran10 Jan 22, 2026
a3f7f58
Fix date overflow/division by zero in proxy utils (#19527)
emerzon Jan 22, 2026
9f57eb3
Fix Azure AI costs for Anthropic models (#19530)
wwwillchen Jan 22, 2026
5ea031e
Merge pull request #19543 from BerriAI/litellm_model_select_team
yuneng-jiang Jan 22, 2026
ed67bf2
feat: Add MCP tools response to chat completions
uc4w6c Jan 22, 2026
27e494c
Merge pull request #19552 from BerriAI/litellm_feat_completions_mcp_o…
uc4w6c Jan 22, 2026
59edd90
feat: display mcp output on the play ground
uc4w6c Jan 22, 2026
b7b2649
Merge pull request #19553 from BerriAI/litellm_feat_completions_mcp_o…
uc4w6c Jan 22, 2026
c374345
Fix: generation config empty for batch
Sameerlite Jan 22, 2026
1824066
Add custom vertex ai mapping to the output
Sameerlite Jan 22, 2026
24faca9
Add support for output formatfor bedrock invoke via v1/messages
Sameerlite Jan 22, 2026
4d20c8f
feat: Limit stop sequence as per openai spec
Sameerlite Jan 22, 2026
ad1edd3
Merge branch 'main' into litellm_staging_01_21_2026
Sameerlite Jan 22, 2026
e8bfab2
Fix mypy error in litellm_staging_01_21_2026
Sameerlite Jan 22, 2026
caab782
Fix: imagegeneration@006 has been deprecated
Sameerlite Jan 22, 2026
110e2c6
Fix : test_anthropic_via_responses_api
Sameerlite Jan 22, 2026
0afb2cb
Fix: Responses API usage field type mismatch
Sameerlite Jan 22, 2026
7c874ef
Fix: Httpx timeout test failures
Sameerlite Jan 22, 2026
b729622
Fix: generationConfig removal from tests
Sameerlite Jan 22, 2026
5a7a364
fix: mypy error
Sameerlite Jan 22, 2026
0cc52c7
comment code not used
Sameerlite Jan 22, 2026
8a622c5
feat: Add MCP tools response to chat completions
uc4w6c Jan 22, 2026
1657af8
feat: display mcp output on the play ground
uc4w6c Jan 22, 2026
991fee0
Fix batch tests
Sameerlite Jan 22, 2026
ab9c840
fix: mypy error
Sameerlite Jan 22, 2026
2fefafc
fix: mypy error
Sameerlite Jan 22, 2026
96a2016
Merge pull request #19565 from BerriAI/litellm_staging_01_21_2026_fixes
Sameerlite Jan 22, 2026
f312bf2
Fix:test_multiple_function_call
Sameerlite Jan 22, 2026
d893bfd
Merge pull request #19464 from BerriAI/litellm_staging_01_21_2026
Sameerlite Jan 22, 2026
73715ab
Merge pull request #19556 from BerriAI/litellm_fix_gemini_batch_jan22
Sameerlite Jan 22, 2026
c78c878
Merge pull request #19558 from BerriAI/litellm_gemini_vertexai_mapping
Sameerlite Jan 22, 2026
842e5b3
Merge pull request #19560 from BerriAI/litellm_bedrock_invoke_structu…
Sameerlite Jan 22, 2026
ddaf127
Merge pull request #19562 from BerriAI/litellm_stop_setting
Sameerlite Jan 22, 2026
4c3141f
build(deps): bump lodash from 4.17.21 to 4.17.23 in /docs/my-website
dependabot[bot] Jan 22, 2026
a51835d
Metrics prometheus user team count (#19520)
ecao310 Jan 22, 2026
8669910
fix ui build and mypy lint
yuneng-jiang Jan 22, 2026
84f75b3
Merge pull request #19576 from BerriAI/litellm_cicd_fix_yj_010
yuneng-jiang Jan 22, 2026
1bf32de
Adding python3-dev to non root
yuneng-jiang Jan 22, 2026
5e79a37
Merge pull request #19579 from BerriAI/litellm_cicd_fix_yj_011
yuneng-jiang Jan 22, 2026
88c7b45
adding node-tar cve allowlist
yuneng-jiang Jan 22, 2026
f9e2c5e
Merge pull request #19581 from BerriAI/litellm_cicd_fix_yj_012
yuneng-jiang Jan 22, 2026
88f8f49
fix(websearch_interception): filter internal kwargs before follow-up …
mpcusack-altos Jan 22, 2026
dcb111a
skip brave tests
yuneng-jiang Jan 22, 2026
d1d288f
Merge pull request #19582 from BerriAI/litellm_cicd_fix_yj_013
yuneng-jiang Jan 22, 2026
57d777b
Fix unsafe access to request attribute (#19573)
AlexsanderHamir Jan 22, 2026
dbe6f66
updating promethus tests
yuneng-jiang Jan 22, 2026
4bfb790
Merge pull request #19570 from BerriAI/dependabot/npm_and_yarn/docs/m…
yuneng-jiang Jan 22, 2026
a7bafad
Fix non-root proxy tests
yuneng-jiang Jan 22, 2026
24e90ec
Merge pull request #19583 from BerriAI/litellm_cicd_fix_yj_014
yuneng-jiang Jan 22, 2026
3ddc15a
Adding lodash-es to allowlist
yuneng-jiang Jan 22, 2026
5c29eee
Merge pull request #19585 from BerriAI/litellm_cicd_fix_yj_015
yuneng-jiang Jan 22, 2026
01f355b
Merge pull request #19587 from BerriAI/litellm_cicd_fix_yj_016
yuneng-jiang Jan 22, 2026
9301677
attempt fix translation tests
yuneng-jiang Jan 22, 2026
45a9886
fix: change oss staging branch name to reflect they're oss
krrishdholakia Jan 22, 2026
a0d47d5
Revert "[Infra] UI - E2E Tests: Internal Viewer Sidebar"
yuneng-jiang Jan 22, 2026
4314145
Merge pull request #19591 from BerriAI/revert-19540-litellm_ui_e2e_in…
yuneng-jiang Jan 22, 2026
8582842
Merge pull request #19590 from BerriAI/litellm_cicd_fix_yj_017
yuneng-jiang Jan 22, 2026
ce586ec
Overriding lodash-es with version 4.17.23 in docs
yuneng-jiang Jan 22, 2026
3cb47da
updating lodash for dashboard
yuneng-jiang Jan 22, 2026
c78b527
Merge pull request #19593 from BerriAI/litellm_cicd_fix_yj_018
yuneng-jiang Jan 22, 2026
d72f548
bump: version 1.81.1 → 1.81.2
yuneng-jiang Jan 22, 2026
e03feb7
Merge pull request #19595 from BerriAI/litellm_yj_bump_version
yuneng-jiang Jan 22, 2026
ca22e08
Add reusable model select to update organization page
yuneng-jiang Jan 22, 2026
9fe3e42
Fixing tests
yuneng-jiang Jan 22, 2026
f425c80
Adding EOS to finish reasons
yuneng-jiang Jan 22, 2026
827ce52
Adding retries to flaky tests
yuneng-jiang Jan 22, 2026
8ae4229
Merge pull request #19603 from BerriAI/litellm_cicd_fix_yj_020
yuneng-jiang Jan 22, 2026
c9516d6
add opencode tutorial (#19602)
milan-berri Jan 22, 2026
f78fc4e
Fix org all proxy model case
yuneng-jiang Jan 22, 2026
11ee13a
adjust opencode tutorial (#19605)
milan-berri Jan 23, 2026
066eb7f
Add OSS Adopters section to README
ishaan-jaff Jan 23, 2026
4164c9c
fix: completions mcp output ordering
uc4w6c Jan 23, 2026
9084c1d
feat(helm): Enable PreStop hook configuration in values.yaml (#19613)
Harshit28j Jan 23, 2026
ebf0bed
Fix: litellm/tests/test_proxy_server_non_root.py
Sameerlite Jan 23, 2026
b8399c1
Update README.md
ishaan-jaff Jan 23, 2026
e25bd5b
Update README.md
ishaan-jaff Jan 23, 2026
c23e4b8
[Feat] New LiteLLM Policy engine - create policies to manage guardrai…
ishaan-jaff Jan 23, 2026
26d8573
docs fix
ishaan-jaff Jan 23, 2026
69c8698
fix: pass through endpoints update registry (#19420)
Harshit28j Jan 23, 2026
26a2c90
[Fix] Anthropic models on Azure AI cache pricing (#19532) (#19614)
jgreek Jan 23, 2026
76fdaa2
Update README.md
ishaan-jaff Jan 23, 2026
f8ceab9
fix: for test
uc4w6c Jan 23, 2026
3ee7aab
All Models Backend Search
yuneng-jiang Jan 23, 2026
3ad08e9
adding test
yuneng-jiang Jan 23, 2026
6a60b3d
test: completions mcp output test
uc4w6c Jan 23, 2026
a06b5ff
chore: fix lint error
uc4w6c Jan 23, 2026
1ae9189
test: Skip anthropic model test when ANTHROPIC_API_KEY is not set
uc4w6c Jan 23, 2026
12bc66a
Merge pull request #19623 from BerriAI/litellm_fix_completions_mcp_ou…
uc4w6c Jan 23, 2026
4381e7f
Merge pull request #19624 from BerriAI/litellm_test_responses_api_wit…
uc4w6c Jan 23, 2026
919033a
fix: include tool arguments in proxy_server_request for spend logs ca…
uc4w6c Jan 23, 2026
695fbf4
feat: hashicorp vault rotate support
uc4w6c Jan 23, 2026
1246380
Merge pull request #19638 from BerriAI/main
Sameerlite Jan 23, 2026
83da74b
Merge pull request #19640 from BerriAI/litellm_fix_mcp_completions_sp…
uc4w6c Jan 23, 2026
acf5ad1
Add tool choice mapping for giga chat
Sameerlite Jan 23, 2026
8ac1d96
Merge pull request #19634 from BerriAI/litellm_feat_hashicorp_rotate
uc4w6c Jan 23, 2026
8357d05
Fix: Responses API logging error for StopIteration
Sameerlite Jan 23, 2026
a4bf14f
Fix: test_nova_invoke_streaming_chunk_parsing
Sameerlite Jan 23, 2026
fe5fac1
Remove f string
Sameerlite Jan 23, 2026
a240eb7
Merge pull request #19649 from BerriAI/litellm_fix_responses_api_logg…
Sameerlite Jan 23, 2026
23f7d4f
Merge pull request #19645 from BerriAI/litellm_gigachat_big_fix
Sameerlite Jan 23, 2026
9894721
Merge pull request #19548 from BerriAI/litellm_staging_01_22_2026
Sameerlite Jan 23, 2026
ca8c2c3
fix #19620: SSO user roles are not updated for existing users (#19621)
xqe2011 Jan 23, 2026
2d4c0f4
ci cd fixes - linting security
yuneng-jiang Jan 23, 2026
06b7820
resetting poetry and requirements
yuneng-jiang Jan 23, 2026
a0b2832
fixing security checks
yuneng-jiang Jan 23, 2026
19141e1
docs fix
ishaan-jaff Jan 23, 2026
a289118
fixing config
yuneng-jiang Jan 23, 2026
89bf7e5
skipping flaky tests
yuneng-jiang Jan 23, 2026
647a689
skipping non root tests entirely
yuneng-jiang Jan 23, 2026
5cacf56
security scan
yuneng-jiang Jan 23, 2026
8b5b343
attempt fix flaky tests
yuneng-jiang Jan 23, 2026
fbe5ae9
fixing flaky tests
yuneng-jiang Jan 23, 2026
28bc83e
Merge pull request #19662 from BerriAI/litellm_yj_ci_01
yuneng-jiang Jan 23, 2026
fc19085
[Feat] Guardrail Policy Management - Allow using UI to manage guardra…
ishaan-jaff Jan 23, 2026
6621c7b
docs fix
ishaan-jaff Jan 23, 2026
744d15e
remove imports from functions
mubashir1osmani Jan 23, 2026
9e02a38
add schema.prisma
ishaan-jaff Jan 23, 2026
c3b278e
add migrtion
ishaan-jaff Jan 23, 2026
b4dd0e4
fix schema.prisma
ishaan-jaff Jan 23, 2026
33a216d
remove imports from functions
mubashir1osmani Jan 23, 2026
0993dca
fix lint
mubashir1osmani Jan 23, 2026
c945677
BUMP pyproject
ishaan-jaff Jan 23, 2026
c41963c
fix: add openinference span kinds to arize phoenix
mubashir1osmani Jan 23, 2026
37b7dff
add spend-queue-troubleshooting docs (#19659)
milan-berri Jan 23, 2026
5b341ee
fix linting
ishaan-jaff Jan 23, 2026
7e6fc6a
New add fallbacks modal
yuneng-jiang Jan 23, 2026
3ba9b13
adding tests
yuneng-jiang Jan 23, 2026
22a268c
Merge pull request #19673 from BerriAI/litellm_ui_router_fallbacks_02
yuneng-jiang Jan 23, 2026
56883ad
Add Langfuse mock mode for testing without API calls (#19676)
AlexsanderHamir Jan 23, 2026
5c61586
Add GCS mock mode for testing without API calls (#19683)
AlexsanderHamir Jan 24, 2026
9850dbe
Adding router settings to create team and key
yuneng-jiang Jan 24, 2026
804567d
Merge remote-tracking branch 'origin' into litellm_key_team_create_ro…
yuneng-jiang Jan 24, 2026
ee1fd1c
fixing build
yuneng-jiang Jan 24, 2026
f9bdc20
fixing tests
yuneng-jiang Jan 24, 2026
0133d50
perf: Optimize strip_trailing_slash with O(1) index check (#19679)
ryan-crabbe Jan 24, 2026
de98025
Fixing tests
yuneng-jiang Jan 24, 2026
54f9ad3
perf: Optimize use_custom_pricing_for_model with set intersection (#1…
ryan-crabbe Jan 24, 2026
6e930c9
perf: skip pattern_router.route() for non-wildcard models (#19664)
ryan-crabbe Jan 24, 2026
b5dfb57
Merge pull request #19686 from BerriAI/litellm_key_team_create_routin…
yuneng-jiang Jan 24, 2026
d67d12f
perf: Add LRU caching to get_model_info for faster cost lookups (#19606)
ryan-crabbe Jan 24, 2026
26a6b86
Merge pull request #19265 from naaa760/fix/guar-patt-edi
yuneng-jiang Jan 24, 2026
46ef001
UI: new build
ishaan-jaff Jan 24, 2026
a34664d
redirect to login on expired jwt
yuneng-jiang Jan 24, 2026
4ed5aa5
Merge pull request #19687 from BerriAI/litellm_ui_refresh_mcp
yuneng-jiang Jan 24, 2026
a870722
[Feat] UI + Backend - Allow adding policies on Keys/Teams + Viewing …
ishaan-jaff Jan 24, 2026
f4ba5b9
docs: add litellm-enterprise requirement for managed files (#19689)
Harshit28j Jan 24, 2026
31a8d76
Update Gemini 2.0 Flash deprecation dates to March 31, 2026 (#19592)
Chesars Jan 24, 2026
1dbb6e0
fixing build
yuneng-jiang Jan 24, 2026
e181f2d
Merge pull request #19694 from BerriAI/litellm_ci_fix_yj_02
yuneng-jiang Jan 24, 2026
8667614
Fixing failing tests
yuneng-jiang Jan 24, 2026
e1bb4ae
deactivating non root tests
yuneng-jiang Jan 24, 2026
63166c3
fixing arize tests
yuneng-jiang Jan 24, 2026
00ec939
cache tests serial
yuneng-jiang Jan 24, 2026
acd8f21
fixing circleci config
yuneng-jiang Jan 24, 2026
cec3670
Merge pull request #19695 from BerriAI/litellm_ci_fix_yj_03
yuneng-jiang Jan 24, 2026
1c97315
fixing circleci config
yuneng-jiang Jan 24, 2026
09c7d67
Merge pull request #19701 from BerriAI/litellm_ci_fix_yj_03
yuneng-jiang Jan 24, 2026
0bdb68d
Update OSS Adopters section with new table format
ishaan-jaff Jan 24, 2026
b44ac6c
Fixing ruff check
yuneng-jiang Jan 24, 2026
f88a32d
Merge pull request #19622 from BerriAI/litellm_ui_model_backend
yuneng-jiang Jan 24, 2026
5e395db
Merge pull request #19604 from BerriAI/litellm_team_update_org
yuneng-jiang Jan 24, 2026
ed1b952
Merge pull request #19601 from BerriAI/litellm_ui_update_org_model
yuneng-jiang Jan 24, 2026
006b810
bump: version 1.81.2 → 1.81.3
ishaan-jaff Jan 24, 2026
17aec96
chore: update Next.js build artifacts (2026-01-24 17:18 UTC, node v22…
yuneng-jiang Jan 24, 2026
387cb8f
Merge pull request #19703 from BerriAI/yj_ui_build_jan24
yuneng-jiang Jan 24, 2026
489d587
CI/CD fixes - split local testing
ishaan-jaff Jan 24, 2026
1a7274a
fix: _apply_search_filter_to_models mypy linting
ishaan-jaff Jan 24, 2026
6587cd2
test_partner_models_httpx_streaming
ishaan-jaff Jan 24, 2026
6710abd
test_web_search
ishaan-jaff Jan 24, 2026
9cdd7a8
Fix: log duplication when json_logs is enabled (#19705)
AlexsanderHamir Jan 24, 2026
bd38374
fix: FLAKY tests
ishaan-jaff Jan 24, 2026
a7e2646
fix unstable tests
ishaan-jaff Jan 24, 2026
a081dc2
docs fix
ishaan-jaff Jan 24, 2026
bbeb007
docs fix
ishaan-jaff Jan 24, 2026
28a9003
docs fix
ishaan-jaff Jan 24, 2026
6c6ed0d
docs fix
ishaan-jaff Jan 24, 2026
241c0c6
docs fix
ishaan-jaff Jan 24, 2026
31a4cb6
test_get_default_unvicorn_init_args
ishaan-jaff Jan 24, 2026
a62ccd5
fix flaky tests
ishaan-jaff Jan 24, 2026
489c986
test_hanging_request_azure
ishaan-jaff Jan 24, 2026
e4e76a4
test_team_update_sc_2
ishaan-jaff Jan 24, 2026
df3c54e
BUMP extras
ishaan-jaff Jan 24, 2026
d8e0c43
test fixes
ishaan-jaff Jan 24, 2026
f2fd54f
test fixes
ishaan-jaff Jan 24, 2026
9f99e82
test_retrieve_container_basic
ishaan-jaff Jan 24, 2026
47810f1
Model and Team filtering
yuneng-jiang Jan 24, 2026
99e9462
Merge pull request #19713 from BerriAI/litellm_model_search_id_team
yuneng-jiang Jan 24, 2026
53d3868
TestBedrockInvokeToolSearch
ishaan-jaff Jan 24, 2026
05fdd09
fix(presidio): resolve runtime error by handling asyncio loops in bac…
Harshit28j Jan 24, 2026
937ccf1
UI Keys Teams Router Settings docs
yuneng-jiang Jan 25, 2026
8094aff
Merge pull request #19715 from BerriAI/key_teams_fallback_docs
yuneng-jiang Jan 25, 2026
3c94458
chore: update Next.js build artifacts (2026-01-25 00:27 UTC, node v22…
yuneng-jiang Jan 25, 2026
06f7a7e
Merge pull request #19716 from BerriAI/ui_build_yj_0124_2
yuneng-jiang Jan 25, 2026
73dd1bd
test_stream_transformation_error_sync
ishaan-jaff Jan 25, 2026
f148207
fix patch reliability mock tests
ishaan-jaff Jan 25, 2026
e41b9c2
fix MCP tests
ishaan-jaff Jan 25, 2026
4c4d4f6
Resolved merge conflict in proxy_config.yaml, changes from main into …
Harshit28j Jan 25, 2026
5426b3c
fix: server rooth path (#19790)
Harshit28j Jan 26, 2026
51d744c
feat: tpm-rpm limit in prometheus metrics (#19725)
Harshit28j Jan 26, 2026
4364239
fix(proxy): support slashes in google generateContent model names (#1…
jayy-77 Jan 26, 2026
0003e64
fix(vertex_ai): support model names with slashes in passthrough URLs …
michelligabriele Jan 28, 2026
4d4acbe
[Fix] VertexAI Pass through - fix regression that caused vertex ai pa…
ishaan-jaff Jan 29, 2026
c0fb179
[Feat] - Search API add /list endpoint to list what search tools exis…
ishaan-jaff Jan 29, 2026
461fff1
perf(prometheus): parallelize budget metrics, fix caching bug, reduce…
AlexsanderHamir Feb 6, 2026
3a10de7
fix: revert httpx client caching that caused closed client errors
michelligabriele Jan 29, 2026
fac094d
Revert "Merge pull request #18790 from BerriAI/litellm_key_team_routi…
ishaan-jaff Feb 1, 2026
61ed8f9
fix MYPY lint
ishaan-jaff Feb 7, 2026
ab4d72d
Merge v1.81.3-stable into feature/upgrade-to-v1.81.3-stable
shriharsha98 Feb 11, 2026
2d17d4e
fixed build errors after merge
shriharsha98 Feb 12, 2026
374913f
least busy debug logs
shriharsha98 Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
208 changes: 180 additions & 28 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ commands:
pip install "pytest-asyncio==0.21.1"
pip install "respx==0.22.0"
pip install "hypercorn==0.17.3"
pip install "pydantic==2.10.2"
pip install "mcp==1.10.1"
pip install "pydantic==2.11.0"
pip install "mcp==1.25.0"
pip install "requests-mock>=1.12.1"
pip install "responses==0.25.7"
pip install "pytest-xdist==3.6.1"
Expand Down Expand Up @@ -112,14 +112,14 @@ jobs:
python -m mypy .
cd ..
no_output_timeout: 10m
local_testing:
local_testing_part1:
docker:
- image: cimg/python:3.12
auth:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
working_directory: ~/project

parallelism: 4
steps:
- checkout
- setup_google_dns
Expand Down Expand Up @@ -205,29 +205,169 @@ jobs:

# Run pytest and generate JUnit XML report
- run:
name: Run tests
name: Run tests (Part 1 - A-M)
command: |
mkdir test-results

# Discover test files (A-M)
TEST_FILES=$(circleci tests glob "tests/local_testing/**/test_[a-mA-M]*.py")

echo "$TEST_FILES" | circleci tests run \
--split-by=timings \
--verbose \
--command="xargs python -m pytest \
-vv \
--cov=litellm \
--cov-report=xml \
--junitxml=test-results/junit.xml \
--durations=20 \
-k \"not test_python_38.py and not test_basic_python_version.py and not router and not assistants and not langfuse and not caching and not cache\" \
-n 4 \
--timeout=300 \
--timeout_method=thread"
no_output_timeout: 120m
- run:
name: Rename the coverage files
command: |
pwd
ls
# Add --timeout to kill hanging tests after 300s (5 min)
# Add -v to show test names as they run for debugging
# Add --tb=short for shorter tracebacks
python -m pytest -vv tests/local_testing --cov=litellm --cov-report=xml --junitxml=test-results/junit.xml --durations=20 -k "not test_python_38.py and not test_basic_python_version.py and not router and not assistants and not langfuse and not caching and not cache" -n 4 --timeout=300 --timeout_method=thread
mv coverage.xml local_testing_part1_coverage.xml
mv .coverage local_testing_part1_coverage

# Store test results
- store_test_results:
path: test-results
- persist_to_workspace:
root: .
paths:
- local_testing_part1_coverage.xml
- local_testing_part1_coverage
local_testing_part2:
docker:
- image: cimg/python:3.12
auth:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
working_directory: ~/project
parallelism: 4
steps:
- checkout
- setup_google_dns
- run:
name: Show git commit hash
command: |
echo "Git commit hash: $CIRCLE_SHA1"

- restore_cache:
keys:
- v1-dependencies-{{ checksum ".circleci/requirements.txt" }}
- run:
name: Install Dependencies
command: |
python -m pip install --upgrade pip
python -m pip install -r .circleci/requirements.txt
pip install "pytest==7.3.1"
pip install "pytest-retry==1.6.3"
pip install "pytest-asyncio==0.21.1"
pip install "pytest-cov==5.0.0"
pip install "mypy==1.18.2"
pip install "google-generativeai==0.3.2"
pip install "google-cloud-aiplatform==1.43.0"
pip install pyarrow
pip install "boto3==1.36.0"
pip install "aioboto3==13.4.0"
pip install langchain
pip install lunary==0.2.5
pip install "azure-identity==1.16.1"
pip install "langfuse==2.59.7"
pip install "logfire==0.29.0"
pip install numpydoc
pip install traceloop-sdk==0.21.1
pip install opentelemetry-api==1.25.0
pip install opentelemetry-sdk==1.25.0
pip install opentelemetry-exporter-otlp==1.25.0
pip install openai==1.100.1
pip install prisma==0.11.0
pip install "detect_secrets==1.5.0"
pip install "httpx==0.24.1"
pip install "respx==0.22.0"
pip install fastapi
pip install "gunicorn==21.2.0"
pip install "anyio==4.2.0"
pip install "aiodynamo==23.10.1"
pip install "asyncio==3.4.3"
pip install "apscheduler==3.10.4"
pip install "PyGithub==1.59.1"
pip install argon2-cffi
pip install "pytest-mock==3.12.0"
pip install python-multipart
pip install google-cloud-aiplatform
pip install prometheus-client==0.20.0
pip install "pydantic==2.10.2"
pip install "diskcache==5.6.1"
pip install "Pillow==10.3.0"
pip install "jsonschema==4.22.0"
pip install "pytest-xdist==3.6.1"
pip install "pytest-timeout==2.2.0"
pip install "websockets==13.1.0"
pip install semantic_router --no-deps
pip install aurelio_sdk --no-deps
pip uninstall posthog -y
- setup_litellm_enterprise_pip
- save_cache:
paths:
- ./venv
key: v1-dependencies-{{ checksum ".circleci/requirements.txt" }}
- run:
name: Run prisma ./docker/entrypoint.sh
command: |
set +e
chmod +x docker/entrypoint.sh
./docker/entrypoint.sh
set -e
- run:
name: Black Formatting
command: |
cd litellm
python -m pip install black
python -m black .
cd ..

# Run pytest and generate JUnit XML report
- run:
name: Run tests (Part 2 - N-Z)
command: |
mkdir test-results

# Discover test files (N-Z)
TEST_FILES=$(circleci tests glob "tests/local_testing/**/test_[n-zN-Z]*.py")

echo "$TEST_FILES" | circleci tests run \
--split-by=timings \
--verbose \
--command="xargs python -m pytest \
-vv \
--cov=litellm \
--cov-report=xml \
--junitxml=test-results/junit.xml \
--durations=20 \
-k \"not test_python_38.py and not test_basic_python_version.py and not router and not assistants and not langfuse and not caching and not cache\" \
-n 4 \
--timeout=300 \
--timeout_method=thread"
no_output_timeout: 120m
- run:
name: Rename the coverage files
command: |
mv coverage.xml local_testing_coverage.xml
mv .coverage local_testing_coverage
mv coverage.xml local_testing_part2_coverage.xml
mv .coverage local_testing_part2_coverage

# Store test results
- store_test_results:
path: test-results
- persist_to_workspace:
root: .
paths:
- local_testing_coverage.xml
- local_testing_coverage
- local_testing_part2_coverage.xml
- local_testing_part2_coverage
langfuse_logging_unit_tests:
docker:
- image: cimg/python:3.11
Expand Down Expand Up @@ -499,7 +639,6 @@ jobs:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
working_directory: ~/project

steps:
- checkout
- setup_google_dns
Expand All @@ -513,6 +652,7 @@ jobs:
pip install "pytest-cov==5.0.0"
pip install "pytest-retry==1.6.3"
pip install "pytest-asyncio==0.21.1"
pip install "pytest-xdist==3.6.1"
pip install semantic_router --no-deps
pip install aurelio_sdk --no-deps
# Run pytest and generate JUnit XML report
Expand Down Expand Up @@ -1152,8 +1292,8 @@ jobs:
pip install "pytest-cov==5.0.0"
pip install "pytest-asyncio==0.21.1"
pip install "respx==0.22.0"
pip install "pydantic==2.10.2"
pip install "mcp==1.10.1"
pip install "pydantic==2.11.0"
pip install "mcp==1.25.0"
# Run pytest and generate JUnit XML report
- run:
name: Run tests
Expand Down Expand Up @@ -1556,8 +1696,8 @@ jobs:
pip install "pytest-asyncio==0.21.1"
pip install "respx==0.22.0"
pip install "hypercorn==0.17.3"
pip install "pydantic==2.10.2"
pip install "mcp==1.10.1"
pip install "pydantic==2.11.0"
pip install "mcp==1.25.0"
pip install "requests-mock>=1.12.1"
pip install "responses==0.25.7"
pip install "pytest-xdist==3.6.1"
Expand Down Expand Up @@ -1743,13 +1883,14 @@ jobs:
pip install "pytest-cov==5.0.0"
pip install "pytest-asyncio==0.21.1"
pip install "respx==0.22.0"
pip install "pytest-xdist==3.6.1"
# Run pytest and generate JUnit XML report
- run:
name: Run tests
command: |
pwd
ls
python -m pytest -vv tests/image_gen_tests --cov=litellm --cov-report=xml -x -v --junitxml=test-results/junit.xml --durations=5
python -m pytest -vv tests/image_gen_tests -n 4 --cov=litellm --cov-report=xml -x -v --junitxml=test-results/junit.xml --durations=5
no_output_timeout: 120m
- run:
name: Rename the coverage files
Expand Down Expand Up @@ -1792,14 +1933,15 @@ jobs:
pip install "mlflow==2.17.2"
pip install "anthropic==0.52.0"
pip install "blockbuster==1.5.24"
pip install "pytest-xdist==3.6.1"
# Run pytest and generate JUnit XML report
- setup_litellm_enterprise_pip
- run:
name: Run tests
command: |
pwd
ls
python -m pytest -vv tests/logging_callback_tests --cov=litellm --cov-report=xml -s -v --junitxml=test-results/junit.xml --durations=5
python -m pytest -vv tests/logging_callback_tests --cov=litellm -n 4 --cov-report=xml -s -v --junitxml=test-results/junit.xml --durations=5
no_output_timeout: 120m
- run:
name: Rename the coverage files
Expand Down Expand Up @@ -1915,7 +2057,7 @@ jobs:
pip install "pytest-asyncio==0.21.1"
pip install "pytest-cov==5.0.0"
pip install "tomli==2.2.1"
pip install "mcp==1.10.1"
pip install "mcp==1.25.0"
- run:
name: Run tests
command: |
Expand Down Expand Up @@ -2192,6 +2334,8 @@ jobs:
pip install "asyncio==3.4.3"
pip install "PyGithub==1.59.1"
pip install "openai==1.100.1"
pip install "litellm[proxy]"
pip install "pytest-xdist==3.6.1"
- run:
name: Install dockerize
command: |
Expand Down Expand Up @@ -2268,7 +2412,7 @@ jobs:
command: |
pwd
ls
python -m pytest -s -vv tests/*.py -x --junitxml=test-results/junit.xml --durations=5 --ignore=tests/otel_tests --ignore=tests/spend_tracking_tests --ignore=tests/pass_through_tests --ignore=tests/proxy_admin_ui_tests --ignore=tests/load_tests --ignore=tests/llm_translation --ignore=tests/llm_responses_api_testing --ignore=tests/mcp_tests --ignore=tests/guardrails_tests --ignore=tests/image_gen_tests --ignore=tests/pass_through_unit_tests
python -m pytest -s -vv tests/*.py -x --junitxml=test-results/junit.xml -n 4 --durations=5 --ignore=tests/otel_tests --ignore=tests/spend_tracking_tests --ignore=tests/pass_through_tests --ignore=tests/proxy_admin_ui_tests --ignore=tests/load_tests --ignore=tests/llm_translation --ignore=tests/llm_responses_api_testing --ignore=tests/mcp_tests --ignore=tests/guardrails_tests --ignore=tests/image_gen_tests --ignore=tests/pass_through_unit_tests
no_output_timeout: 120m

# Store test results
Expand Down Expand Up @@ -3284,7 +3428,7 @@ jobs:
python -m venv venv
. venv/bin/activate
pip install coverage
coverage combine llm_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage logging_coverage audio_coverage litellm_router_coverage local_testing_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage
coverage combine llm_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage logging_coverage audio_coverage litellm_router_coverage local_testing_part1_coverage local_testing_part2_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage
coverage xml
- codecov/upload:
file: ./coverage.xml
Expand Down Expand Up @@ -3739,7 +3883,13 @@ workflows:
only:
- main
- /litellm_.*/
- local_testing:
- local_testing_part1:
filters:
branches:
only:
- main
- /litellm_.*/
- local_testing_part2:
filters:
branches:
only:
Expand Down Expand Up @@ -4044,7 +4194,8 @@ workflows:
- litellm_proxy_unit_testing_part2
- litellm_security_tests
- langfuse_logging_unit_tests
- local_testing
- local_testing_part1
- local_testing_part2
- litellm_assistants_api_testing
- auth_ui_unit_tests
- db_migration_disable_update_check:
Expand Down Expand Up @@ -4087,7 +4238,8 @@ workflows:
- publish_to_pypi:
requires:
- mypy_linting
- local_testing
- local_testing_part1
- local_testing_part2
- build_and_test
- e2e_openai_endpoints
- test_bad_database_url
Expand Down
4 changes: 2 additions & 2 deletions .circleci/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ redis==5.2.1
redisvl==0.4.1
anthropic
orjson==3.10.12 # fast /embedding responses
pydantic==2.10.2
pydantic==2.11.0
google-cloud-aiplatform==1.43.0
google-cloud-iam==2.19.1
fastapi-sso==0.16.0
uvloop==0.21.0
mcp==1.10.1 # for MCP server
mcp==1.25.0 # for MCP server
semantic_router==0.1.10 # for auto-routing with litellm
fastuuid==0.12.0
responses==0.25.7 # for proxy client tests
4 changes: 2 additions & 2 deletions .github/workflows/create_daily_staging_branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Create Daily Staging Branch

on:
schedule:
- cron: '0 0 * * *' # Runs daily at midnight UTC
- cron: '0 0,12 * * *' # Runs every 12 hours at midnight and noon UTC
workflow_dispatch: # Allow manual trigger

jobs:
Expand All @@ -24,7 +24,7 @@ jobs:
git config user.email "github-actions[bot]@users.noreply.github.com"

# Generate branch name with MM_DD_YYYY format
BRANCH_NAME="litellm_staging_$(date +'%m_%d_%Y')"
BRANCH_NAME="litellm_oss_staging_$(date +'%m_%d_%Y')"
echo "Creating branch: $BRANCH_NAME"

# Fetch all branches
Expand Down
Loading
Loading