litellm/litellm
Yujong Lee b4bfd92a2a refactor(rust): route-neutral callback contract
Every legacy callback call from callbacks-legacy now goes through one typed
Python shim, litellm.rust_bridge.legacy_callbacks, the only Python module
the crate reaches. Before, the crate called Logging methods, litellm.utils
hooks, the logging worker, the executor and several litellm globals
directly, and its tests retyped those signatures by hand, so an outdated
fake could accept a call the real code rejects. python_contract.json lists
each shim function's parameters: a Python test pins it to the real
signatures and a Rust test pins it to the Rust enum.

The lifecycle contract changes to match the Python @client wrapper:
- the driver emits CallEvent::Started before begin, so every host sees one
  start time
- RequestContext carries the route-resolved api_key, so legacy pre_call and
  post_call receive it, and post_call's additional_args match the Python OCR
  path
- Passthrough and its re-aliasing are gone
- async deployment hooks always run, and the "no callbacks" shortcut that
  skipped the logging payload is removed, as in the Python path

The OCR api_key is a SecretValue from the wire request onward, so Debug
output upstream of the callback contract cannot leak it.

host-python's RouteHost now classifies native failures once through
classify, and host ops return HostOpError. The OCR route host keeps main's
public errors by sending both through the existing Python map_failure.
2026-09-18 15:43:08 -07:00
..
a2a_protocol fix(a2a): narrow discovery status codes through a structural protocol 2026-09-17 17:17:21 -07:00
anthropic_interface route stuff through dispatch no direct main 2026-09-17 11:06:46 -07:00
assistants
batch_completion
batches Merge pull request #41138 from BerriAI/litellm_bedrock_files_s3_endpoint_url 2026-09-18 15:04:01 -07:00
caching refactor(proxy): trim the invalidation docstrings and inject the page read failure 2026-09-16 16:41:13 -07:00
chat_completions route stuff through dispatch no direct main 2026-09-17 11:06:46 -07:00
completion_extras style(responses_bridge): apply ruff format 2026-09-16 23:52:53 +00:00
compression merge: main into litellm_headroom_protect_cached_prefix 2026-09-15 04:12:28 +00:00
containers
endpoints/speech/speech_to_completion_bridge
evals
experimental_mcp_client fix(mcp): reject missing upstream authentication credentials 2026-09-15 18:06:00 -07:00
files feat(vertex_ai): stream GCS batch output files from /v1/files/{id}/content 2026-09-16 23:03:22 +00:00
fine_tuning
google_genai
images feat(azure_ai): support FLUX.2 flex images 2026-09-15 12:25:19 -05:00
integrations Merge remote-tracking branch 'origin/main' into litellm_lazy_fastapi_bpe_imports 2026-09-18 01:14:48 +00:00
interactions refactor(interactions): remove expired use_legacy_interactions_schema shim 2026-09-17 20:14:07 +00:00
litellm_core_utils refactor(rust): route-neutral callback contract 2026-09-18 15:43:08 -07:00
llms Merge pull request #41554 from BerriAI/litellm_deepgram_listen_websocket_passthrough 2026-09-18 14:48:37 -07:00
messages route stuff through dispatch no direct main 2026-09-17 11:06:46 -07:00
models fix(proxy): resolve temporary budget grants against the live team default instead of a snapshot 2026-09-18 02:09:09 +00:00
ocr merge: port OCR request validation and upstream error mapping onto main's dispatch layout 2026-09-17 18:33:20 +00:00
passthrough Merge pull request #41557 from BerriAI/litellm_azure_speech_passthrough 2026-09-18 14:05:55 -07:00
proxy Merge pull request #41838 from BerriAI/litellm_fix_tpm_window_reset_sibling_counters 2026-09-18 15:23:05 -07:00
proxy_auth
rag Merge remote-tracking branch 'origin/main' into litellm_bedrock_rag_retrieval_filter 2026-09-15 15:21:57 -07:00
realtime_api fix(bedrock): merge main and thread aws_session_tags through the auth struct 2026-09-18 10:41:52 -07:00
repositories fix(proxy): write team member spend as one roster checked upsert statement 2026-09-18 13:54:16 -07:00
rerank_api
responses Merge remote-tracking branch 'origin/main' into litellm_fix_responses_ws_litellm_params_leak 2026-09-18 13:32:23 -07:00
router_strategy fix(router): reject a blank Jev api_key so it cannot pair with a caller-chosen api_base 2026-09-17 16:38:54 -07:00
router_utils Merge pull request #41062 from BerriAI/litellm_mistral_codex_reasoning_effort_client_metadata 2026-09-18 14:43:58 -07:00
rust_bridge refactor(rust): route-neutral callback contract 2026-09-18 15:43:08 -07:00
sandbox
search
secret_managers refactor(vault): type the KV read body walk as Mapping[str, object] 2026-09-18 09:28:20 +00:00
skills feat(skills): semantic search over the LiteLLM-hosted skill registry (#39401) 2026-09-07 12:28:38 -07:00
types Merge pull request #41138 from BerriAI/litellm_bedrock_files_s3_endpoint_url 2026-09-18 15:04:01 -07:00
vector_store_files
vector_stores
videos
__init__.py Merge pull request #41062 from BerriAI/litellm_mistral_codex_reasoning_effort_client_metadata 2026-09-18 14:43:58 -07:00
_internal_context.py fix(proxy): price one cost estimate at one moment 2026-09-07 18:38:12 -07:00
_lazy_imports.py fix(lazy_imports): type import_map as Mapping to stay under the LIT001 budget 2026-09-05 16:12:45 -07:00
_lazy_imports_registry.py fix(vertex_ai): keep reasoning_effort unsupported on Vertex AI Mistral partner models 2026-09-18 13:16:56 -07:00
_logging.py Merge pull request #40934 from BerriAI/litellm_fix_ocr_native_multipage_pdf 2026-09-16 18:06:11 -07:00
_redis.py fix(redis): accept every truthy flag and sign serverless ElastiCache caches 2026-09-10 10:13:03 -04:00
_redis_credential_provider.py fix(redis): accept every truthy flag and sign serverless ElastiCache caches 2026-09-10 10:13:03 -04:00
_service_logger.py
_uuid.py
_version.py
anthropic_beta_headers_config.json Merge pull request #41203 from clonylu/fix/anthropic-thinking-binding-beta-header 2026-09-18 12:50:55 -07:00
anthropic_beta_headers_manager.py
blog_posts.json
budget_manager.py
constants.py Merge pull request #41324 from BerriAI/litellm_daily_global_spend_table 2026-09-18 14:53:08 -07:00
cost.json
cost_calculator.py Merge pull request #41318 from BerriAI/litellm_ws_responses_service_tier_pricing 2026-09-15 17:23:35 -07:00
exceptions.py make test pass 2026-09-17 08:55:59 -07:00
main.py Merge pull request #41511 from BerriAI/litellm_foundry_a2a_entra_agents 2026-09-18 11:44:14 -07:00
model_prices_and_context_window_backup.json Merge pull request #41554 from BerriAI/litellm_deepgram_listen_websocket_passthrough 2026-09-18 14:48:37 -07:00
policy_templates_backup.json
provider_endpoints_support_backup.json fix(ocr): send each provider a health-check document it accepts 2026-09-04 22:52:12 -07:00
py.typed
router.py Merge pull request #40878 from BerriAI/litellm_null_cost_unpriced_deployments 2026-09-18 14:20:52 -07:00
scheduler.py
setup_wizard.py
timeout.py
utils.py Merge pull request #41062 from BerriAI/litellm_mistral_codex_reasoning_effort_client_metadata 2026-09-18 14:43:58 -07:00