Commit graph

39980 commits

Author SHA1 Message Date
Ryan Crabbe
773871025e Remove required asterisks from v3 login form fields
Hide the red asterisk indicators on Username and Password fields
while keeping the validation rules intact.
2026-03-21 12:32:17 -07:00
ryan-crabbe
b21948fdc3
Merge pull request #24315 from BerriAI/litellm_copy_user_id_on_click
polish: add click-to-copy icon on User ID in internal users table
2026-03-21 12:06:36 -07:00
ryan-crabbe
41b1c44289
Merge pull request #24305 from BerriAI/litellm_fix_secret_redaction_global
fix: global secret redaction via root logger + key-name-based pattern matching
2026-03-21 12:05:45 -07:00
Sameer Kankute
ad8c321ea8 fix(proxy): use union-attr mypy ignores for deferred logging hooks
Made-with: Cursor
2026-03-22 00:35:35 +05:30
Sameer Kankute
4f1e484a9b Merge branch 'main' into litellm_dev_sameer_16_march_week
Resolve conflicts in common_request_processing.py (keep main streaming,
post_call_success_hook try/finally, deferred logging; retain skip_pre_call_logic)
and utils.py (defer + internal-call skip + sync success callbacks for all calls).

Tighten _has_post_call_guardrails for event_hook=None; align deferred
guardrail test. Sync model_prices_and_context_window_backup.json.

Pyright: narrow ignores for passthrough StreamingResponse and post_call hook.
Made-with: Cursor
2026-03-22 00:29:38 +05:30
Ryan Crabbe
031b3d8198 fix: add key-name-based secret redaction to catch secrets in config dict dumps
Add key-name-based regex patterns (master_key, database_url, auth_token,
etc.) to SecretRedactionFilter so secrets embedded in dict/config dumps
are redacted by key name, regardless of value format.

Fixes a leak where general_settings containing master_key and
database_url was logged in full because the secret values didn't match
any existing value-format regex pattern.
2026-03-21 11:44:49 -07:00
Krrish Dholakia
0091d048dc fix: make reasoning summary opt-in, fix missing injection path, narrow test exceptions
Address Greptile review feedback:
1. Replace opt-out `disable_default_reasoning_summary` with existing opt-in
   `reasoning_auto_summary` flag — avoids backwards-incompatible change where
   all users routing thinking-enabled requests would silently get a changed
   reasoning_effort shape (string -> dict) on upgrade.
2. Add default summary injection to `_translate_thinking_to_openai` — this path
   was the only one missing it, causing inconsistent behavior for
   litellm.completion() callers using the Anthropic adapter.
3. Narrow `except Exception` to `except (ValueError, TypeError, AttributeError)`
   in tests to avoid masking genuine failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 11:36:26 -07:00
