Change8

v3.12.0

📦 mlflowView on GitHub →
46 features🐛 20 fixes1 deprecations🔧 5 symbols

Summary

MLflow 3.12.0 introduces major features like multimodal tracing attachments and AI Gateway guardrails, alongside tracing support for Codex, Gemini, and Qwen coding agents. This release also includes numerous bug fixes, particularly around tracing and UI responsiveness.

Migration Steps

  1. When using pyfunc serving backend, update configurations to remove the deprecated `enable_mlserver` setting.

✨ New Features

  • Users can now store multimodal content in tracing spans as artifact attachments using the new mlflow-attachment:// style URI, with rich rendering for PDFs, audio, and images in the UI.
  • Added tracing support for Codex, Gemini, and Qwen coding agent platforms.
  • Ability to set guardrails on AI Gateway endpoints to validate model inputs and outputs.
  • Trace table pagination implemented to improve initial load time and responsiveness.
  • Added Portkey as a supported AI Gateway provider.
  • Added `last_updated_at` field to model catalog entries.
  • Enabled third-party scorer registration in OSS MLflow.
  • Added platform-side telemetry fields to Gateway invocation and budget events.
  • Auto-start SQL warehouse before V4/V5 MLflow tracing calls.
  • Migrated Claude Code tracing to a TypeScript-based plugin.
  • Added TypeScript Qwen Code tracing via Stop hook.
  • Support for `model_kwargs` in DeepEval scorers for LLM parameter control.
  • Added Application Default Credentials auth mode for Vertex AI gateway.
  • Reorganized Settings into section-based routing with sub-sidebar navigation.
  • Added TypeScript Codex CLI tracing via `notify` hook.
  • Added Share button to trace detail view.
  • Added `mlflow.diffusers` flavor for diffusion model LoRA adapters.
  • Added size limit for trace attachments.
  • Added `GeminiCliTranslator` for Gemini CLI OTLP span type mapping.
  • Added JSON OTLP encoding support for trace ingestion.
  • Extracted `service.name` from OTLP resource attributes for usage telemetry.
  • Added MLflow tracing spans to guardrail execution in gateway.
  • Added rendering size guards for large media content in UI.
  • Added presigned upload URL endpoint for S3 artifact uploads.
  • Added Guardrails tab to endpoint editor.
  • Added click-to-expand modal for trace attachment images.
  • Enhanced Gateway quick start cards with logos, multi-model options, and compact variant.
  • Added @mlflow/vercel for better Vercel AI SDK tracing in Databricks UC.
  • Refactored API keys page: bulk delete, inline drawer editing, consistent list pattern.
  • Added `Guardrail` base class and `JudgeGuardrail` implementation.
  • Added multimodal demo traces with synthetic image and audio data.
  • Added configurable provider allow/deny list to AI Gateway.
  • Added bulk duplicate and delete actions to AI Gateway endpoints table.
  • Redesigned endpoint details model section with unified Model card.
  • Added `X-MLflow-Gateway-Duration-Ms` and `X-MLflow-Gateway-Overhead-Duration-Ms` response headers.
  • Redesigned AI Gateway endpoint details: Overview tab, starter code, and Try in Browser.
  • Added guardrail proto definitions, server handlers, and REST store.
  • Added `aiohttp` as a core dependency of `mlflow`.
  • Added gateway guardrail DB layer: schema, store methods, and tests.
  • Added quick-start template cards to AI Gateway empty state.
  • Added freeform Notes section to trace assessments pane.
  • Improved traces table visual design and UX.
  • Improved Image Grid chart UX for multi-run image comparison.
  • Added `base_model_path` parameter to save PEFT adapter-only with local base model reference.
  • Added `mlflow db move-resources` command to move resources between workspaces.
  • Added composite index on metrics (run_uuid, key, step) in Tracking DB.

🐛 Bug Fixes

  • Redacted presigned URL credentials in urllib3 retry logs.
  • Fixed assessment logging being silently dropped in distributed tracing.
  • Filtered `_list_budget_windows` results by active workspace when request is workspace-scoped.
  • Fixed uv custom index URLs being omitted from model `requirements.txt`.
  • Set `mlflow.message.format` on gateway passthrough spans to enable Chat tab.
  • Fixed RBAC regression tests and gateway validator issue.
  • Included role-based grants in `list_accessible_workspace_names`.
  • Preserved cache_read tokens in claude_code tracing for cache observability.
  • Fixed `InferenceTableSpanProcessor` initialization for opentelemetry-sdk 1.41.0.
  • Fixed audio artifact viewer failing in non-default workspaces.
  • Fixed O(n^2) body buffering in `WSGIMiddleware` for large uploads.
  • Propagated `workspace_id` as `X-Databricks-Org-Id` header for SPOG support.
  • Fixed sessions pagination not auto-loading after virtualizer settles.
  • Fixed `_get_token_usage` dropping zero-valued token counts.
  • Fixed `_get_token_usage` dropping cache token fields.
  • Removed rendering size guards from artifact image and video views.
  • Disabled `Create Guardrail` in `AddGuardrailModal` until a `Guardrail Model` endpoint is selected.
  • Disabled `Guardrails` tab in `EditEndpointFormRenderer` when `endpoint.experiment_id` is null, and fixed related issues.
  • Fixed OPENAI_API_KEY requirement when guardrails use gateway:/ judge model.
  • Fixed ABFSS URI double-encoding in `_parse_abfss_uri`.

Affected Symbols

⚡ Deprecations

  • The `enable_mlserver` parameter in the pyfunc serving backend is deprecated.