Commit Graph
37115 Commits
Author SHA1 Message Date
ishaan-berriandGitHub d8ceeb83b7 Merge pull request #25810 from BerriAI/litellm_bedrock_api_response_null_type_handling
bedrock api response null type handling
2026-04-15 13:52:42 -07:00
Ishaan Jaffer aaf169c91b resolve merge conflicts: keep null-safety tests + add L3 regression tests from base 2026-04-15 12:34:39 -07:00
ishaan-berriandGitHub fb245b746f Merge pull request #25801 from BerriAI/litellm_rebuild_ui_cache_breakdown
build(ui): rebuild dashboard for cache token cost breakdown changes
2026-04-15 11:29:04 -07:00
Ishaan Jaffer 31fd681de0 build(ui): rebuild dashboard for cache token cost breakdown changes 2026-04-15 10:46:48 -07:00
ishaan-berriandGitHub 645e0a7831 Merge pull request #25735 from BerriAI/litellm_bedrock_cache_cost_breakdown
fix(bedrock/anthropic): accurate cache token cost breakdown in UI and SpendLogs
2026-04-15 10:44:37 -07:00
Yuneng Jiang 922c6174fa Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_bedrock_cache_cost_breakdown 2026-04-15 10:37:47 -07:00
Yuneng JiangandIshaan Jaffer ff5bd43b0f Point contributors toward litellm_oss_branch in guard error messages 2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer d9b89bc2ca Also reject PRs from forks, not just non-allowlisted branches 2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer a305eb866a [Infra] Guard main branch with PR source-branch check
Adds a GHA that fails PRs to main unless the head branch is
'litellm_internal_staging' or 'litellm_hotfix_*'. Also fails merge_group
events since merge queue is not in use.
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer 557accbb2a bump: version 1.83.7 → 1.83.8 2026-04-15 09:52:24 -07:00
joereynaandIshaan Jaffer 571faae0ed fix(ci): increase test-server-root-path timeout to 30m 2026-04-15 09:52:24 -07:00
joereynaandIshaan Jaffer 213b1ea0b4 fix: remove non-existent litellm_mcps_tests_coverage from coverage combine 2026-04-15 09:52:24 -07:00
shivamandIshaan Jaffer 5af74b6930 docs update 2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer 1e50925d9b [Test] add request-body mock test for bedrock gpt-oss tool schema
Complements the stubbed-out live integration test by verifying the
outgoing Bedrock Converse request body for GPT-OSS is well-formed when
the caller supplies a tool schema with OpenAI-style metadata
($id, $schema, additionalProperties, strict):
- correct converse URL for bedrock/converse/openai.gpt-oss-20b-1:0
- toolConfig.tools[0].toolSpec has the expected name/description
- inputSchema.json keeps type/properties/required and strips fields
  Bedrock does not accept
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer c8a94ff1ec [Test] stub flaky bedrock gpt-oss function-calling stream test
GPT-OSS on Bedrock intermittently emits truncated toolUse.input deltas
(e.g. accumulated args of '{"":"'), causing
test_function_calling_with_tool_response to hard-fail on json.loads.
The model flakiness is not a litellm regression: the same base test
passes for Anthropic in the same CI run, and the streaming delta path
at invoke_handler.py has not changed recently.