Krrish Dholakia
509d2e9ac3 Fix PR review issues: gpt-4-0314 prompt caching, case-insensitive data URL check, test I/O mocking
- Remove incorrect supports_prompt_caching from gpt-4-0314 (predates the feature)
- Make data-URL detection case-insensitive in Gemini tool call result conversion
- Mock show_banner/generate_feedback_box in max_budget tests to prevent real I/O

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 11:30:29 -07:00
Josh
d39bcce4be feat(prometheus): implement org budget gauge metrics and setters 2026-03-21 14:29:00 -04:00
Josh
2045feda2e feat(prometheus): add org budget metric definitions and label names 2026-03-21 14:12:00 -04:00
Krish Dholakia
a5b7e49713
Merge branch 'main' into litellm_oss_staging_03_17_2026 2026-03-21 10:40:48 -07:00
Krish Dholakia
c350d08d66
Merge branch 'main' into litellm_oss_staging_03_05_2026 2026-03-21 10:31:50 -07:00
Krish Dholakia
b64b0d4b9b
Merge pull request #24222 from BerriAI/docs/prompt-caching-gemini-support
docs: add Gemini/Vertex AI prompt caching support to docs
2026-03-21 10:28:49 -07:00
Krish Dholakia
c8a7d5d237
Merge branch 'main' into docs/prompt-caching-gemini-support 2026-03-21 10:28:39 -07:00
Krish Dholakia
ea02c7cc15
Merge pull request #24174 from BerriAI/litellm_oss_staging_03_19_2026
Litellm oss staging 03 19 2026
2026-03-21 10:27:50 -07:00
Sameer Kankute
49abf98a27
Merge branch 'main' into litellm_oss_staging_03_17_2026 2026-03-21 21:16:49 +05:30
Sameer Kankute
a427807796
Merge branch 'main' into litellm_dev_sameer_16_march_week 2026-03-21 21:16:07 +05:30
ryan-crabbe
c68a8aa356
Merge pull request #24273 from BerriAI/litellm_fix-create-key-tags-dropdown
Litellm fix create key tags dropdown
2026-03-21 08:45:29 -07:00
Sameer Kankute
00ee80e660
Merge branch 'main' into litellm_oss_staging_03_05_2026 2026-03-21 21:14:38 +05:30
Sameer Kankute
8d3445fb43
Merge pull request #24297 from BerriAI/revert-23842-fix/deepgram-cost-per-second
Revert "fix(transcription): fix cost_per_second calculation for audio transcription models"
2026-03-21 20:45:12 +05:30
Sameer Kankute
6830b63269
Revert "fix(whisper): correct output_cost_per_second pricing and cost calcula…"
This reverts commit 00dd984415.
2026-03-21 20:44:52 +05:30
Sameer Kankute
676a79e9f7 bump: litellm-enterprise 0.1.34 → 0.1.35 2026-03-21 20:42:34 +05:30
Sameer Kankute
5b5c998dbd
Merge branch 'main' into litellm_oss_staging_03_19_2026 2026-03-21 20:31:08 +05:30
Sameer Kankute
c1e90ed300 Fix mypy errors 2026-03-21 20:29:14 +05:30
Imgyu Kim
64eb695422 style: apply black formatting 2026-03-21 18:32:59 +09:00
Imgyu Kim
302e33ba92 fix: preserve prefix only for native OpenRouter models (single-segment)
Native models like openrouter/auto, openrouter/free have no extra '/'
after the prefix. Provider-routed models like openrouter/anthropic/claude
have extra segments and need prefix stripping.

