Commit graph

34637 commits

Author SHA1 Message Date
Yuneng Jiang
9c840a19f1
chore: fixes 2026-04-04 23:39:06 -07:00
Ishaan Jaffer
5f7becf82d fix(tests): generate square PNG in image_url fixture for DALL-E 2 variation test
DALL-E 2 create_variation requires a square PNG. The old fixture fetched
the LiteLLM logo from S3 which is non-square, causing API rejections.
Replace with a programmatically-generated 1024x1024 RGBA PNG via Pillow.
2026-03-07 16:57:30 -08:00
Ishaan Jaff
34984d22ae
fix(test): update openrouter image generation assertion for gemini-2.5-flash-image (#23070)
* fix(anthropic/skills): remove ?beta=true query param from Skills API URLs

Beta access is controlled via the anthropic-beta header (already set
to skills-2025-10-02), not a URL query param. The spurious ?beta=true
was causing 500 errors from Anthropic's server.

* fix(test): update openrouter image generation assertion to accept any image format

gemini-2.5-flash-image returns JPEG, not PNG. The assertion was hardcoded
to png after the model was swapped from gemini-2.5-flash-image-preview
(which returned PNG) in commit 34e8e972.
2026-03-07 16:52:04 -08:00
Ishaan Jaff
7f6adf2e1a
fix(anthropic/skills): remove ?beta=true query param from Skills API URLs (#23069)
Beta access is controlled via the anthropic-beta header (already set
to skills-2025-10-02), not a URL query param. The spurious ?beta=true
was causing 500 errors from Anthropic's server.
2026-03-07 16:46:26 -08:00
Ishaan Jaff
66c822435e
fix(ci): image variation openai sdk 2.24.0 compat + swap bedrock nova-premier to nova-pro (#23066)
* fix(ci): fix image variation test for openai sdk 2.24.0 and swap nova-premier to nova-pro

image_gen_tests: openai==2.24.0 (bumped Feb 25) requires BytesIO objects to have
a .name attribute for MIME type detection in multipart uploads. Add .name to the
fixture so create_variation works. Also guard with OPENAI_API_KEY skipif.

proxy_e2e_anthropic_messages_tests: nova-premier requires provisioned throughput
not available via standard on-demand cross-region inference on the CI account.
Swap to nova-pro which uses standard inference profiles.

* fix: remove skipif, keep only .name fix for openai sdk compat
2026-03-07 16:41:54 -08:00
Ishaan Jaff
e8a7116899
fix(tests): fix repeating chunk and audio usage streaming tests (#23061)
- Replace ModelResponse(stream=True) with ModelResponseStream in
  test_unit_test_custom_stream_wrapper_repeating_chunk — stream=True
  stores delta as a plain dict causing AttributeError in CustomStreamWrapper
- Accept MidStreamFallbackError alongside InternalServerError in the
  repeating-chunk safety check assertion
- Add @pytest.mark.flaky(retries=3) to the live OpenAI audio output
  usage test
2026-03-07 16:18:51 -08:00
Ishaan Jaff
a50a84c16c
fix(tests): update redaction assertion + remove flaky qwen3 streaming test (#23062)
test_standard_logging_payload_audio: the response field in standard_logging_object
is now a ModelResponse choices dict (since d84e5e381a), not {text: redacted-by-litellm}.
Update both audio and non-audio variants to check choices[0].message.content instead.
Audio is still correctly redacted - the new code creates a fresh ModelResponse with no
audio field, so audio bytes never appear in the payload.

test_partner_models_httpx_streaming: remove qwen3-coder-480b (us-south1) from the
parametrize list - same treatment as llama-4-scout which was removed earlier.
The endpoint is unavailable in CI and the test has been consistently failing.
2026-03-07 16:07:14 -08:00
Ishaan Jaff
3ad9a536d3
fix(vertex): drop bare {} schemas from anyOf before adding nullable=True (#23060)
When anyOf contains a mix of concrete types, bare {} (any-type), and null,
convert_anyof_null_to_nullable was adding nullable=True to the {} entry,
producing {nullable: True} with no type field. Gemini rejects this as an
anyOf entry without a concrete type, breaking tool calls that use
Optional[List[...]] or similar union types (common in LangChain/Pydantic).

Fix: strip any-type schemas from anyOf before the nullable=True pass.
If only any-type schemas remain after null removal (anyOf: [{}, null]),
collapse the anyOf entirely and set nullable=True on the parent schema
instead — correctly representing 'any nullable value' for Gemini.

Regression introduced by da941e4261.
2026-03-07 15:59:10 -08:00
Ishaan Jaff
15cc641b7e
fix: sync poetry.lock with pyproject.toml (litellm-proxy-extras 0.4.51 → 0.4.52) (#23059)
poetry.lock was regenerated for 0.4.51 but pyproject.toml was subsequently
bumped to 0.4.52 without re-running poetry lock. This caused the
proxy_e2e_azure_batches_tests CI job to fail at the Install Dependencies step
('pyproject.toml changed significantly since poetry.lock was last generated'),
preventing all 3 tests in that job from running.
2026-03-07 15:58:33 -08:00
Ishaan Jaff
4a14683c7e
fix: guard prisma import in config_override_endpoints (#23058)
* fix: guard prisma import in config_override_endpoints to fix proxy import without prisma

Top-level `from prisma.errors import RecordNotFoundError` was introduced in the
Hashicorp Vault feature PR and breaks `import litellm.proxy.proxy_server` when
prisma is not installed (e.g. plain `pip install litellm[proxy]` in CI).

Wraps the import in try/except ImportError so the module loads cleanly when
prisma is absent; the except branch aliases RecordNotFoundError to Exception,
which is safe because the code path that catches it only logs a debug message.

* fix: sync poetry.lock with pyproject.toml (litellm-proxy-extras 0.4.51 → 0.4.52)

poetry.lock was regenerated for 0.4.51 but pyproject.toml was subsequently
bumped to 0.4.52 without re-running poetry lock. This caused the
proxy_e2e_azure_batches_tests CI job to fail at the Install Dependencies step
('pyproject.toml changed significantly since poetry.lock was last generated'),
preventing all 3 tests in that job from running.

* Revert "fix: sync poetry.lock with pyproject.toml (litellm-proxy-extras 0.4.51 → 0.4.52)"

This reverts commit 249ec7c9c2.
2026-03-07 15:57:57 -08:00
ryan-crabbe
0790163396
Merge pull request #23056 from BerriAI/litellm_fix_team_member_count
fix member count being on an irrelevant page
2026-03-07 15:42:24 -08:00
Ryan Crabbe
79e80aa151 fix: removed total count 2026-03-07 15:39:08 -08:00
Ryan Crabbe
dc9c2fe51f fix member count being on an irrelevant page 2026-03-07 15:34:12 -08:00
yuneng-jiang
6dd2a9a3ea
Merge pull request #23053 from BerriAI/litellm_fix_chat_ui_link
[Fix] UI - Playground: Fix Open Chat UI button 404
2026-03-07 15:24:11 -08:00
Ishaan Jaff
28c33f53a3
CircleCI test stability (#23055)
* fix: resolve ruff lint errors and mypy type error

- Remove unused import get_user_credential (F401)
- Add noqa: PLR0915 for 3 large functions exceeding 50 statements
- Cast result_data['q'] to str for _append_domain_filters (mypy arg-type)

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add /vertex_ai/live to supported endpoints and azure gpt-5.1 reasoning flags

- Add /vertex_ai/live to JSON schema validation enum in test_utils.py
- Add supports_none_reasoning_effort=true to 10 azure/gpt-5.1 model entries
  (matching the OpenAI gpt-5.1 behavior)

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: handle non-string team_alias/key_alias in PolicyMatchContext

Prevent Pydantic validation errors when team_alias or key_alias are not
proper strings (e.g. MagicMock in tests). Only pass values that are
actually strings; default to None otherwise.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: initialize jwt_handler.litellm_jwtauth in JWT test

The test_jwt_non_admin_team_route_access test was failing because
user_api_key_auth now accesses jwt_handler.litellm_jwtauth.virtual_key_claim_field
before reaching the mocked JWTAuthManager.auth_builder. Initialize the
jwt_handler with a default LiteLLM_JWTAuth object.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add missing mock attributes to MCP server test

The test_add_update_server_fallback_to_server_id test was failing because
MagicMock auto-creates attributes when accessed. build_mcp_server_from_table
accesses many fields via getattr(), which on a MagicMock returns another
MagicMock instead of None, causing Pydantic validation errors in MCPServer.

Explicitly set all required mock attributes.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: update UI tests for leftnav, navbar, and KeyLifecycleSettings

- leftnav: Add mock for useTeams hook, add isUserTeamAdminForAnyTeam to
  roles mock, update topLevelLabels to match current component menu items
- navbar: Add mocks for useDisableBouncingIcon, BlogDropdown, UserDropdown,
  and serverRootPath. Update test to work with the new component structure.
- KeyLifecycleSettings: Fix placeholder and tooltip assertions to match
  actual component behavior

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: update health check test assertion from 'connected' to 'healthy'

The /health/readiness endpoint now returns {"status": "healthy"} with the
DB status in a separate field, instead of the previous {"status": "connected"}.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: clear litellm.api_key in OpenRouter validate_environment test

The test_validate_environment_raises_without_key test was failing because
litellm.api_key may be set globally in the test environment. Clear it
along with OPENROUTER_API_KEY and OR_API_KEY env vars using monkeypatch.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: patch HTTPHandler class-level in VLLM embedding test

The test_encoding_format_not_sent_in_actual_request test was patching
client.post on an instance, but the handler uses the class method.
Patch HTTPHandler.post at class level, add caching=False to prevent
cache hits, and remove broad try/except that hid errors.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: make test_redaction_responses_api_stream resilient to async callback timing

Replace fixed 1s sleep with polling wait for async_log_success_event.
Streaming success handler runs via asyncio.create_task; 1s was insufficient
in CI. Add 0.5s initial sleep for event loop to schedule the task, then
poll up to 10s for the callback to fire.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: update dompurify and svgo to fix security CVEs

- CVE-2026-0540: dompurify XSS vulnerability - fix by upgrading to 3.3.2+
- CVE-2026-29074: svgo DoS via entity expansion - fix by upgrading to 3.3.3+

Added npm overrides in docs/my-website/package.json and regenerated
package-lock.json.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: remove unused json import in config_override_endpoints.py

Ruff F401: json is imported but unused (safe_json_loads/safe_dumps
are used instead)

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add missing MCP mock attributes and provider documentation entries

- Add missing mock attributes to test_add_update_server_with_alias and
  test_add_update_server_without_alias (same fix as fallback test)
- Add bedrock_mantle and searchapi to provider_endpoints_support.json
- Remove unused json import from config_override_endpoints.py

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: override _supports_reasoning_effort_level for Azure gpt5_series prefix

The Azure GPT-5 config uses 'gpt5_series/' as a routing prefix, but
_supports_factory(model='gpt5_series/gpt-5.1') fails to resolve because
'gpt5_series' is not a recognized provider. Override the method to strip
the prefix and prepend 'azure/' for correct model info lookup.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: accept both 'healthy' and 'connected' in health check test

The test_health_and_chat_completion test runs against both source builds
(which return 'healthy') and pip-installed versions (which may return
'connected'). Accept both values.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: mock extract_mcp_auth_context in streamable HTTP MCP handler test

The handle_streamable_http_mcp function now calls extract_mcp_auth_context
before session_manager.handle_request, but the test didn't mock it. The
auth extraction fails with the minimal mock scope, preventing
handle_request from being called. Also relax assertion to not check
exact args since the send wrapper may be modified by debug injection.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add test for _combine_fallback_usage to satisfy router code coverage

The router_code_coverage.py check requires all functions in router.py
to be called in test files. Add a basic test for _combine_fallback_usage.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add @log_guardrail_information decorator to CrowdStrike AIDR guardrail

The check_guardrail_apply_decorator.py CI check requires all guardrail
apply_guardrail methods to have the @log_guardrail_information decorator.
The CrowdStrike AIDR handler was missing it.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: document PRISMA_RECONNECT_ESCALATION_THRESHOLD and REDIS_CLUSTER_NODES env keys

Add missing environment variable documentation to config_settings.md
to satisfy the test_env_keys.py CI check.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: document enforced_file_expires_after and enforced_batch_output_expires_after in new_team docstring

The test_api_docs.py CI check validates that all Pydantic model fields
are documented in the function docstring. Add missing parameter docs
for enforced_file_expires_after and enforced_batch_output_expires_after.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: regenerate poetry.lock to match pyproject.toml

The poetry.lock file was out of sync with pyproject.toml, causing
proxy_e2e_azure_batches_tests to fail during dependency installation.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: set master_key=None in test_create_file_with_deep_nested_litellm_metadata

The test was missing the master_key monkeypatch that other tests in the
same file set. In CI with parallel execution (-n 4), another test may
set master_key to a non-None value, causing auth failures (500) when
the test sends 'Bearer test-key'.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: document enforced_*_expires_after in update_team docstring too

Same missing params as new_team - also needed in update_team docstring
for the test_api_docs.py CI check to pass.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: use get_async_httpx_client in a2a_protocol and add master_key monkeypatch to files tests

- Replace httpx.AsyncClient() with get_async_httpx_client() in a2a_protocol/main.py
  to satisfy the ensure_async_clients_test CI check
- Add httpxSpecialProvider.A2AProvider enum value
- Add master_key=None monkeypatch to test_managed_files_with_loadbalancing

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: remove unused httpx import from a2a_protocol/main.py

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: use cache-key-only param for A2A extra_headers to avoid AsyncHTTPHandler init error

The 'extra_headers' key in params was being passed to AsyncHTTPHandler.__init__()
which doesn't accept it. Use 'disable_aiohttp_transport' as the cache-key-only
param since it's explicitly filtered out before reaching the constructor.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: add additionalProperties:false and resolve $defs/$ref in Anthropic output_format schemas

Anthropic API now requires additionalProperties=false for all object-type
schemas in output_format. Also resolve $defs/$ref references by inlining
them using unpack_defs before sending to Anthropic, since Anthropic
doesn't support external schema references.

Fixes: llm_translation_testing Anthropic JSON schema failures

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: allowlist CVE-2026-2297 and GHSA-qffp-2rhf-9h96 in security scans

- CVE-2026-2297: Python 3.13 SourcelessFileLoader audit hook bypass,
  no fix available in base image
- GHSA-qffp-2rhf-9h96: tar hardlink path traversal, from nodejs_wheel
  bundled npm, not used in application runtime code

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: isolate files endpoint tests from shared proxy state in CI parallel execution

Override user_api_key_auth dependency to return a fixed UserAPIKeyAuth
with PROXY_ADMIN role, avoiding auth lookups via prisma_client,
user_api_key_cache, or master_key. Set prisma_client=None to prevent
DB state contamination. Use try/finally to clean up dependency overrides.

Fixes persistent test_create_file_with_deep_nested_litellm_metadata and
test_managed_files_with_loadbalancing 500 errors in CI with -n 4.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* fix: apply same auth override to test_managed_files_with_loadbalancing

Same CI parallel execution fix as test_create_file_with_deep_nested -
override user_api_key_auth dependency and set prisma_client=None.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>
2026-03-07 15:19:39 -08:00
yuneng-jiang
ff6dc51987 fix(ui): fix playground banner Open Chat UI button 404
The banner's href was hardcoded to /chat, missing both the /ui/ prefix
and any server_root_path prefix. Use useUIConfig to build the same
chatHref as the navbar does.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 15:06:28 -08:00
Ishaan Jaff
cfd0e2cf99
[Feat] UI Polish - MCP Servers page - show transport type (#23051)
* Update AGENTS.md with additional Cursor Cloud setup notes

- Add note about openapi-core dependency needed for OpenAPI compliance tests
- Add note about poetry lock fallback when lock file is out of sync

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* Sync lock files with current dependency specs

- poetry.lock: regenerated to match pyproject.toml (litellm-proxy-extras 0.4.50 -> 0.4.51)
- package-lock.json: updated from npm install

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* Polish MCP Servers UI for enterprise-grade look and feel

10 improvements to the MCP Servers table and related components:

1. Remove debug console.logs from mcp_servers.tsx
2. Fix health status icons: distinct ✓/✗/? per state instead of identical dots
3. Health status badges: proper pill styling with rounded-full and borders
4. Health loading state: subtle pulsing dot instead of raw SVG spinner
5. Transport column: color-coded badges (HTTP=blue, SSE=purple, STDIO=amber, OPENAPI=teal)
6. Auth type column: color-coded badges (oauth2=indigo, bearer_token=sky, api_key=emerald)
7. Server ID chip: rounded corners, border, and transition effect
8. Filter bar: lighter border, cleaner labels, vertical divider between filters
9. Network Access: pill badges with colored dots (Public/Internal)
10. Date columns: shorter headers, dash for missing values, tooltip with full datetime

Also:
- Improved delete modal: cleaner layout, neutral background instead of red
- Access Groups column: shows first group with +N count instead of truncated text
- Empty state message includes CTA guidance
- Updated test to match renamed filter label

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* Polish MCP server detail views and table refinements (round 2)

10 more enterprise polish improvements:

1. Overview cards: use color-coded badges for Transport and Auth Type values
2. Overview cards: fix 'Host Url' typo -> 'Host URL', uppercase card labels
3. Settings tab: show em-dash placeholder for empty/missing values
4. Settings tab: use consistent Transport/Auth/Network badge styling matching table
5. Settings tab: definition-list layout with label/value grid columns
6. Server detail header: show server name prominently with alias as badge
7. Server detail header: show description below name, smaller server ID
8. Actions column: improved hover states with background color transitions
9. Credential column: pill badge for Connected state, shadow on Connect button
10. Table header: server count badge next to title, CTA button moved right

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

* Revert colorful transport/auth badges to neutral gray

Color should only carry semantic meaning. Transport type (HTTP/SSE) and
auth type (oauth2/bearer_token) are informational labels, not status
indicators, so they use a uniform gray badge.

Color remains on:
- Health status: green (healthy), red (unhealthy)
- Network access: green (public), orange (internal)
- Credential: green (connected)

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>
2026-03-07 13:05:46 -08:00
ryan-crabbe
ac22edf9ef
Merge pull request #23049 from BerriAI/litellm_fix_save_button_loading_member_permissions
fix(ui): use icon prop on Save Changes button to fix duplicate loading spinner
2026-03-07 12:34:22 -08:00
yuneng-jiang
2bcdb409f2
Merge pull request #23045 from BerriAI/ui_build_mar7
[Infra] Building UI for Release - Include Hashicorp Change
2026-03-07 12:27:43 -08:00
Ryan Crabbe
52e530bc8c fix(ui): use icon prop on Save Changes button to fix duplicate loading spinner
Move SaveOutlined from button children to the icon prop so Ant Design
properly replaces it with a spinner during loading state.
2026-03-07 12:15:38 -08:00
Emerson Gomes
dff4191253
fix(bedrock): remove response_data.json debug write in image edit transform (#21494) 2026-03-07 11:17:36 -08:00
yuneng-jiang
847dd5974f chore: update Next.js build artifacts (2026-03-07 19:16 UTC, node v22.16.0) 2026-03-07 11:16:29 -08:00
ryan-crabbe
fe1ee4b039
Merge pull request #23036 from BerriAI/litellm_hashicorp_vault_frontend
Litellm hashicorp vault frontend
2026-03-07 11:04:14 -08:00
Ryan Crabbe
2390ab2c2c fix: align detectAuthMethod priority with backend 2026-03-07 11:04:01 -08:00
ryan-crabbe
0367f61323
Merge pull request #23038 from BerriAI/litellm_fix_add_member_button_primary
fix(ui): make Add Member button primary with icon and loading state
2026-03-07 11:03:40 -08:00
Ryan Crabbe
e697b81b3f fix(ui): make Add Member button primary with icon and loading state 2026-03-07 10:36:39 -08:00
yuneng-jiang
bcdcc8b1b7
Merge pull request #23040 from BerriAI/ui_release_build_mar7
[Infra] Building UI for Release
2026-03-07 10:31:35 -08:00
Ryan Crabbe
536457fb31 address review: use AntD Flex/Space, extract vault API from networking 2026-03-07 10:30:40 -08:00
yuneng-jiang
621292cf7e chore: update Next.js build artifacts (2026-03-07 18:30 UTC, node v22.16.0) 2026-03-07 10:30:37 -08:00
Ryan Crabbe
0dff602423 fix: align frontend sensitive fields with backend 2026-03-07 09:18:32 -08:00
yuneng-jiang
78834b5fa4
Merge pull request #22786 from milan-berri/fix/custom-sso-handler-user-info
fix: update Okta SSO docs and custom SSO handler example
2026-03-07 08:58:54 -08:00
Ryan Crabbe
37de206c5b polish changes 2026-03-07 08:58:28 -08:00
Milan
277ad677c5 chore: remove debug print statements from custom_sso.py 2026-03-07 12:27:16 +02:00
yuneng-jiang
e5edbc629b
Merge pull request #23029 from BerriAI/litellm_config_overrides_table
[Infra] Sync Schema, Migration, Publish Proxy Extras
2026-03-06 23:41:00 -08:00
yuneng-jiang
5b0c963977 adding builds 2026-03-06 23:39:53 -08:00
yuneng-jiang
55f448abb8 bump: version 0.4.51 → 0.4.52 2026-03-06 23:39:08 -08:00
yuneng-jiang
315d04e92c
Merge pull request #23021 from BerriAI/litellm_fix_chat_root_path
[Fix] UI Chat - SERVER_ROOT_PATH not respected for chat and back-to-console links
2026-03-06 23:31:27 -08:00
yuneng-jiang
cb0d01ff26
Merge pull request #23028 from BerriAI/revert-22938-litellm_fix_team_usage_spend
Revert "[Fix] Team Usage Spend Truncated Due to Pagination"
2026-03-06 23:23:30 -08:00
yuneng-jiang
034e83e716
Revert "[Fix] Team Usage Spend Truncated Due to Pagination" 2026-03-06 23:23:20 -08:00
Harshit Jain
edf96886da
Merge pull request #23027 from BerriAI/litellm_validate_key_alias_format
feat: feature flag on validate key alias
2026-03-07 12:52:43 +05:30
Harshit28j
1452237ec6 fix req changes 2026-03-07 12:45:49 +05:30
Harshit28j
e33b26a45a doc: add about flag feature 2026-03-07 12:42:04 +05:30
Harshit28j
d78752b85b feat: feature flag on validate key alias 2026-03-07 12:32:21 +05:30
Harshit Jain
4f4225fdbf
Merge pull request #23020 from Harshit28j/litellm_feat_guardrails_tags
feat: support list of modes in tag-based guardrails
2026-03-07 12:15:18 +05:30
yuneng-jiang
be379b7b1e
Merge pull request #22722 from atapia27/feat/org-exclusive-add-member
org-exclusive-add-member
2026-03-06 22:24:05 -08:00
yuneng-jiang
aae0c81cd1 [Fix] UI Chat - respect SERVER_ROOT_PATH for chat and back-to-console links
The Chat button in the navbar and the "back to Developer Console" link
in ChatPage used the `serverRootPath` module variable directly, which is
initialized to "/" and only updated after `getUiConfig` resolves. Since
React does not re-render on module variable changes, the links computed
their hrefs with the stale default, ignoring any configured
SERVER_ROOT_PATH.

Both components now call `useUIConfig()` (React Query, cached) to
reactively read `server_root_path`, matching the pattern used elsewhere
in the UI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 22:07:45 -08:00
yuneng-jiang
39c5adcff1
Merge pull request #23019 from BerriAI/litellm_redis_txn_buffer_check
[Fix] Block proxy startup when use_redis_transaction_buffer has no Redis
2026-03-06 22:01:37 -08:00
yuneng-jiang
b70ba3e6ed Update error message for missing Redis config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:59:44 -08:00
Harshit28j
f18f4e3bbd feat: allow multiple calls from tags 2026-03-07 11:24:18 +05:30
Harshit Jain
497be5fb11
Merge pull request #23001 from Harshit28j/litellm_fix3458
Fix OTEL span redundancy, orphaned guardrail traces, and missing response IDs
2026-03-07 11:14:06 +05:30