Follow the existing override pattern in TestBedrockGPTOSS
(test_prompt_caching, test_completion_cost, test_tool_call_no_arguments)
and stub the test to pass. The underlying bedrock converse streaming
tool-call path is already covered by Claude/Nova/Llama Converse suites
in test_bedrock_completion.py and test_bedrock_llama.py, so removing
the live GPT-OSS check loses no unique litellm-side signal.
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer be9053d957 [Test] mark bedrock gpt-oss function-calling stream test flaky
Bedrock GPT-OSS occasionally emits truncated toolUse.input deltas
(e.g. accumulated args of '{"":"'), which causes
test_function_calling_with_tool_response to hard-fail on json.loads.
Other overrides in TestBedrockGPTOSS already handle similar
model-side flakiness; apply retries=6 delay=5 scoped to this subclass
so other providers keep strict behavior.
2026-04-15 09:52:24 -07:00
shivamandIshaan Jaffer 19070d326d update 2026-04-15 09:52:24 -07:00
shivamandIshaan Jaffer 2933b213db fallbacks image 2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer 641a377d05 [Fix] Test - Together AI: replace deprecated Mixtral with serverless Qwen3.5-9B
Mixtral-8x7B-Instruct-v0.1 is no longer on Together AI's serverless tier
and now requires a dedicated endpoint, causing multiple tests to fail in CI:

  - test_together_ai.py::TestTogetherAI::test_empty_tools
  - test_completion.py::test_completion_together_ai_stream
  - test_completion.py::test_customprompt_together_ai
  - test_completion.py::test_completion_custom_provider_model_name
  - test_text_completion.py::test_async_text_completion_together_ai

