Commit graph

36234 commits

Author SHA1 Message Date
Sameer Kankute
8210fd7e1d
fix: revert accidental _litellm_uuid import back to _uuid
The isort hook picked up a stale rename from the working directory.
Both router.py and proxy_server.py need litellm._uuid, not _litellm_uuid.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 20:57:08 +05:30
Sameer Kankute
f784beb74f
fix: re-attach model_id after endpoint cleaning, bump log level
- model_id is now added after _clean_endpoint_data() so it survives
  health_check_details: False (MINIMAL_DISPLAY_PARAMS filtering)
- Health state write failures logged at warning instead of debug

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 20:57:08 +05:30
Sameer Kankute
7675488640
feat(router): add health-check-driven routing behind opt-in flag
Background health checks now feed deployment health state into the
router candidate-filtering pipeline. Unhealthy deployments are excluded
proactively instead of waiting for request failures to trigger cooldown.

Gated by `enable_health_check_routing: true` in general_settings.
Off by default — zero behavior change for existing users.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 20:57:08 +05:30
yuneng-jiang
d3568efad0
Merge pull request #24611 from Sameerlite/Sameerlite/order-fallback2
feat(router): order-based fallback across deployment priority levels
2026-03-27 20:15:30 +05:30
Sameer Kankute
15f5dc38c4
Fix tests 2026-03-27 20:11:28 +05:30
Sameer Kankute
1fac58abb3
fix(tests): reset module-level cache in stale alias bypass tests
Reset _ENABLE_TEAM_STALE_ALIAS_BYPASS to None in both test functions
to ensure test isolation and prevent ordering-dependent failures

Made-with: Cursor
2026-03-27 20:11:28 +05:30
Sameer Kankute
7436f889ca
fix(router): address final Greptile P1/P2 comments
- Reorder team_public_model_name assignment to happen before model_name mutation for clarity
- Add comment explaining no-rename fast-exit case in _update_existing_team_model_assignment
- Add comment explaining final patch_data.model_name = None applies to all code paths

Made-with: Cursor
2026-03-27 20:11:28 +05:30
Sameer Kankute
2321d77599
fix(router): address remaining Greptile review comments
- Cache LITELLM_ENABLE_TEAM_STALE_ALIAS_BYPASS at module level to avoid hot-path secret lookups
- Add clarifying comments for should_include_deployment team isolation logic
- Add negative assertion for update_team.assert_not_called() in test
- Add docstring clarification for _get_team_deployments helper pattern
- Add explicit assertion message in test_get_model_list_alias_optimization

Made-with: Cursor
2026-03-27 20:11:28 +05:30
Sameer Kankute
592ac98ddc
fix(router): address Greptile P1/P2 review comments
- Add deduplication guard in _update_team_model_index to prevent duplicate indices
- Add wildcard comment in map_team_model for clarity
- Add monkeypatch to test_team_alias_stale_bypass_disabled_by_default for determinism
- Extract _get_team_deployments helper to centralize DB access pattern
- Add clarifying comments for team_public_model_name assignment ordering

Made-with: Cursor
2026-03-27 20:11:28 +05:30
Sameer Kankute
1a0b30aaac
Fix greptile reviews and mock test 2026-03-27 20:11:28 +05:30
Sameer Kankute
fb8d9c2e9a
Fix greptile reviews and mock test 2026-03-27 20:11:28 +05:30
Sameer Kankute
c6cc0341f6
Fix greptile reviews and mock test 2026-03-27 20:11:28 +05:30
Sameer Kankute
9a0a216195
Fix code qa issues 2026-03-27 20:11:28 +05:30
Sameer Kankute
316a742945
Fix greptile comments 2026-03-27 20:11:28 +05:30
Sameer Kankute
d02a70ab4e
Fix greptile comments 2026-03-27 20:11:28 +05:30
Sameer Kankute
fc6865c3a3
Fix greptile comments 2026-03-27 20:11:28 +05:30
Sameer Kankute
303072dc44
Fix greptile comments 2026-03-27 20:11:28 +05:30
Sameer Kankute
173695f5e0
Fix greptile comments 2026-03-27 20:11:27 +05:30
Sameer Kankute
8db867c51c
fix(routing): address state consistency and type safety issues
- Check alias target pattern to detect stale team aliases
- Fix PrismaClient type annotation to Optional
- Eliminate in-place mutation in index update logic

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
e8fb7762b3
perf(routing): optimize team model checks and improve test coverage
- Use O(1) team index lookup instead of map_team_model in alias guard
- Fix MockPrismaClient to validate where clause filters
- Add comment explaining DB query trade-off for team deployments

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
8aa58bdcaa
fix(routing): prevent stale model_aliases from interfering with team routing
- Skip model_aliases rewrite if model resolves to team deployments
- Add test coverage for sibling-preservation branch
- Update MockPrismaClient to support sibling deployment scenarios

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
298df75066
fix(router): guard None model_info and deduplicate team index logic
- Guard against None model_info in sibling deployment check
- Extract _update_team_model_index helper to eliminate duplication

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
f5b7298854
fix(management): query DB directly for sibling deployments on rename
- Add clarifying comments to test assertions
- Query prisma DB instead of in-memory router to avoid stale state
- Prevents incorrect deletion of old public name when siblings exist

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
4f302f10d0
fix(router): prevent cross-team deployment leakage in fallback path
Guard should_include_deployment fallback to only return deployments
matching the requested team_id, preventing public-name collisions
from leaking deployments across teams

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
ef9ea1f8f2
fix(router): address Greptile P1/P2 performance issues
- Guard against llm_router=None to prevent silent deletion
- Add O(1) team_model index to avoid O(n) scan on every team request

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
248fb8bc90
fix(router): address remaining Greptile P0/P1 issues
- Update map_team_model test to expect public name return
- Only remove old public name if no sibling deployments use it

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
7b5e7e05b1
fix(router): address Greptile review comments
- Add None guard for original_model_name in _add_team_model_to_db
- Remove stale old public name when renaming team model
- Add comment clarifying team deployment early-return priority

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
1835e9a252
chore(team-routing): remove temporary candidate pool logs
Remove temporary fire-emoji router logs used for local verification while keeping team sibling deployment routing behavior unchanged.

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
aeb932d707
fix(team-routing): keep team model routing on public names
Remove team model_alias rewrites and resolve team deployments by team_public_model_name with team_id so sibling deployments stay in the routing candidate pool, with explicit logs showing candidate selection before load balancing.

