Yuneng Jiang
d94b9d117d
docs(e2e): clarify recorded IDs and quota header semantics
2026-09-15 19:16:45 -07:00
kerry-berri
399420bb25
Merge pull request #41339 from BerriAI/litellm_fix_fireworks_cost_components
...
fix(fireworks-ai): bill cache-write, reasoning and audio tokens via the shared cost calculator
2026-09-15 19:16:24 -07:00
Joshua Valluru
c7e4160ee6
fix(mcp): enforce OAuth write policy across signed callbacks
2026-09-15 19:15:34 -07:00
Yucheng He
146085669c
fix(guardrails): run Singulr logging_only through the base hook, key MCP scans off the proxy call type and type the payloads
...
Removes the Singulr async_logging_hook and logging_hook overrides so logging_only runs through CustomGuardrail.async_logging_hook: the response scope reaches Singulr as an assistant message instead of a raw ModelResponse dump, a vendor timeout is recorded as guardrail_failed_to_respond, a request-scope block ends the scan, and the sync success callback thread makes no Singulr call.
Decides MCP versus LLM by the proxy logging object's call_type (then the call_type or server-only markers in request_data), never by name, arguments or mcp_tool_name keys a client can put in a chat body. REST /mcp-rest/tools/call pre-scans reach Singulr as mcp_request and a non-mapping arguments value is forwarded as tool_arguments instead of raising.
should_block is a strict bool defaulting to false so a null verdict is an invalid response that block_on_error decides; payload fields drop Any for Sequence, Mapping and AssistantMessage types; metadata carries only the keys present; docstrings and section comments removed per the repo comment policy.
2026-09-15 19:14:49 -07:00
aniket-kardile
8cce2b196a
feat(guardrails): singulr v2 API contract with logging_only, pre_mcp_call and post_mcp_call
...
Squash of BerriAI/litellm#37464 (head da298ca7 ) by @aniket-kardile, adopted onto main: v2 gateway payload contract with request, response, mcp_request and mcp_response scopes, typed payload models, proxy user, org and team metadata forwarded to Singulr, and the logging_only, pre_mcp_call and post_mcp_call modes.
2026-09-15 19:14:49 -07:00
kerry
133f1e8ef5
test(fireworks-ai): drop the explanatory comment on the cache-read constant
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 02:06:42 +00:00
kerry
7680d3de86
fix(responses): tolerate dict terminal responses when estimating usage
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 02:05:44 +00:00
kerry-berri
54e1b9e3de
Merge pull request #41338 from BerriAI/litellm_fix_gemini_model_version
...
fix(gemini): propagate the provider's modelVersion to the response model
2026-09-15 19:04:50 -07:00
kerry
a6228fab66
fix(anthropic): write usage into copies of the read-only message_delta chunk
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 02:03:21 +00:00
Joshua Valluru
97211bc356
fix(mcp): authorize per-user OAuth credential writes
2026-09-15 19:00:47 -07:00
yucheng-berri
41eb2dbfeb
Merge pull request #41128 from BerriAI/litellm_llm_judge_pre_call
...
feat(guardrails): support pre_call and during_call modes for llm_as_a_judge
2026-09-15 18:58:21 -07:00
tin-berri
106365fbac
Merge pull request #41341 from BerriAI/litellm_autorouter_pricing_fields
...
fix(proxy): preserve Anthropic pricing modifiers in router savings
2026-09-15 18:56:15 -07:00
yassin
b085a3c151
fix(mcp): return fixed client message on sampling model access denial
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:51:29 +00:00
kerry
7ed20406d7
test(responses): narrow the ValueError assertion to satisfy PT011
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:47:45 +00:00
berriai-litellm-provider-info-sync[bot]
c5a388a94c
chore(prices): sync Google Gemini prices: 1 model [enrichment failed: Google Gemini, sync failed: AWS Bedrock, 6 held]
...
gemini/gemini-3.1-pro-preview-customtools: input_cost_per_token_flex, output_cost_per_token_flex, cache_read_input_token_cost_flex
2026-09-16 01:46:17 +00:00
Yuneng Jiang
aa15e9f23f
test(e2e): reject expired cache entries before physical eviction
2026-09-15 18:45:43 -07:00
yassin
15f2e25e8a
refactor(proxy): replace configurable model access denied message with a fixed clean client message
...
Drop the model_access_denied_message setting, its {model} template, the DB
override entry and the Admin UI field. Model access denials now always return
the fixed client message while the allowlist diagnostic is logged at the final
HTTP, realtime and MCP boundaries
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:44:36 +00:00
kerry
91c7f75864
docs(fireworks-ai): describe the cache-read fallback without asserting provider billing
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:44:30 +00:00
Yassin Kortam
67cb0bc089
Merge pull request #41313 from BerriAI/litellm_model_activity_response_time
...
feat(ui): show average response time per model in usage model activity
2026-09-15 18:43:48 -07:00
kerry
091a38cce6
test(anthropic): import Final for the annotated locals
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:43:08 +00:00
kerry
c4c96180e3
fix(gemini): strip version suffix from modelVersion and keep it on blocked streams
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:42:36 +00:00
kerry
8352045f32
style(fireworks-ai): apply repository conventions to the cost component change
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:39:24 +00:00
Joshua Valluru
ece1de73b4
Merge remote-tracking branch 'origin/main' into litellm_fix_mcp_jwt_oauth_persistence
2026-09-15 18:36:02 -07:00
Devin AI
8d625d0400
fix(xai): keep 'instructions' on the xAI Responses API so system messages survive web_search bridging
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:35:13 +00:00
kerry
10aef224e7
style(anthropic): apply repository conventions to the missing-usage change
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:34:28 +00:00
kerry
91c8d1cdc1
chore: merge origin/main into litellm-providers/price-sync
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:30:24 +00:00
kerry
d1aa37b0a8
merge main into litellm_fix_fireworks_cost_components
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:28:29 +00:00
Joshua Valluru
8a3add3c6a
fix(mcp): reject scheme-only Basic credentials
2026-09-15 18:27:25 -07:00
Yuneng Jiang
45d5e6b833
fix(e2e): start cache CI service and count bypass calls
2026-09-15 18:26:44 -07:00
yassin
d90e7b3aec
fix(team): resolve model aliases in team admin model_max_budget authority check
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:26:40 +00:00
kerry-berri
171888b716
Merge pull request #41298 from BerriAI/litellm_drop_remaining_vendor_fact_pins
...
test: drop remaining tests that pin cost-map vendor facts
2026-09-15 18:25:14 -07:00
kerry
a6d2332f7a
test(responses): drive the usage-estimate failure path without patching litellm
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:24:35 +00:00
kerry
5a9fe56aff
fix(responses): count custom-tool and MCP argument deltas in the streamed usage fallback
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:24:05 +00:00
yucheng-berri
a9a654cb60
Merge pull request #38241 from BerriAI/litellm_agent365_mcp_guardrail
...
feat(guardrails): add Microsoft Agent 365 MCP tool-call guardrail
2026-09-15 18:21:46 -07:00
Yuneng Jiang
f214555068
fix(e2e): expect models filters to persist after reload
2026-09-15 18:21:43 -07:00
kerry
44a6d19889
test(gemini): drop review narration from the wrapper test docstring
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:14:37 +00:00
Yuneng Jiang
4587dbeae9
feat(e2e): cache exact provider responses for 24 hours
2026-09-15 18:14:18 -07:00
kerry
1484fd7600
fix(responses): keep the usage estimate best-effort when token counting raises
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:13:26 +00:00
yuneng-jiang
113a416619
Merge pull request #41319 from BerriAI/litellm_fix_ui_onboarding
...
fix(e2e): onboard dashboard users through invitations
2026-09-15 18:06:52 -07:00
yassin
d8ef940232
chore(ui): regenerate schema.d.ts for organization_id on archived key records
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:06:36 +00:00
Joshua Valluru
13553473aa
fix(mcp): reject missing upstream authentication credentials
2026-09-15 18:06:00 -07:00
yucheng
f66ffc387e
fix(guardrails): only honor the judge call-origin stamp on logging_only in llm_as_a_judge
...
On pre_call, during_call and post_call the hook data is the client request body, so a
client-supplied litellm_params.metadata.internal_call_origin must not skip enforcement.
Type the during_call helper's request payload as dict[str, object]
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
kerry
801f6a92b4
test(gemini): assert the served modelVersion reaches the assembled stream through CustomStreamWrapper
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
dd4829398a
fix(guardrails): log the configured mode when logging_only is mixed with an enforcing llm_as_a_judge mode
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
10506ab904
fix(guardrails): judge the whole latest user turn, run every during_call guardrail, log combined modes as configured
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
1b8b17cc8a
fix(guardrails): judge only the latest request turn in pre_call and during_call llm_as_a_judge
...
The request-side prompt told the judge to focus on the most recent user turn but the text under review was every extracted request message joined together, so a multi-turn request with an off-topic earlier turn and an on-topic latest turn scored 50 and was blocked. Request-side judging now evaluates the last extracted request text (after the configured message scoping) and passes the full role-labelled conversation only as context. Response-side judging still evaluates all extracted response text
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
e9357d9a6f
fix(guardrails): stop logging_only llm_as_a_judge from judging its own judge calls
...
Judge sub-calls now carry the internal_call_origin metadata stamp and the
guardrail skips any logged call bearing it, so a logging_only judge no longer
recurses into an unbounded chain of judge requests
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
a658f20005
test(guardrails): grant premium_user for the tagged Mode case in llm_as_a_judge mode-shape test
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
4d1330ea0b
test(guardrails): drop callback-manager patch from llm_as_a_judge mode-shape test
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00
yucheng
28bd00a004
fix(guardrails): label llm_as_a_judge logging_only verdicts with their mode
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-16 01:05:53 +00:00