mateo-berri
ef7ba3e54b
fix(logging_worker): swallow cancellation in exit flush and revive dequeued tasks on loop change
2026-08-26 13:30:40 -07:00
ryan-crabbe-berri
968c96143f
test(proxy): assert the rpm/tpm guard returns None on the passing paths
...
Satisfies the TQ001 zero-assert gate
2026-08-26 13:27:02 -07:00
mateo-berri
7b8d48782b
fix(caching): require the namespace delimiter when checking already-namespaced redis keys
2026-08-26 13:25:23 -07:00
mateo-berri
f0412345b5
fix(aiohttp): honor global ssl_verify on the aiohttp_openai handler path
2026-08-26 13:24:36 -07:00
mateo-berri
6d1a7ff8a8
Merge remote-tracking branch 'origin/litellm_internal_staging' into fix-cost-alias-double-prefix
2026-08-26 13:22:45 -07:00
mateo-berri
c33454fdec
fix(cost_calculator): keep custom-priced router ids when resolving slash aliases
2026-08-26 13:22:45 -07:00
ryan-crabbe-berri
a85036ec3e
Merge branch 'litellm_internal_staging' into enforce-rpm-tpm-on-model-add
...
Drop the notifications_manager.tsx keyword tweak: staging replaced the
substring classifier with lib/toast.ts, which already titles
validation_error responses as Validation Error
2026-08-26 13:19:07 -07:00
Yucheng Zhu
c3c9903ba5
fix: collapse image_url blocks whose payload lacks a url instead of forwarding them
2026-08-26 13:19:06 -07:00
Mateo Wang
f6571a653f
Merge pull request #38385 from BerriAI/litellm_lit6184_sdk_async_redis_cache_write
...
fix(caching): flush async cache writes cancelled at event loop shutdown
2026-08-26 13:17:43 -07:00
Mateo Wang
abf6ef96db
Merge pull request #36762 from danielva-monday/fix/bedrock-converse-1h-cache-cost
...
fix(bedrock): parse cacheDetails for Converse 1h/5m cache write cost split
2026-08-26 13:12:33 -07:00
Yucheng Zhu
df7b1f0fce
fix: forward image content lists to DeepSeek vision models
2026-08-26 13:08:22 -07:00
mateo-berri
a4834cbbf5
fix(logging_worker): bound flush-rescued coroutines with the worker timeout
2026-08-26 12:58:02 -07:00
Yucheng Zhu
8e1dcf02ea
style(gemini-realtime): wrap overlong docstrings to the 120 char limit
2026-08-26 12:54:44 -07:00
Mateo Wang
724c5c2d96
Merge pull request #38390 from BerriAI/litellm_realtime_health_ga_protocol
...
fix(health): probe Azure GA realtime path for transcription-only models
2026-08-26 12:53:05 -07:00
mateo-berri
c769562b5f
fix(logging_worker): clear flushed task refs in the shape memory_test expects
2026-08-26 12:52:20 -07:00
ryan-crabbe-berri
32dac12f9b
Merge pull request #38282 from BerriAI/litellm_ui_zindex_scale
...
refactor(ui): replace hand-picked z-index values with one named scale and lint it
2026-08-26 12:52:01 -07:00
Yucheng Zhu
002407af90
fix(gemini-realtime): map OpenAI stock voice names to Gemini prebuilt voices
2026-08-26 12:48:01 -07:00
mateo-berri
ca177f9cbc
Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_pr36762_bedrock_cache_details
...
# Conflicts:
# litellm/llms/bedrock/chat/converse_transformation.py
2026-08-26 12:45:15 -07:00
Mateo Wang
c850ed3c8e
Merge pull request #38393 from BerriAI/litellm_minimax_messages_env_key
...
fix(minimax): attach MINIMAX_API_KEY on anthropic messages requests
2026-08-26 12:44:01 -07:00
mateo-berri
1ba1a8038c
fix(logging_worker): rescue dequeued logging tasks lost at event loop close
...
Cache-hit success callbacks in short-lived SDK scripts enqueue
Logging.async_success_handler onto the global logging worker; the worker
loop dequeues the task and asyncio.run cancels the processing task before
it ever starts, so the coroutine leaves the queue unawaited and the atexit
flush finds an empty queue and rescues nothing. Track dequeued-but-unfinished
tasks with strong refs and have the atexit flush run any whose coroutine
never started
2026-08-26 12:42:08 -07:00
Mateo Wang
43ae3507e0
Merge pull request #37090 from Siraj637909/fix/gh-36898-health-leak-extra-headers
...
fix(health): strip credential fields from GET /health output
2026-08-26 12:35:43 -07:00
mateo-berri
7c717c7c6a
test(realtime): pin mode-only transcription detection and correct a stale docstring
2026-08-26 12:33:46 -07:00
mateo-berri
3c9690c4f5
test(realtime): fully type the capturing websocket connect double
2026-08-26 12:27:05 -07:00
Mateo Wang
72a9e1cf37
Merge pull request #38389 from BerriAI/litellm_concise_pull_rule
...
docs: tighten the pull-before-work rule in CLAUDE.md
2026-08-26 12:22:17 -07:00
Mateo Wang
74b6149d18
Merge pull request #38370 from BerriAI/litellm_azure_gpt_5_6_cache_write_pricing
...
fix(pricing): add azure gpt-5.6 cache write rates and correct data zone priority
2026-08-26 12:21:39 -07:00
Mateo Wang
1b693eff9f
chore: make it more concise
2026-08-26 12:21:04 -07:00
mateo-berri
74263bcb23
fix(minimax): attach MINIMAX_API_KEY on anthropic messages requests
2026-08-26 12:19:37 -07:00
Mateo Wang
99789733fb
Merge pull request #38378 from BerriAI/litellm_anthropic_fast_mode_cache_and_response_speed
...
fix(anthropic): scale cache costs by fast mode and trust served speed
2026-08-26 12:18:44 -07:00
mateo-berri
e56c42862c
fix(health): probe Azure GA realtime path for transcription-only models
...
The realtime health check always built the Azure websocket URL with the
default beta protocol, so GA-only transcription models such as
azure/gpt-realtime-whisper got probed at /openai/realtime and were
rejected with HTTP 400 on every /health run, while real calls through
the proxy resolved the GA path via intent=transcription and worked.
The probe now resolves the protocol the way the real call path does:
an explicit realtime_protocol (argument, deployment litellm_params, or
LITELLM_AZURE_REALTIME_PROTOCOL) wins, transcription-only models fall
back to GA with intent=transcription, and everything else keeps beta.
Transcription-only detection reads both mode and supported_endpoints
from get_model_info because a live proxy overwrites the catalog mode
with the operator's deployment model_info (mode: realtime) during
router registration, while supported_endpoints survives it.
get_model_info now propagates supported_endpoints from the cost map;
it declared the field but never populated it.
2026-08-26 12:14:52 -07:00
mateo
d8a0adb8d9
docs: tighten the pull-before-work rule in CLAUDE.md
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-26 19:12:56 +00:00
Mateo Wang
2d76fdaf0e
Merge pull request #38386 from BerriAI/litellm_claude_md_pull_before_work
...
docs(CLAUDE.md): add pull-before-work rule
2026-08-26 12:10:48 -07:00
mateo-berri
ece187ea24
Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_anthropic_fast_mode_cache_and_response_speed
...
# Conflicts:
# tests/test_litellm/test_cost_calculator.py
2026-08-26 12:10:33 -07:00
yuneng-jiang
da528e455c
Merge pull request #38307 from BerriAI/litellm_proxy_types_validator_contracts
...
test(proxy): pin the request-validation contracts in proxy/_types.py
2026-08-26 12:09:53 -07:00
Marty Sullivan
5d8769bbaf
fix(gemini-realtime): keep the client's voice on Vertex AI native-audio Live
...
Vertex AI Live accepts a speechConfig on setup for native-audio models, so
stripping it silently discarded the voice a client asked for. Confirmed against
a live BidiGenerateContent session on gemini-live-2.5-flash-native-audio and on
gemini-live-2.5-flash-preview-native-audio-09-2025: both return setupComplete
with speechConfig present.
The strip stays in place for Google AI Studio, which was never verified to
accept it, via an overridable predicate matching the existing
_include_function_response_id pattern. The responseModalities TEXT to AUDIO
coercion is unchanged, since Vertex does reject TEXT on these models.
2026-08-26 12:09:07 -07:00
Mateo Wang
ace28fd97a
Merge pull request #37384 from daniel-meismer-zocdoc/litellm_mcp_dcr_bridge_complete_challenges
...
fix(mcp): complete DCR bridge OAuth challenges
2026-08-26 12:07:54 -07:00
Mateo Wang
8dc17e808a
Merge pull request #38240 from BerriAI/devin_ai_anthropic_messages_missing_key
...
fix(anthropic): raise missing-credential error on /v1/messages passthrough
2026-08-26 12:06:37 -07:00
Mateo Wang
c13b278d79
Merge pull request #38369 from BerriAI/litellm_anthropic_geo_uplift_missing_models
...
fix(cost-map): add US data residency uplift to claude-sonnet-4-6 and mythos entries
2026-08-26 12:05:25 -07:00
mateo-berri
cbb50bb37e
fix(responses): flush streaming cache write cancelled at event loop shutdown
2026-08-26 12:05:11 -07:00
Mateo Wang
c7b9060fb1
Merge pull request #38291 from BerriAI/devin_ai_lit6160_health_check_image_edit_mode
...
fix(health): support `mode: image_edit` in health checks
2026-08-26 12:04:53 -07:00
mateo-berri
50f69a3a81
fix(health): strip client_secret, azure_ad_token, and other credential fields from /health output
2026-08-26 12:00:13 -07:00
Mateo Wang
0ada822928
Merge pull request #38094 from eugene-yao-zocdoc/litellm_redis_credential_provider
...
fix(redis): support credential providers across clients
2026-08-26 11:59:56 -07:00
mateo-berri
8a2fc2cc9f
Merge remote-tracking branch 'origin/litellm_internal_staging' into fix/gh-36898-health-leak-extra-headers
2026-08-26 11:57:55 -07:00
mateo-berri
1332f27729
docs(CLAUDE.md): say what git pull --no-rebase does on divergence
2026-08-26 11:55:41 -07:00
yucheng-berri
ede4f3e8ab
test(prometheus): cover caller-identity config failure cases ( #38380 )
...
* test(prometheus): cover caller-identity config failure cases
* test(prometheus): narrow pytest.raises with match to satisfy PT011
2026-08-26 11:53:49 -07:00
mateo-berri
c5e3b21019
test(utils): add priority cache write tier key to intended map schema
2026-08-26 11:51:57 -07:00
mateo-berri
d33fd7e194
docs(CLAUDE.md): add pull-before-work rule
2026-08-26 11:51:35 -07:00
Mateo Wang
80843ae7cb
Merge pull request #38279 from 6matt/litellm_bedrock_converse_gpt5_reasoning_effort
...
fix(bedrock): map reasoning_effort to reasoning.effort for OpenAI GPT-5.x on Converse
2026-08-26 11:48:18 -07:00
mateo-berri
1a696de40c
fix(caching): flush async cache writes cancelled at event loop shutdown
2026-08-26 11:47:10 -07:00
mateo-berri
c330d466f3
fix(anthropic): normalize oauth authorization header to one canonical casing
2026-08-26 11:45:51 -07:00
Mateo Wang
767e6015af
Merge pull request #34658 from BerriAI/litellm_azure_realtime_entra_id_auth
...
fix(azure/realtime): authenticate realtime websocket with Azure AD token when no api-key
2026-08-26 11:44:38 -07:00