Made-with: Cursor
2026-03-27 20:11:27 +05:30
Sameer Kankute
5534b40ab3
fix(team-routing): use deterministic team model group names
Use a deterministic internal model_name for team-scoped deployments so sibling deployments with the same public model share a routing group. This makes team alias writes idempotent and preserves multi-deployment failover/load balancing behavior.

Made-with: Cursor
2026-03-27 20:11:27 +05:30
yuneng-jiang
b20cff8673
Merge pull request #24654 from BerriAI/litellm_publish_to_pypi_migrate
[Infra] Migrate PyPI Publishing from CircleCI to GitHub Actions OIDC
2026-03-26 19:09:00 -07:00
Yuneng Jiang
ba8455a3be
[Infra] Migrate PyPI publishing from CircleCI to GitHub Actions OIDC
- Add .github/workflows/publish_to_pypi.yml with OIDC trusted publisher
- Remove publish_to_pypi job from .circleci/config.yml
- Zero long-lived tokens, all actions SHA-pinned, build deps version-pinned
2026-03-26 19:02:14 -07:00
Krrish Dholakia
8f425ec3ff fix: update ioc to include checkmarx.zone 2026-03-26 15:43:01 -07:00
ishaan-berri
6153793f81
Merge pull request #24649 from BerriAI/ishaan-berri-patch-1
Update README.md
2026-03-26 15:22:23 -07:00
ishaan-berri
b69ce9fafa
Update README.md 2026-03-26 15:22:11 -07:00
yuneng-jiang
25feae9f0f
Merge pull request #24607 from BerriAI/litellm_gha_pin_pt_2
[Infra] Pin GHA dependencies and remove unused load test files
2026-03-26 08:47:38 -07:00
yuneng-jiang
bdf4acc472
Merge pull request #24468 from BerriAI/litellm_opencode-drop-reasoningSummary-docs
docs(opencode): add guidance for dropping reasoningSummary param
2026-03-25 23:00:56 -07:00
Yuneng Jiang
84be6f69ef fix google-cloud-aiplatform pin to be compatible with google-genai==1.22.0
Pin to 1.115.0 (latest version that doesn't require google-genai>=1.59.0).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:37:43 -07:00
Yuneng Jiang
1beb687f54 pin GHA dependencies + remove unused load test files
Pin all pip install commands to exact versions and SHA-pin all GitHub
Actions to prevent supply chain attacks. Remove snok/install-poetry
in favor of direct pip install. Delete orphaned load test scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:32:08 -07:00
Krrish Dholakia
df2a36dd27 docs: document new github + gitlab ci scripts 2026-03-25 20:17:10 -07:00
yuneng-jiang
437341c9b5
Merge pull request #24594 from BerriAI/litellm_gha_pin_helm
[Infra] Pins GitHub Action workflows to specific hashes
2026-03-25 18:17:21 -07:00
Yuneng Jiang
b90a0af0d7 remove extra @ 2026-03-25 17:46:37 -07:00
Yuneng Jiang
a989587525 re-add helm unit test with checksum pin 2026-03-25 17:38:36 -07:00
Yuneng Jiang
f86b240d7e pin github scripts + remove unused 2026-03-25 17:38:36 -07:00
ryan-crabbe-berri
0d2b454cec
Merge pull request #24490 from BerriAI/litellm_ryan-march-23
Litellm ryan march 23
2026-03-25 16:04:12 -07:00
ishaan-berri
90b850ef8e
Merge pull request #24587 from BerriAI/remove-phone-numbers
docs: remove phone numbers from readme and docs
2026-03-25 12:45:42 -07:00
Ishaan Jaffer
a2f02aa139 docs: remove phone numbers from readme and docs 2026-03-25 12:40:40 -07:00
ishaan-berri
67609e04bc
Merge pull request #24584 from BerriAI/worktree-floofy-prancing-crystal
security: remove .claude/settings.json and block re-adding via semgrep
2026-03-25 12:28:06 -07:00
Ishaan Jaffer
b77e1ccea6 security: remove .claude/settings.json and add semgrep rule to prevent re-adding 2026-03-25 11:57:43 -07:00
Krrish Dholakia
7d7045cbc1 fix: cleanup 2026-03-25 09:20:25 -07:00