Commit graph

31675 commits

Author SHA1 Message Date
yuneng-jiang
3bececfa7a
Merge pull request #20539 from BerriAI/litellm_usage_failed_req
[Refactor] UI - Usage Page: Spend By Provider
2026-02-05 16:39:55 -08:00
yuneng-jiang
f64f949715 Spend by provider refactor 2026-02-05 16:22:07 -08:00
Shivam Rawat
93cf1ef517
Merge pull request #20535 from BerriAI/litellm_move_anthropic_test_script
[Chore] Move anthropic input/output test to right folder
2026-02-05 16:12:08 -08:00
yuneng-jiang
523a36ed53
Merge pull request #20530 from BerriAI/litellm_ui_team_soft_budget
[Feature] Add soft_budget to Team Table + Create/Update Endpoints
2026-02-05 15:52:17 -08:00
shivam
3dc70c3398 moved the test anthropic file 2026-02-05 15:44:24 -08:00
Ishaan Jaffer
bff5f8d7b0 doc fix 2026-02-05 15:31:41 -08:00
yuneng-jiang
45c6382667 cz bump + builds 2026-02-05 14:47:11 -08:00
yuneng-jiang
8b0d0b2610 bump: version 0.4.30 → 0.4.31 2026-02-05 14:46:38 -08:00
yuneng-jiang
a17efa1c8e Add soft_budget to team table and create update endpoints 2026-02-05 14:43:48 -08:00
Ishaan Jaff
887a907e42
[Fix] Guardrails API - Ensure OpenAI Moderations Guard works with OpenAI Embeddings (#20523)
* init OpenAIEmbeddingsHandler

* init apply_guardrail

* use apply guardrails for OpenAI moderations

* test_embeddings_handler_string_input

* test_openai_moderation_guardrail_apply_guardrail

* fix typing

* test_openai_moderation_responses_api_input_field

* test fixes
2026-02-05 14:40:15 -08:00
shin-bot-litellm
0649720f79
Fix test isolation for test_log_langfuse_v2_handles_null_usage_values (#20475)
Create fresh mock objects within the test instead of reusing mocks
from setUp that have side_effect configured. The setUp's side_effect
on mock_langfuse_client.trace can interfere with return_value settings
when tests try to reset and reconfigure mocks.

Using dedicated mock objects for this test avoids state pollution
from setUp's side_effect configuration and makes the test more
deterministic in parallel execution environments.
2026-02-05 12:57:41 -08:00
shin-bot-litellm
1d92968e17
Fix test isolation for test_watsonx_gpt_oss_prompt_transformation (#20474)
Set cached tokenizer config directly and mock both sync and async
tokenizer functions to avoid race conditions when running with
parallel test execution (-n 16).

The issue was that parallel tests could populate the
litellm.known_tokenizer_config cache between clearing it and
when the code checked it. This caused the sync code path to be
used instead of the async path, bypassing the mocked async functions.

Fix:
1. Set cache directly instead of clearing it
2. Also mock sync versions _get_tokenizer_config and _get_chat_template_file

This ensures the test is deterministic regardless of test execution order.
2026-02-05 12:57:20 -08:00
yuneng-jiang
b5956cb020
Merge pull request #20513 from BerriAI/litellm_ui_test_cov_01
[Infra] UI - Adding Unit Tests for Coverage
2026-02-05 12:19:03 -08:00
yuneng-jiang
b41876b5f5
Merge pull request #20452 from BerriAI/litellm_non_root_pkglk
[Fix] Non Root Dockerfile: Keep package-lock.json
2026-02-05 12:18:29 -08:00
yuneng-jiang
a04a2de6a1
Merge pull request #20472 from nina-hu/fix/timezone-daily-spend-filtering
fix(ui): adjust daily spend date filtering for user timezone
2026-02-05 12:12:44 -08:00
yuneng-jiang
21d6025c01 adding test for converage 2026-02-05 12:02:12 -08:00
Ishaan Jaffer
ea35ab6d4e day 0 blog post 2026-02-05 11:47:36 -08:00
Peter Dave Hello
dbd4bb5cf4
Add Claude Opus 4.6 (#20508)
Add Claude Opus 4.6 entries for Anthropic, Bedrock Converse, and Vertex AI.

Align pricing and capability metadata with Anthropic docs, including
long-context rates, above-200k prompt-caching rates, prefill removal,
and tool-use system prompt token counts.

Register the Bedrock Converse model ID in constants and add targeted
tests to validate model map values and converse registration.
2026-02-05 11:33:44 -08:00
Ishaan Jaff
eae5fa195e
[Feat] add claude-opus-4-6 to model cost map (#20506)
* add claude-opus-4-6 to model cost map

* fix azure_ai

* new model
2026-02-05 10:59:56 -08:00
Ishaan Jaff
d2bd029fa4
[Fix] 404 Not Found on /api/event_logging/batch endpoint (#20504)
* fix typing

* add event_logging_batch

* TestEventLoggingBatchEndpoint
2026-02-05 10:58:08 -08:00
Krish Dholakia
f65eec8fa8
docs: Update CLI arguments documentation with all available options (#20437)
- Reorganized documentation into logical sections (Server Configuration,
  Server Backend Options, SSL/TLS Configuration, Model Configuration,
  Model Parameters, Database Configuration, Debugging, Testing & Health Checks)
- Added missing CLI arguments:
  - --iam_token_db_auth: RDS IAM token authentication for database connections
  - --run_gunicorn: Start proxy with gunicorn backend
  - --run_hypercorn: Start proxy with hypercorn backend (HTTP/2 support)
  - --ssl_keyfile_path, --ssl_certfile_path, --ciphers: SSL/TLS configuration
  - --keepalive_timeout: Uvicorn keepalive timeout setting
  - --max_requests_before_restart: Worker recycling for memory management
  - --use_prisma_db_push: Alternative database schema update method
  - --test_async, --num_requests: Async endpoint testing
  - --version/-v: Print version
  - --max_budget: Set budget limits for API calls
  - --headers, --add_key, --save: Model configuration options
  - --use_queue: Celery workers for async endpoints
  - --local: Local debugging flag
- Updated default value for --num_workers to reflect actual behavior
- Added environment variable documentation for applicable options

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-02-05 08:46:37 -08:00
Sameer Kankute
b74afec2be
Merge pull request #20398 from BerriAI/litellm_oss_staging_02_04_2026
Litellm oss staging 02 04 2026
2026-02-05 19:42:36 +05:30
Sameer Kankute
df590be7af Fix test_global_redaction_off_with_dynamic_params 2026-02-05 18:26:03 +05:30
Sameer Kankute
34e5bb29a5
Merge pull request #20338 from Lucky-Lodhi2004/ttl-prompt-caching-bedrock
fix #20326 - [Feature]: Support TTL(1h) field in prompt caching for Bedrock Claude 4.5 models
2026-02-05 16:52:12 +05:30
Sameer Kankute
fa733c252e
Merge branch 'litellm_oss_staging_02_04_2026' into ttl-prompt-caching-bedrock 2026-02-05 16:52:02 +05:30
Sameer Kankute
7e8be5f542
Merge branch 'main' into ttl-prompt-caching-bedrock 2026-02-05 16:50:54 +05:30
Sameer Kankute
a21b625a59
Merge pull request #20105 from qiniu/fix/vertex-gemini-streaming-content-filter
Fix Vertex AI Gemini streaming content_filter handling
2026-02-05 16:48:48 +05:30
Sameer Kankute
453d1bd5e1
Merge branch 'main' into litellm_oss_staging_02_04_2026 2026-02-05 12:19:03 +05:30
Sameer Kankute
075b1b7921
Merge pull request #20341 from natimofeev/bugfix/remove-user-messages-merging
bugfix: Disable merging of consecutive user messages for GigaChat provider
2026-02-05 12:18:09 +05:30
nina-hu
5904fa159b fix(ui): adjust daily spend date filtering for user timezone
The daily spend tables store dates in UTC, but the UI sends dates in the
user's local timezone. This causes a mismatch where records from the
user's evening (stored as the next UTC day) don't appear when filtering
by "today".

Changes:
- Add `_adjust_dates_for_timezone()` helper to expand date range based
  on timezone offset
- Add `timezone` query parameter to `/user/daily/activity` and
  `/user/daily/activity/aggregated` endpoints
- Frontend sends `timezone` using `Date.getTimezoneOffset()`

For users west of UTC (e.g., PST), end_date is extended by 1 day.
For users east of UTC (e.g., IST), start_date is extended by 1 day earlier.
This ensures all records within the user's local date range are captured.
2026-02-04 21:42:34 -08:00
Sameer Kankute
1017c3a0e4
Merge pull request #20464 from BerriAI/litellm_cicd_5_feb_2026
Litellm cicd 5 feb 2026
2026-02-05 11:03:35 +05:30
Sameer Kankute
0ce1bfe26a bump: version 1.81.7 → 1.81.8 2026-02-05 10:44:48 +05:30
Sameer Kankute
5422a5962e Fix test_route_a2a_model_bypasses_router 2026-02-05 09:47:05 +05:30
Sameer Kankute
5e8c7f0de1 Fix mypy issues 2026-02-05 09:44:05 +05:30
Sameer Kankute
0f177a3b01 Fix: test_team_update_sc_2 2026-02-05 09:40:21 +05:30
yuneng-jiang
02ed25c886
Merge pull request #20461 from BerriAI/ui_build_fix_4
[Infra] Fixing UI Build
2026-02-04 20:05:50 -08:00
yuneng-jiang
b982542c6c fixing build 2026-02-04 20:05:10 -08:00
Sameer Kankute
137413f8c1
Merge pull request #20460 from BerriAI/litellm_proxy_extras_bump_version_5_feb
chore: update poetry.lock for litellm-proxy-extras 0.4.30
2026-02-05 09:28:10 +05:30
Sameer Kankute
64aeb18a10 chore: update poetry.lock for litellm-proxy-extras 0.4.30
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 09:25:52 +05:30
Sameer Kankute
cda4b72e2d
Merge pull request #20458 from BerriAI/litellm_proxy_extras_bump_version_5_feb
bump: litellm-proxy-extras 0.4.29 → 0.4.30
2026-02-05 09:22:29 +05:30
Sameer Kankute
3c12dda856 bump: litellm-proxy-extras 0.4.29 → 0.4.30
- Add allow_team_guardrail_config field to TeamTable and DeletedTeamTable
- Add migration 20260205091235_allow_team_guardrail_config
2026-02-05 09:21:20 +05:30
Cesar Garcia
e0802783f3
feat(openrouter): add Qwen3-235B models (#20455)
Add OpenRouter Qwen3-235B-A22B models to the pricing configuration:
- openrouter/qwen/qwen3-235b-a22b-2507
- openrouter/qwen/qwen3-235b-a22b-thinking-2507

Closes request from PR #13019 comments.
2026-02-04 19:35:22 -08:00
jquinter
47b546f69a
fix(lint): remove unused Any/cast imports in github_copilot transformation (#20431)
The cast(Any, message) pattern was used to suppress typed-dict mutation
warnings, but the parameter has no type annotation so it's unnecessary.
Direct assignment works and eliminates the F401 unused-import lint error.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 18:41:01 -08:00
michelligabriele
8e1201ca3d
docs: improve Okta SSO setup guide with step-by-step instructions (#20353)
* docs: improve Okta SSO setup guide with step-by-step instructions

- Add clear steps for creating OIDC app in Okta Admin Console
- Document critical Authorization Server Access Policy configuration
- Add troubleshooting table for common errors
- Link to official Okta documentation for detailed UI instructions
- Fix incorrect OAuth endpoint examples (was using Auth0 URLs)

* docs: add Okta console screenshots for SSO setup guide

- Add screenshot showing Sign-in redirect URI configuration
- Add screenshot showing Client Credentials location
- Add screenshot showing Authorization Server Access Policy setup

* docs: replace Okta screenshots with annotated Scribe versions

- Replace screenshots with Scribe-annotated versions highlighting key areas
- Add step-by-step screenshots for Authorization Server Access Policy setup
- Remove old unannotated screenshots
2026-02-04 18:39:51 -08:00
Ishaan Jaff
15b717c300
[Feat] UI - Add support for MCP Semantic Filtering on UI (#20454)
* feat: remove_callbacks_by_type

* feat: _init_semantic_filter_settings_in_db

* add MCP semantic filtering settings endpoints

* v0 - semantic filter UI

* fix endpint _init_semantic_filter_settings_in_db

* refactor ui

* add LITELLM_UI_ALLOW_HEADERS

* ui fix

* ui fix
2026-02-04 18:38:53 -08:00
yuneng-jiang
7831e30666 keep package-lock.json in non-root 2026-02-04 17:58:22 -08:00
Ishaan Jaff
2a3843aa57
[Fix] inconsistent response format in anthropic.messages.acreate() when using non anthropic providers (#20442)
* _translate_openai_content_to_anthropic

* test_response_format_consistency

* test fixes unit tests

* test fix

* fix: use dict access for anthropic content blocks in tests (#20447)

The translate_openai_response_to_anthropic method returns dicts, not objects.
Changed .type/.text/.thinking attribute access to dict ['key'] access.

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@berri.ai>
2026-02-04 16:37:40 -08:00
Ishaan Jaff
6a73e5bd37
Revert "fix(a2a): use text/event-stream SSE format for message/stream endpoin…" (#20446)
This reverts commit 0209b214ac.
2026-02-04 16:08:22 -08:00
shin-bot-litellm
0209b214ac
fix(a2a): use text/event-stream SSE format for message/stream endpoint (#20365)
* fix(a2a): use text/event-stream SSE format for message/stream endpoint

The A2A gateway's streaming response was using application/x-ndjson
Content-Type and raw NDJSON body format. The A2A protocol spec requires
text/event-stream with SSE framing (data: ...\n\n).

The official a2a-sdk client validates the Content-Type header and raises
SSEError when it doesn't contain text/event-stream.

Changes:
- Changed media_type from application/x-ndjson to text/event-stream
- Updated response body to use SSE framing (data: prefix + \n\n suffix)
- Added tests validating Content-Type and SSE body format

Fixes #20278

* Potential fix for code scanning alert no. 4045: Information exposure through an exception

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* test(a2a): add manual SSE format validation script

Adds a manual test script that:
1. Starts a real A2A agent on port 10001
2. Starts LiteLLM proxy with the agent registered
3. Makes a streaming request to the proxy's A2A gateway
4. Validates Content-Type header is text/event-stream
5. Validates body uses SSE framing (data: ...\n\n)

Run: python tests/a2a_manual/test_a2a_sse_manual.py

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-02-04 16:07:17 -08:00
Shivam Rawat
795ba8efe3
Merge pull request #20443 from BerriAI/docs_langfuse_multi_project_cred_support
langfuse doc update
2026-02-04 15:55:04 -08:00