Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
f796036
feat(proxy): add --reload flag for uvicorn hot reload (dev only)
ryan-crabbe-berri Apr 16, 2026
5c0d0cb
Merge remote-tracking branch 'origin/main' into litellm_feat-add-relo…
ryan-crabbe-berri Apr 18, 2026
9bea02c
Merge remote-tracking branch 'origin/litellm_internal_staging' into l…
ryan-crabbe-berri Apr 18, 2026
65a60db
[Infra] CI: add UI drift guard + regenerate _experimental/out
cursoragent Apr 19, 2026
004c6b1
[Infra] Dockerfile.non_root: stage pre-built UI from _experimental/out
cursoragent Apr 19, 2026
78485f5
[Infra] Dockerfile.non_root: remove unused npm from runtime stage
cursoragent Apr 19, 2026
ca52e34
[Infra] Dockerfile.non_root: slim C toolchain in builder stage
cursoragent Apr 19, 2026
e24c02f
[Infra] Dockerfile.non_root: add BuildKit uv cache mount
cursoragent Apr 19, 2026
4c8cbaf
[Refactor] Dockerfile.non_root: drop dead lines and shrink build context
cursoragent Apr 19, 2026
ea12bae
Merge pull request #25901 from BerriAI/litellm_feat-add-reload-flag-p…
ryan-crabbe-berri Apr 20, 2026
db49885
[Refactor] Dockerfile.non_root: drop UI drift guard approach
yuneng-berri Apr 20, 2026
995bff0
[Fix] Dockerfile.non_root: drop prisma --version sanity call
yuneng-berri Apr 20, 2026
a19bff4
Feature/add audio support for scaleway (#26110)
nhyy244 Apr 20, 2026
386f334
Prompt Compression - add it to the proxy (#25729)
krrish-berri-2 Apr 20, 2026
4f823ce
Add supported providers to prompt caching doc (#26124)
Michael-RZ-Berri Apr 20, 2026
9aee0da
fix: /health/readiness 503 loop when DB is unreachable (#26134)
ishaan-berri Apr 20, 2026
3bae051
[Refactor] revert _experimental/out regeneration; leave to release ru…
yuneng-berri Apr 20, 2026
3745ba2
replace retired claude-3-haiku-20240307 with claude-haiku-4-5-2025100…
ryan-crabbe-berri Apr 20, 2026
353e406
[Refactor] remove orphaned _experimental/out build artifacts
yuneng-berri Apr 20, 2026
505f6e0
[Fix] Apply black formatting to fix CI lint failures
yuneng-berri Apr 20, 2026
7979044
Merge pull request #26140 from BerriAI/litellm_fix_black_formatting
yuneng-berri Apr 20, 2026
74169b1
replace retired claude-3-haiku-20240307 with claude-haiku-4-5-2025100…
ryan-crabbe-berri Apr 20, 2026
eee51a9
replace retired claude-3-haiku-20240307 with claude-haiku-4-5-2025100…
ryan-crabbe-berri Apr 20, 2026
bb62099
[Fix] CI - auth_ui_unit_tests: use Postgres sidecar instead of shared DB
yuneng-berri Apr 20, 2026
e7bc316
Litellm krrish staging 04 20 2026 (#26138)
krrish-berri-2 Apr 20, 2026
60d3796
Merge pull request #26139 from BerriAI/litellm_fix-retired-haiku-model
ryan-crabbe-berri Apr 20, 2026
ba82016
Merge pull request #26141 from BerriAI/litellm_/relaxed-moser-92f086
yuneng-berri Apr 20, 2026
0ecc89c
Merge branch 'litellm_internal_staging' into litellm_non-root-dockerf…
yuneng-berri Apr 20, 2026
9deefc0
fix: align MCP broker endpoint access controls with existing auth pat…
yuneng-berri Apr 20, 2026
7b43f59
[Fix] CI: split test_proxy_utils.py into its own proxy-db matrix entry
yuneng-berri Apr 20, 2026
99f007f
refactor: consolidate redirect_uri scheme check into shared handler
yuneng-berri Apr 20, 2026
b6de470
fix: add access control to register endpoint to match authorize and t…
yuneng-berri Apr 21, 2026
b9bedc8
Merge pull request #26055 from BerriAI/litellm_non-root-dockerfile-op…
yuneng-berri Apr 21, 2026
1702b51
Merge pull request #26142 from BerriAI/litellm_mcp_broker_endpoint_auth
yuneng-berri Apr 21, 2026
ccf9283
[Infra] Speed up proxy unit tests by replacing litellm reload with st…
yuneng-berri Apr 21, 2026
c770756
fix(bedrock_guardrails): route apply_guardrail to OUTPUT for response…
shivamrawat1 Apr 21, 2026
6beba97
test(bedrock_guardrails): assert apply_guardrail maps response to OUT…
shivamrawat1 Apr 21, 2026
5411ebe
[Fix] conftest snapshot: also reset scalar module attributes
yuneng-berri Apr 21, 2026
0f5d503
fix(ci): make e2e_ui_testing actually test the freshly built UI bundle
yuneng-berri Apr 21, 2026
4b3f5d7
[Fix] conftest: flush cache instances and warn on silent skips
yuneng-berri Apr 21, 2026
7656e26
fix: align user and org spend checks with atomic counter pattern
yuneng-berri Apr 21, 2026
c2b7c4b
fix: skip personal budget check in MaxBudgetLimiter for team-key requ…
yuneng-berri Apr 21, 2026
7cc22db
Merge pull request #26047 from BerriAI/litellm_ui-api-double-prefix-a8a3
shin-berri Apr 21, 2026
583bdd3
fix(bedrock): allowlist Bedrock Invoke body fields and filter all ant…
SwiftWinds Apr 21, 2026
6da9ee9
Merge remote-tracking branch 'origin/litellm_internal_staging' into l…
SwiftWinds Apr 21, 2026
11b7769
chore: make `uv` newer than 0.10 allowable
SwiftWinds Apr 21, 2026
62c2c55
Merge remote-tracking branch 'upstream/litellm_internal_staging' into…
shivamrawat1 Apr 21, 2026
bb46d36
Merge pull request #26182 from BerriAI/litellm_budget_spend_counter_a…
yuneng-berri Apr 21, 2026
b39f210
[Infra] Add freshness and destructive guards to migration workflow
yuneng-berri Apr 21, 2026
5b007ad
[Docs] Fix docstring inaccuracies in run_migration.py
yuneng-berri Apr 21, 2026
165c503
Merge pull request #26150 from BerriAI/litellm_/serene-bohr-4bb54c
shin-berri Apr 21, 2026
e0cc158
Merge remote-tracking branch 'upstream/litellm_internal_staging' into…
shivamrawat1 Apr 21, 2026
df9d6c7
Merge pull request #26148 from BerriAI/litellm_fix-bedrock-invoke-all…
mateo-berri Apr 21, 2026
a16c00e
[Feature] Proxy: opt-in v2 migration resolver (--use_v2_migration_res…
yuneng-berri Apr 21, 2026
ee550e1
[Test] CI: add v2 migration resolver coverage with local Postgres
yuneng-berri Apr 21, 2026
7752683
Merge pull request #26185 from BerriAI/litellm_/interesting-wright-95…
yuneng-berri Apr 21, 2026
88b1823
[Test] Fix setup_database call-signature assertions for v2 flag
yuneng-berri Apr 21, 2026
8a4a775
fix(logging): add litellm_call_id to StandardLoggingPayload and OTel …
ishaan-berri Apr 21, 2026
9049f37
[Fix] v2 migration resolver: address Greptile review findings
yuneng-berri Apr 21, 2026
a302613
feat(bedrock): add support for bedrock-mantle endpoint (Claude Mythos…
ishaan-berri Apr 21, 2026
2b8b950
[Fix] v2 resolver: swallow non-connection DB errors; wrap resolve fai…
yuneng-berri Apr 21, 2026
8d52b1e
Merge remote-tracking branch 'origin/litellm_internal_staging' into l…
yuneng-berri Apr 21, 2026
93cb065
Merge pull request #26197 from BerriAI/litellm_yj_apr20
yuneng-berri Apr 21, 2026
5dc2926
Merge pull request #26194 from BerriAI/litellm_fix_migration_thrashing
yuneng-berri Apr 21, 2026
d9494b6
Merge pull request #26144 from BerriAI/litellm_post_call_non_streaming
yuneng-berri Apr 22, 2026
27a105b
fix: give each team member an independent budget instead of sharing t…
shivamrawat1 Apr 22, 2026
5770af0
Merge branch 'litellm_internal_staging' into litellm_individual-team-…
shivamrawat1 Apr 22, 2026
5837d4a
bump: version 1.83.10 → 1.83.11
yuneng-berri Apr 22, 2026
e65d547
adding uv lock
yuneng-berri Apr 22, 2026
e3ed136
Merge pull request #26209 from BerriAI/yj_bump_apr21_2
yuneng-berri Apr 22, 2026
eebb80f
Merge pull request #26208 from BerriAI/litellm_individual-team-member…
yuneng-berri Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 73 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,14 @@ jobs:
auth:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
- image: cimg/postgres:16.0
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: litellm_test
working_directory: ~/project
environment:
DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/litellm_test"

steps:
- checkout
Expand All @@ -463,12 +470,14 @@ jobs:
paths:
- ./.venv
key: v2-dependencies-{{ checksum "uv.lock" }}-{{ checksum ".circleci/config.yml" }}
- wait_for_service:
url: tcp://localhost:5432
timeout: "60"
- run:
name: Run prisma ./docker/entrypoint.sh
name: Seed DB schema via prisma db push
command: |
set +e
chmod +x docker/entrypoint.sh
./docker/entrypoint.sh
uv run --no-sync litellm --skip_server_startup --use_prisma_db_push
set -e
- run:
name: Generate Prisma Client
Expand Down Expand Up @@ -1520,7 +1529,50 @@ jobs:
command: |
pwd
ls
uv run --no-sync python -m pytest -vv tests/local_testing/test_basic_python_version.py
uv run --no-sync python -m pytest -vv tests/local_testing/test_basic_python_version.py -k "not v2_resolver"

installing_litellm_on_python_v2_migration_resolver:
docker:
- image: cimg/python:3.11
auth:
username: ${DOCKERHUB_USERNAME}
password: ${DOCKERHUB_PASSWORD}
- image: cimg/postgres:16.0
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: litellm_test
working_directory: ~/project
environment:
DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/litellm_test"

steps:
- checkout
- setup_google_dns
- run:
name: Install Dependencies
command: |
curl -LsSf -o /tmp/uv-install.sh https://astral.sh/uv/0.10.9/install.sh
echo "7fc46e39cb97290b57169c0c813a17970585ac519139f19006453c99b5f2f45f /tmp/uv-install.sh" | sha256sum -c -
env UV_NO_MODIFY_PATH=1 sh /tmp/uv-install.sh
rm -f /tmp/uv-install.sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$BASH_ENV"
export PATH="$HOME/.local/bin:$PATH"
if [ -f "$HOME/miniconda/etc/profile.d/conda.sh" ]; then
export PATH="$HOME/miniconda/bin:$PATH"
source "$HOME/miniconda/etc/profile.d/conda.sh"
conda activate myenv
fi
uv sync --frozen --all-groups --all-extras --python "$(which python)"
- setup_litellm_enterprise_pip
- wait_for_service:
url: tcp://localhost:5432
timeout: "60"
- run:
name: Run v2 migration resolver proxy smoke test
command: |
uv run --no-sync python -m pytest -vv \
tests/local_testing/test_basic_python_version.py::test_litellm_proxy_server_config_no_general_settings_v2_resolver

installing_litellm_on_python_3_13:
docker:
Expand Down Expand Up @@ -1554,7 +1606,7 @@ jobs:
command: |
pwd
ls
uv run --no-sync python -m pytest -v tests/local_testing/test_basic_python_version.py
uv run --no-sync python -m pytest -v tests/local_testing/test_basic_python_version.py -k "not v2_resolver"
helm_chart_testing:
machine:
image: ubuntu-2204:2023.10.1 # Use machine executor instead of docker
Expand Down Expand Up @@ -3042,10 +3094,19 @@ jobs:
- ui/litellm-dashboard/node_modules
- run:
name: Build UI from source
# Prior version used `cp -r out/ ../../litellm/proxy/_experimental/out/`.
# GNU cp (used on CircleCI's Ubuntu image) interprets that as "copy the
# source directory as a child of the destination" when the destination
# already exists — silently creating `_experimental/out/out/` instead of
# replacing the served bundle. The proxy continued serving whatever was
# checked into `_experimental/out/*`, so this job was effectively testing
# the pre-build bundle on every run. Replace-and-move guarantees the
# freshly built bundle is what the proxy actually serves.
command: |
cd ui/litellm-dashboard
npm run build
cp -r out/ ../../litellm/proxy/_experimental/out/
rm -rf ../../litellm/proxy/_experimental/out
mv out ../../litellm/proxy/_experimental/out
# Restructure HTML so extensionless routes work (login.html -> login/index.html)
find ../../litellm/proxy/_experimental/out -name '*.html' ! -name 'index.html' | while read -r f; do
d="${f%.html}"; mkdir -p "$d"; mv "$f" "$d/index.html"
Expand Down Expand Up @@ -3526,6 +3587,12 @@ workflows:
only:
- main
- /litellm_.*/
- installing_litellm_on_python_v2_migration_resolver:
filters:
branches:
only:
- main
- /litellm_.*/
- helm_chart_testing:
requires:
- build_docker_database_image
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/test-unit-proxy-db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,15 @@ jobs:
test-path: "tests/proxy_unit_tests/test_auth_checks.py tests/proxy_unit_tests/test_user_api_key_auth.py"
workers: 8
timeout: 20
# test_proxy_utils.py is large (168+ parametrized tests) — run it on its
# own matrix so --dist=loadscope doesn't pin all of it to a single xdist
# worker and push the "remaining" group past the job timeout.
- test-group: proxy-utils
test-path: "tests/proxy_unit_tests/test_proxy_utils.py"
workers: 8
timeout: 20
- test-group: remaining
test-path: "tests/proxy_unit_tests --ignore=tests/proxy_unit_tests/test_key_generate_prisma.py --ignore=tests/proxy_unit_tests/test_auth_checks.py --ignore=tests/proxy_unit_tests/test_user_api_key_auth.py"
test-path: "tests/proxy_unit_tests --ignore=tests/proxy_unit_tests/test_key_generate_prisma.py --ignore=tests/proxy_unit_tests/test_auth_checks.py --ignore=tests/proxy_unit_tests/test_user_api_key_auth.py --ignore=tests/proxy_unit_tests/test_proxy_utils.py"
workers: 8
timeout: 30
uses: ./.github/workflows/_test-unit-services-base.yml
Expand Down
Loading
Loading