kerry
2edea0be08
test(integration): assert recount pins and unique fixture request ids
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 00:36:18 +00:00
kerry
a841750d46
test(integration): proxy behaviour cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-20 00:19:56 +00:00
kerry
98ea6dd405
test(integration): drop redundant cost_header defaults
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 23:46:45 +00:00
kerry
a4488fccca
test(integration): add provider wire cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 23:45:51 +00:00
kerry
789f0c61bf
test(integration): only accept omitted breakdown components when the case expects zero, fix xai output cost
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 23:12:43 +00:00
kerry
c7113f043a
test(integration): use per-run request ids, drop unbillable perplexity search case
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 23:01:25 +00:00
kerry
72b007a4ae
test(integration): pricing dimension and provider cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 22:46:43 +00:00
kerry
110d4c2ad1
test(integration): add passthrough cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 22:05:57 +00:00
kerry
247c4dd68f
Merge remote-tracking branch 'origin/litellm_cost_shard_harness_extensions' into litellm_cost_shard_audio_images
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# tests/integration/contracts.json
# tests/integration/cost_calculation/cost_tracking_case.py
# tests/integration/cost_calculation/cost_tracking_cases.json
2026-09-19 21:25:39 +00:00
kerry
5b97d98b7b
test(integration): require persisted cost breakdowns unless a case opts out
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 21:24:56 +00:00
kerry-berri
8323bef0e3
Merge pull request #42010 from BerriAI/litellm_cost_shard_responses_messages
...
test(integration): native responses and messages cost cases
2026-09-19 14:20:31 -07:00
kerry
c0c5cc84f8
test(integration): audio, image and per-unit cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 21:19:29 +00:00
kerry
ca8d0e500c
test(integration): correct responses reasoning and messages tiered expectations
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 20:11:24 +00:00
kerry
22d3441789
Merge branch 'litellm_cost_shard_harness_extensions' into litellm_cost_shard_responses_messages
2026-09-19 19:53:49 +00:00
kerry
8907a1d1fc
test: add native responses and messages cost cases
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 19:52:43 +00:00
kerry
9bd648baf5
test(integration): price fireworks cached input at the 50% default
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 19:22:25 +00:00
kerry
dccb1b56b4
test(integration): reject out-of-range failure statuses at import
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 19:17:46 +00:00
kerry
e42f3f1562
test: fix cost harness review issues
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 19:10:04 +00:00
kerry
c958f9db7e
test: extend cost tracking integration harness
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 18:44:51 +00:00
ryan-crabbe-berri
659cef0f57
Merge pull request #40729 from BerriAI/litellm_lit7572_top_keys_user_column
...
fix(ui): show user attribution in Top Virtual Keys usage tables
2026-09-19 11:32:35 -07:00
ryan-crabbe-berri
82fd632153
test(ui): share one chart bar lookup across Top Virtual Keys tests
...
The key_exists chart test added a second direct DOM lookup for the Recharts bars, which exposes no role or label, and pushed testing-library/no-node-access over its budget (709 > 707). Both chart tests now go through one helper
2026-09-19 11:22:01 -07:00
kerry-berri
fc5f6c4b50
Merge pull request #41964 from BerriAI/litellm_registry_audit_20260919
...
fix(model_prices): drop anthropic deprecation floors and correct azure gpt-4.1-nano retirement date
2026-09-19 11:18:32 -07:00
yucheng-berri
2542ea0320
Merge pull request #41787 from BerriAI/litellm_llm_guard_proxy_call_types
...
fix(llmguard): accept proxy async call types
2026-09-19 11:17:21 -07:00
ryan-crabbe-berri
89bf870225
fix(ui): stop Top Virtual Keys from opening keys that are not in the database
...
/user/daily/activity now reports key_exists on each api key's metadata, true
only when the key is in the active key table that /key/info reads. Top Virtual
Keys renders the Key ID as plain text with an explanatory tooltip and ignores
chart bar clicks when key_exists is false, so deleted keys and CLI/SSO session
keys no longer dead-end on a "Key not found in database" toast
2026-09-19 11:08:21 -07:00
Devin AI
107ec2706b
style(ui): format Top Virtual Keys aggregation test
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 11:04:46 -07:00
Devin AI
88799f6f80
fix(ui): fall back to user id in Top Virtual Keys user column
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 11:04:46 -07:00
Devin AI
e93fe60512
fix(ui): hide Top Virtual Keys user column when rows carry no user
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 11:04:26 -07:00
Devin AI
3d805e5166
fix(ui): show user attribution in Top Virtual Keys usage tables
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 11:04:26 -07:00
yucheng-berri
2886b8ee27
Merge pull request #41939 from BerriAI/litellm_responses_missing_input_400
...
* fix(proxy): return 400 instead of 500 for /v1/responses without input
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(proxy): validate input before starting background responses polling
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(proxy): validate responses input after prompt template expansion
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-19 11:02:30 -07:00
yucheng
c38dda2b2f
fix(llmguard): drop call types the proxy never routes through moderation
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 17:57:47 +00:00
tin-berri
77a4624f13
Merge pull request #41920 from BerriAI/litellm_claude_auto_cache_providers
...
fix(caching): scope automatic breakpoints to supported Claude transports
2026-09-19 12:54:30 -05:00
yucheng-berri
b6758159dd
Merge pull request #41982 from BerriAI/litellm_otel_v2_langfuse_embedding_output
...
* fix(otel v2): summarize embedding vectors as Langfuse observation output
The v2 LLM span built its output only from response choices, so /v1/embeddings
rendered a Langfuse generation with input, usage and cost but a blank output.
Embedding calls now carry an EmbeddingOutput(count, dimensions) summary that the
Langfuse mapper serializes as the observation output, and they are exported with
the embedding observation type instead of generation. Chat and Responses output
mapping is unchanged.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(otel v2): keep embedding observations typed as generation in Langfuse
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-19 10:53:13 -07:00
yucheng
c4d6c3046e
fix(otel v2): keep embedding observations typed as generation in Langfuse
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 17:38:20 +00:00
yuneng-jiang
d0f60fcdec
Merge pull request #41985 from BerriAI/litellm_config_shadows_db_warning
...
feat(proxy): say when a stored setting is ignored because the config file owns it
2026-09-19 10:36:01 -07:00
Yassin Kortam
4487a9915b
Merge pull request #41915 from BerriAI/litellm_distributed_tpm_shared_redis_check
...
fix(router): enforce model tpm limits against shared redis usage across replicas
2026-09-19 10:22:25 -07:00
Yuneng Jiang
7353b779c2
feat(proxy): say when a stored setting is ignored because the config file owns it
...
The config file winning over the database was silent. An admin who had set
a value through the UI and later pinned the same key in the file saw their
stored value quietly stop applying, with nothing said at boot and nothing
said when a later write was refused.
Startup now warns once per key whose stored value differs from the file's,
naming the key and what to do about it. The refusal raised on a write to a
config-owned key carries the same sentence, so the log and the 400 read
identically, and both call out that a stored value exists and will never be
applied. The /config/update refusal gained the same detail.
Keys the file does not declare are untouched: the database still owns them,
and a stored value equal to the file's is not worth a warning.
2026-09-19 10:20:31 -07:00
yujonglee
bd82d73ca1
Merge pull request #41981 from BerriAI/litellm_rust_typed_pyo3
...
refactor(rust): use typed pyo3 APIs instead of getattr/import strings
2026-09-19 10:09:34 -07:00
Tin Chi Lo
2b086dc7aa
fix(caching): scope automatic breakpoints to supported Claude transports
2026-09-19 09:55:38 -07:00
yujonglee
209a780992
Merge pull request #41977 from BerriAI/litellm_rust_sealed_request_textract
...
feat(rust): add Amazon Textract to litellm.ocr and sign provider requests after host hooks
2026-09-19 09:53:07 -07:00
yucheng
c5181f6178
fix(otel v2): summarize embedding vectors as Langfuse observation output
...
The v2 LLM span built its output only from response choices, so /v1/embeddings
rendered a Langfuse generation with input, usage and cost but a blank output.
Embedding calls now carry an EmbeddingOutput(count, dimensions) summary that the
Langfuse mapper serializes as the observation output, and they are exported with
the embedding observation type instead of generation. Chat and Responses output
mapping is unchanged.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 16:52:25 +00:00
Yujong Lee
619a19b8a2
refactor(rust): use typed pyo3 APIs instead of getattr/import strings
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 16:46:34 +00:00
kerry-berri
5d28684016
Merge pull request #41966 from BerriAI/litellm-providers/price-sync-azure
...
chore(prices): sync Azure prices: 5 models, 5 deprecated
2026-09-19 09:41:53 -07:00
Devin AI
2f1c8669ec
fix(model_prices): drop anthropic "not sooner than" floors from deprecation_date
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 16:40:05 +00:00
kerry-berri
6718fd67fb
Merge pull request #41328 from BerriAI/litellm_e2e_cost_calculation_scripted_provider
...
test(integration): literal request/response cost tracking suite on a test-owned cost map
2026-09-19 09:40:04 -07:00
Mateo Wang
f9d4979d21
Merge pull request #41946 from BerriAI/litellm_deflake_20260919
2026-09-19 09:38:25 -07:00
yucheng
13b05af06e
fix(proxy): validate responses input after prompt template expansion
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 16:34:53 +00:00
Yujong Lee
eb502824f0
fix stuff
2026-09-19 09:32:46 -07:00
berriai-litellm-provider-info-sync[bot]
196a631835
chore(prices): sync Azure prices: 5 models, 5 deprecated
...
azure/eu/gpt-4.1-nano: deprecation_date
azure/gpt-4.1-nano: deprecation_date
azure/gpt-4.1-nano-2025-04-14: deprecation_date
azure/us/gpt-4.1-nano: deprecation_date
azure/us/gpt-4.1-nano-2025-04-14: deprecation_date
2026-09-19 16:30:59 +00:00
yucheng
012d82d85d
fix(llmguard): scan input and prompt even when messages is present
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-19 16:30:11 +00:00
joshua-berri
f08b787685
Merge pull request #41975 from BerriAI/litellm_fix_azure_snapshot_fallback_test
...
test(utils): isolate dated model fallback from pricing additions
2026-09-19 16:20:51 +00:00