Qwen/Qwen3.5-9B is currently serverless on Together AI and supports
function calling, satisfying BaseLLMChatTest capability requirements.
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer dbe70086c6 Remove Chat UI link from Swagger docs message 2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer 81e38491ff [Docs] Regenerate v1.83.3-stable release notes from v1.82.3-stable baseline
The previous v1.83.3 changelog was generated against v1.83.0-nightly and
missed ~3 weeks of work. This regenerates it against the previous stable
release and restructures the LLM API Endpoints section to group by API
type (Responses, Batch, Count Tokens, Video Generation, Pass-Through,
etc.) matching the convention used in v1.82.3, v1.82.0, and v1.81.14.
Adds ~25 previously uncited PRs, cross-section duplications for
cross-cutting changes, and a verified first-time-contributors list.
2026-04-15 09:52:24 -07:00
Ryan CrabbeandIshaan Jaffer 3b8f651eaf fix: default invite user modal global role to least-privilege
Pre-select "Internal User Viewer" in the Global Proxy Role dropdown
on both the standalone and embedded Invite User forms so admins don't
have to remember to pick a role, and the default lands on the least
privileged option rather than silently posting an undefined role.
2026-04-15 09:52:24 -07:00
Ryan CrabbeandIshaan Jaffer 8837138c8f [Docs] Use GitHub avatar for Ryan Crabbe in release notes
Replace the expiring LinkedIn CDN image URL with a stable GitHub
avatar URL for v1.83.3 and v1.83.7.rc.1 release notes.
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer c94f5d56a8 [Docs] Add missed content PRs to v1.83.7.rc.1 and update runbook
- Add 8 content PRs that merged directly to the release branch outside the listed staging PRs: #23769 (Ramp callback), #25252 (JWT OAuth2 override), #25254 (AWS GovCloud mode), #25258 (batch-limit cleanup), #25334 (router custom_llm_provider), #25345 (Triton embeddings), #25347 (tag-based routing), #25358 (Baseten pricing attribution)
- Add @kedarthakkar to new contributors (first-ever PR via #23769)
- Update RELEASE_NOTES_GENERATION_INSTRUCTIONS: require walking git log range between release tags in addition to staging PRs, and verify new-contributor status per author rather than trusting the GH release body floor
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer d92e65cc6f [Fix] Correct pip install versions for v1.83.3-stable and v1.83.7.rc.1 docs
PyPI publishes 1.83.3 and 1.83.7 (no .post1 / rc1 suffixes) — align the pip install commands with the actual published versions.
2026-04-15 09:52:24 -07:00
Yuneng JiangandIshaan Jaffer 719f4cafca [Docs] Add release notes for v1.83.3-stable and v1.83.7.rc.1
- Retitle existing v1.83.3 preview file to v1.83.3-stable (same commit)
- Add new v1.83.7.rc.1 preview release notes
- Update RELEASE_NOTES_GENERATION_INSTRUCTIONS runbook with guidance on resolving staging PRs to their underlying commits
2026-04-15 09:52:23 -07:00
Ryan CrabbeandIshaan Jaffer a23408d937 test(ui): add getCookie to cookieUtils mock in user_dashboard test
user_dashboard.tsx imports getCookie from @/utils/cookieUtils, but the
vi.mock factory in user_dashboard.test.tsx only exports clearTokenCookies.
Vitest throws `No "getCookie" export is defined on the "@/utils/cookieUtils"
mock`, breaking all three beforeunload-listener tests.

Add getCookie to the mock factory so it matches the current imports.
2026-04-15 09:52:23 -07:00
Ryan CrabbeandIshaan Jaffer 27484c4a41 fix: isolate logs team filter dropdown from root teams state bleed
The Logs view's Team ID filter dropdown was reading `allTeams` from the
root `teams` state in page.tsx, which the Teams page search overwrites
with its filtered subset. Applying a team search on the Teams page made
filtered-out teams disappear from the Logs filter dropdown.

Swap the Team ID filter to use the existing `TeamDropdown` component via
a small `FilterTeamDropdown` wrapper that adapts it to the filter slot's
`FilterOptionCustomComponentProps` contract. The dropdown now drives its
own `useInfiniteTeams` query against `/v2/team/list` with server-side
search and an isolated react-query cache, unreachable from root state.

Rename the now-unused `hookAllTeams` destructure to `allTeams` so the
`KeyInfoView` passthrough receives the hook's unpolluted fetch instead
of the polluted prop, and drop the dead `allTeams` prop from
`SpendLogsTable` and both of its call sites.
2026-04-15 09:52:23 -07:00
Ryan CrabbeandIshaan Jaffer f27bf8e711 fix(ui): pre-select backend default for boolean guardrail provider fields
Boolean fields in the auto-generated guardrail provider form (e.g. Noma
`use_v2`) rendered as empty Selects because the Form.Item only populated
`initialValue` for percentage fields, and the `defaultValue` passed to the
Select child was silently dropped by antd's controlled-component wrapper.
Users could not tell what the backend default was, and the visual ambiguity
made flags like `use_v2` look inoperative even though the save path worked.

Unify `initialValue` to fall back through `fieldValue → field.default_value →
(percentage ? 0.5 : undefined)`, and switch Select.Option values from
"true"/"false" strings to real booleans so the backend default flows through
without stringification.
2026-04-15 09:52:23 -07:00
Sameer Kankute 277be4c50e Add input + output tokens for anthropic message type 2026-04-15 21:08:34 +05:30
shin-berriandGitHub 4a73e94618 Merge pull request #25747 from BerriAI/main
[Infra] Merge main into litellm_internal_staging
2026-04-14 21:13:12 -07:00
yuneng-jiangandGitHub 72a461ba4a Merge pull request #25733 from BerriAI/litellm_guardMainBranch
[Infra] Guard main to only accept PRs from staging and hotfix branches
2026-04-14 20:54:29 -07:00
yuneng-jiangandGitHub 9790a46f69 Merge pull request #25730 from BerriAI/yj_bump_apr14_2
bump: version 1.83.7 → 1.83.8
v1.83.8-nightly
2026-04-14 20:11:58 -07:00
yuneng-jiangandGitHub bdb4f396bb Merge pull request #25741 from joereyna/fix/test-server-root-path-timeout
fix(ci): increase test-server-root-path timeout to 30m
2026-04-14 19:54:23 -07:00
yuneng-jiangandGitHub 3284dee734 Merge pull request #25737 from joereyna/fix/remove-missing-mcps-coverage-path
fix: remove non-existent litellm_mcps_tests_coverage from coverage combine
2026-04-14 19:54:13 -07:00
yuneng-jiangandGitHub 50786007fc Merge pull request #25736 from BerriAI/docs_visual_guide_for_guardrail_fallbacks
docs update
2026-04-14 19:51:54 -07:00
yuneng-jiangandGitHub ffc3a9736d Merge pull request #25739 from BerriAI/litellm_flakyBedrockGptOssToolCall
[Test] Replace flaky bedrock gpt-oss tool-call live test with request-body mock
2026-04-14 19:49:04 -07:00
joereyna ccbdaa9187 fix(ci): increase test-server-root-path timeout to 30m 2026-04-14 19:42:10 -07:00
Yuneng Jiang e2043e11f1 [Test] add request-body mock test for bedrock gpt-oss tool schema
Complements the stubbed-out live integration test by verifying the
outgoing Bedrock Converse request body for GPT-OSS is well-formed when
the caller supplies a tool schema with OpenAI-style metadata
($id, $schema, additionalProperties, strict):
- correct converse URL for bedrock/converse/openai.gpt-oss-20b-1:0
- toolConfig.tools[0].toolSpec has the expected name/description
- inputSchema.json keeps type/properties/required and strips fields
  Bedrock does not accept
2026-04-14 19:36:57 -07:00
Yuneng Jiang 8e44a02a22 [Test] stub flaky bedrock gpt-oss function-calling stream test
GPT-OSS on Bedrock intermittently emits truncated toolUse.input deltas
(e.g. accumulated args of '{"":"'), causing
test_function_calling_with_tool_response to hard-fail on json.loads.
The model flakiness is not a litellm regression: the same base test
passes for Anthropic in the same CI run, and the streaming delta path
at invoke_handler.py has not changed recently.

Follow the existing override pattern in TestBedrockGPTOSS
(test_prompt_caching, test_completion_cost, test_tool_call_no_arguments)
and stub the test to pass. The underlying bedrock converse streaming
tool-call path is already covered by Claude/Nova/Llama Converse suites
in test_bedrock_completion.py and test_bedrock_llama.py, so removing
the live GPT-OSS check loses no unique litellm-side signal.
2026-04-14 19:13:42 -07:00
Yuneng Jiang d6a69b9c81 [Test] mark bedrock gpt-oss function-calling stream test flaky
Bedrock GPT-OSS occasionally emits truncated toolUse.input deltas
(e.g. accumulated args of '{"":"'), which causes
test_function_calling_with_tool_response to hard-fail on json.loads.
Other overrides in TestBedrockGPTOSS already handle similar
model-side flakiness; apply retries=6 delay=5 scoped to this subclass
so other providers keep strict behavior.
2026-04-14 19:10:55 -07:00
Ishaan Jaffer 84c507bc14 fix(mypy): use explicit None check for cache rate values to satisfy type checker 2026-04-14 19:03:56 -07:00
joereyna a01cf44c35 fix: remove non-existent litellm_mcps_tests_coverage from coverage combine 2026-04-14 18:59:25 -07:00
Yuneng Jiang 38f8d7a008 Point contributors toward litellm_oss_branch in guard error messages 2026-04-14 18:41:59 -07:00
Yuneng Jiang ab71d3d700 Also reject PRs from forks, not just non-allowlisted branches 2026-04-14 18:39:54 -07:00
shivam fd110cd5cf docs update 2026-04-14 18:33:42 -07:00
Ishaan Jaffer e20d9df1b6 remove test file 2026-04-14 18:29:15 -07:00
Ishaan Jaffer e0a988e39a feat(ui/log-details): pass rawInputTokens, cacheReadTokens, cacheCreationTokens to CostBreakdownViewer from SpendLogs 2026-04-14 18:29:12 -07:00
Ishaan Jaffer 0148effd6e feat(ui/cost-breakdown): show separate Input / Cache Read / Cache Write line items in cost breakdown drawer 2026-04-14 18:29:12 -07:00
Ishaan Jaffer 6b1dc1156e fix(ui/usage): subtract cache tokens from Input Tokens summary card to avoid double-counting 2026-04-14 18:29:12 -07:00