Commit graph

53666 commits

Author SHA1 Message Date
devin-ai-integration[bot]
1fde15c1ec
fix(shadow-eval): skip hosted web search samples (#40827)
(cherry picked from commit a78cd2fe02)

Co-authored-by: Tin Chi Lo <tin@berri.ai>
2026-09-12 02:11:48 +00:00
Yuneng Jiang
0587e3b8f8
test(ui): isolate search provider query state 2026-09-11 19:07:04 -07:00
Kent
e250e661e3 style(bedrock): apply ruff format to neutralize helper 2026-09-12 10:02:36 +08:00
Yuneng Jiang
707b779c5d
fix(ui): preserve clear and default semantics in local forms 2026-09-11 18:58:58 -07:00
yassin
28f2d1f016 test(redis): cover the write and list timeout paths going through the shared log throttle
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 01:58:36 +00:00
Kent
04086be795 fix(bedrock): guard neutralized tool results anywhere in history when guardrailConfig is set 2026-09-12 09:51:01 +08:00
devin-ai-integration[bot]
7057b2f6c4
fix(fireworks_ai): keep reasoning_content on replayed assistant messages (#40682)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-11 18:47:37 -07:00
mateo-berri
e4030597d8 test(guardrails): prove the structured write-back lands CrowdStrike redactions on Responses instructions and tool items 2026-09-11 18:47:18 -07:00
Mateo Wang
eed11ba59b
Merge pull request #40812 from BerriAI/litellm_fireworks_deepseek_v4p1_flash
feat(model_prices): add DeepSeek V4.1 Flash on Fireworks
2026-09-11 18:43:00 -07:00
mateo-berri
832da2950f fix(proxy): keep the raw model string out of the unknown-model spend-log error message 2026-09-11 18:42:08 -07:00
yassin
f681a978f0 fix(redis): use a monotonic clock for the timeout log throttle and trim test docstrings
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 01:37:36 +00:00
yuneng-jiang
cf97b757a4
fix(ui): preserve cleared shared select values (#40795)
Preserve explicit null when shared selectors clear and adapt affected forms, validation, and request payloads. Clear stale dependent relationships and retain required-selection checks. Document project detachment, user model-budget clearing, and routing-compression clearing as deferred follow-ups.
2026-09-11 18:37:08 -07:00
Mateo Wang
44ce8bb1ef
Merge pull request #40769 from BerriAI/litellm_azure_realtime_ga_default
fix(realtime): dial Azure's GA realtime upstream for GA clients
2026-09-11 18:34:20 -07:00
Kent
5493be743b refactor(bedrock): fold orphaned-tool handling into existing rebind to satisfy LIT011 budget 2026-09-12 09:33:07 +08:00
yassin
9c84e98fb2 fix(proxy): treat a Redis timeout in spend counter increments as an already-logged cache failure
The cost tracking callback logged its own ERROR with a traceback for every request whose spend counter increment timed out, on top of the cache layer's throttled line. Timeouts now take the same path as breaker-open refusals: invalidate the counters and return. Also exposes is_redis_timeout_failure publicly for that caller and drops the comment on the new constant

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 01:25:32 +00:00
Kent
0eaf75b181 Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_bedrock_orphaned_tools_fix 2026-09-12 09:24:39 +08:00
devin-ai-integration[bot]
f84f986b4e
fix(guardrails): keep post_call guardrail info on streamed chat completions (#40806)
* fix(guardrails): sync logging_obj guardrail info on every record so post_call entries survive streamed chat completions

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(guardrails): hoist regression test imports to module scope

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-11 18:16:33 -07:00
mateo-berri
105dc77109 fix(realtime): probe Azure's GA realtime upstream in health checks when no protocol is pinned 2026-09-11 18:14:21 -07:00
ryan-crabbe-berri
e72d1cfa8d
Merge pull request #40572 from dclarksymmetry/fix/spend-counter-reseed-double-count
fix(proxy): prevent spend counter double counting
2026-09-11 18:14:04 -07:00
yassin
107b4ec4db fix(redis): log a timeout streak once per interval instead of one line per cache call
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 01:12:39 +00:00
Maximilian Roos
8dd20af4c9
Merge branch 'litellm_internal_staging' into bugfix/http-handler-del-closes-streaming-client 2026-09-11 18:11:10 -07:00
Joshua Valluru
9d31de2f20 fix(mcp): bound discovery cache result bytes 2026-09-11 18:08:27 -07:00
ryan-crabbe-berri
50cd26cd9c
Merge pull request #40396 from jon-walton/litellm_user_budget_webhook_alerts
fix(proxy): emit internal user budget webhook alerts
2026-09-11 18:03:35 -07:00
ryan-crabbe-berri
0c9fda8c1e fix(proxy): gate the webhook test alert on proxy admins
/health/services?service=webhook fired a budget_crossed alert for the
caller's own user_id with any authenticated key. That alert writes the
same dedup cache entry the auth-time user budget alert uses, so a
non-admin could pre-populate it and suppress their real budget alert
for the cache TTL. Match the newrelic and pointfive branches and reject
non-admin callers with a 403 before the alert fires.
2026-09-11 18:00:13 -07:00
mateo
6c07876dcf test(model_prices): use local cost map for Fireworks cost coverage
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 01:00:11 +00:00
Joshua Valluru
05d2c316f5 refactor(mcp): reuse in-memory discovery storage 2026-09-11 17:53:51 -07:00
mateo
115535c3ad test(model_prices): cover Fireworks DeepSeek V4.1 costs
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 00:49:26 +00:00
ryan-crabbe-berri
b27d2cce77
feat(ui): link the Organization and Deleted By cells on Deleted Teams (#40751)
* feat(ui): link the Organization and Deleted By cells on Deleted Teams

Both columns rendered as plain text, so tracing a deleted team back to its
org or to whoever removed it meant copying an id into another page's search
box. Route them through IdentityCell with orgDetailHref and userDetailHref.
Team ID stays unlinked because the team itself is gone.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4

* test(ui): mount a router mock for the Deleted Teams page test

The page test renders the table, and the newly linked cells call useRouter,
which throws without an App Router mounted. Matches how the other 35 test
files in the suite stub next/navigation.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4
2026-09-11 17:49:07 -07:00
ryan-crabbe-berri
c53f72c764
feat(ui): link the Created By cell on the Prompts page (#40753)
The column was plain muted text, so finding out who owns a prompt meant
copying the id into the Users page search box. Route it through
IdentityCell with userDetailHref, which keeps the proxy admin placeholder
unlinked.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4
2026-09-11 17:49:01 -07:00
ryan-crabbe-berri
06964e5603
feat(ui): link the User ID, Created By and Deleted By cells on Deleted Keys (#40750)
* feat(ui): link the User ID, Created By and Deleted By cells on Deleted Keys

All three columns rendered as plain text, so auditing a deleted key meant
copying an id into the Users page search box. Route them through
IdentityCell with userDetailHref, which keeps the proxy admin placeholder
unlinked. User Email and Team Alias stay as they are: the deleted key table
has no column for either, so the API never populates them.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4

* test(ui): mount a router mock for the Deleted Keys page test

The page test renders the table, and the newly linked cells call useRouter,
which throws without an App Router mounted. Matches how the other 35 test
files in the suite stub next/navigation.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4
2026-09-11 17:48:57 -07:00
ryan-crabbe-berri
1be930664f
feat(ui): link the User ID and Team ID cells on the Memory page (#40752)
Both columns rendered as dead pills, so tracing a memory row back to its
owner meant copying an id into another page's search box. IdCell grows an
href prop that turns the pill into a client-routed link, and the Memory
columns pass the shared entityLinks helpers so the proxy admin and
dashboard sentinels stay unlinked.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4
2026-09-11 17:48:44 -07:00
kerry-berri
b957c25241
Merge pull request #40811 from BerriAI/litellm_pr_template_assumptions
docs(pr-template): note untested assumptions under Caveats
2026-09-11 17:47:54 -07:00
ryan-crabbe-berri
4a2edf1702
feat(ui): link the Organization cell on the Teams page (#40749)
The Teams table showed a team's organization as plain text, so getting
from a team to the org that owns it meant copying the alias and searching
the Organizations page by hand.

It now uses the same link helper the key tables use, so the cell points
at the org detail page.

Claude-Session: https://claude.ai/code/session_01NfwfQhamRNnSqgXMUjf3h4
2026-09-11 17:47:35 -07:00
devin-ai-integration[bot]
bf146e2cac
fix(otel v2): name Langfuse traces from the langfuse_trace_name header or metadata.trace_name (#40793)
* fix(otel v2): name Langfuse traces from the langfuse_trace_name header or metadata.trace_name

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(otel v2): type the named-request helper in the Langfuse logger tests

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-11 17:37:35 -07:00
mateo
6cffb31e5c feat(model_prices): add DeepSeek V4.1 Flash on Fireworks
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 00:36:20 +00:00
jesus
96bf276ab9 fix(cli): remove the temp catalog when the atomic replace fails
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 00:34:06 +00:00
jesus
d1653fa40d fix(cli): replace Codex catalog atomically and skip sync on unreadable instructions
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 00:34:06 +00:00
jesus
003b53abbb feat(cli): sync Codex /model picker from proxy /v1/models in lite codex
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-12 00:34:06 +00:00
Kerry Lu
55c5babbc5 docs(pr-template): fold assumptions guidance into Caveats instructions
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 17:33:53 -07:00
Kerry Lu
dac491dc3f docs(pr-template): fold Assumptions Made into Caveats
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 17:30:57 -07:00
Kerry Lu
6882811cf6 docs(pr-template): move Assumptions Made above User Flow
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 17:28:55 -07:00
Kerry Lu
f77c8feb84 docs(pr-template): rename Assumptions to Assumptions Made
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 17:28:02 -07:00
Joshua Valluru
0690520080 test(mcp): isolate static-prefix discovery UI assets 2026-09-11 17:26:35 -07:00
Yuneng Jiang
90bf2911dc
test(e2e): verify IdP readiness through real HTTP 2026-09-11 17:25:38 -07:00
Kerry Lu
b6b5e27d7b docs(pr-template): add an Assumptions section
Action item from the v1.100.0 OOM RCA. LIT-6780 recorded "running without
--detailed_debug was not tried" as unverified; the fix PR closing it stated
"Only happens with --detailed_debug on" as fact without running that test, and
the untested half is where the customer-facing OOM lived. Nothing in the
template asked for the hedge, so it disappeared between the ticket and review.

The section asks for each untested claim plus what breaks if it is wrong, and
for any hedge on the linked ticket to be carried forward or explicitly closed
out, so reviewers and coding agents have something concrete to attack.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 17:23:31 -07:00
Yuneng Jiang
ec64005ff7
ci: run the JWT stack startup checks 2026-09-11 17:17:03 -07:00
devin-ai-integration[bot]
dab7f6a86a
feat(proxy): expose complexity routing headers (#40792)
(cherry picked from commit c817faec7a)

Co-authored-by: Tin <tin@berri.ai>
Co-authored-by: Claude Code <noreply@anthropic.com>
2026-09-11 17:14:40 -07:00
Yuneng Jiang
a706dbbb7d
chore: merge current staging into JWT E2E infrastructure 2026-09-11 17:13:52 -07:00
Joshua Valluru
f66239a50f test(mcp): cover static-prefix issuer discovery 2026-09-11 17:13:47 -07:00
Joshua Valluru
da61fa3564 fix(mcp): preserve existing relay discovery identifiers 2026-09-11 17:11:42 -07:00