Condition: only early-return when model after 'openrouter/' has no '/'.
2026-03-21 18:24:59 +09:00
Imgyu Kim
ad07d7faad fix: strip 'openrouter/' prefix from model names (#24234)
Remove early return in get_llm_provider_logic.py that prevented
the 'openrouter/' prefix from being stripped. The early return was
intended for 'native OpenRouter models' like 'openrouter/free',
but no such models exist in the model registry — all OpenRouter
models are multi-segment (e.g. 'openrouter/anthropic/claude-3.5-sonnet')
and need the prefix stripped before being sent to the OpenRouter API.

This regression was introduced in v1.82.3 and caused 400 Bad Request
errors for all OpenRouter models.
2026-03-21 18:06:44 +09:00
Ryan Crabbe
e1d2ab3a87 test(ui): add unit test for tags dropdown populated via useTags hook
Made-with: Cursor
2026-03-20 22:58:02 -07:00
Ryan Crabbe
8766004c36 fix(ui): use useTags hook so tag dropdown populates on key creation
The create key form used getPredefinedTags() which only extracted tags
from existing keys' metadata. If no keys had tags, the dropdown was
empty. Switch to the existing useTags() React Query hook that fetches
from /tag/list, matching the edit key form behavior.
2026-03-20 22:58:02 -07:00
Chesars
871df9f40b fix: rename test methods to remove stale _in_backup suffix and test actual helper 2026-03-20 23:32:45 -03:00
Cesar Garcia
a3095f47fd
Merge pull request #24076 from Chesars/feat/cache-control-tool-config-21969
feat(bedrock): support cache_control_injection_points for tool_config location
2026-03-20 23:29:53 -03:00
Cesar Garcia
a4f091c025
Merge pull request #24073 from Chesars/feat/gemini-context-circulation
feat(gemini): support context circulation for server-side tool combination
2026-03-20 23:29:30 -03:00
Chesars
89a5a44ee0 fix: rename _load_backup_json call sites to _load_model_cost_json 2026-03-20 23:24:41 -03:00
Chesars
29ab11a9c2 fix(types): add CacheControlToolConfigInjectionPoint to union type 2026-03-20 23:23:28 -03:00
Chesars
7290bcdf1c fix: separate .gitignore entries (missing newline) 2026-03-20 23:15:18 -03:00
Cesar Garcia
3a56bb62bf
Update tests/test_litellm/test_deepseek_model_metadata.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-20 23:14:03 -03:00
Chesars
620fd34e65 Merge branch 'main' of https://github.com/BerriAI/litellm into refactor/remove-backup-file-dry-principle
# Conflicts:
#	litellm/model_prices_and_context_window_backup.json
2026-03-20 23:06:24 -03:00
Chesars
f4752413fe chore: gitignore litellm/model_prices_and_context_window.json
Prevent accidental commits of the CI-generated copy.
2026-03-20 22:58:55 -03:00
Chesars
fa1b1de99e fix: resolve merge conflicts with main
- Update load_local_model_cost_map to use project root fallback for dev
- Keep main's validation, aliases, and source info tracking
- Remove backup JSON (purpose of this PR)
2026-03-20 22:48:11 -03:00
Chesars
2c6cd45318 chore: remove check_files_match pre-commit hook
The hook kept the backup JSON in sync with the root file — no longer
needed now that the backup file has been removed.
2026-03-20 22:36:07 -03:00
Cesar Garcia
ead607a42b
Merge pull request #24072 from Chesars/fix/strict-additional-properties-20997-clean
fix(adapter): add additionalProperties: false for OpenAI strict mode in Anthropic adapter
2026-03-20 22:19:39 -03:00
Cesar Garcia
4e4dd88e7e
Update litellm/litellm_core_utils/get_model_cost_map.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-20 22:18:16 -03:00
ryan-crabbe
4e32db2f11
Merge pull request #23167 from BerriAI/litellm_audit_log_s3_export
[Feature] Add Audit Log Export to External Callbacks
2026-03-20 17:37:12 -07:00
Ryan Crabbe
ae21527aea fix black formatting
Made-with: Cursor
2026-03-20 17:35:35 -07:00
yuneng-jiang
d8e4fc4dd0
Merge pull request #24260 from BerriAI/litellm_yj_march_19_2026
[Infra] Merge internal dev branch with main
2026-03-20 17:35:19 -07:00
yuneng-jiang
2ca4fa6189
Merge branch 'main' into litellm_yj_march_19_2026 2026-03-20 17:28:41 -07:00
Ryan Crabbe
9c47d50f74 add startup messages 2026-03-20 16:52:00 -07:00
ryan-crabbe
1da02b66f6
Merge branch 'main' into litellm_audit_log_s3_export 2026-03-20 16:39:54 -07:00
yuneng-jiang
e6e3085845
Merge pull request #24258 from joereyna/fix/anthropic-file-content-test-mock
fix(test): mock get_auth_header instead of get_api_key in anthropic file content test
2026-03-20 16:14:59 -07:00
yuneng-jiang
e678ddea43 Fix unreachable special MCP server name guard in add_mcp_server
The special name check (all_team_servers, all_proxy_servers) was an elif
after the server_id-is-not-None check, making it unreachable since special
names are non-None strings. Split into separate if blocks so the special
name guard runs before the duplicate-ID check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 16:12:48 -07:00