| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-04 | 18.5 kB | |
| v3.12.0 source code.tar.gz | 2026-05-04 | 271.9 MB | |
| v3.12.0 source code.zip | 2026-05-04 | 277.0 MB | |
| Totals: 3 Items | 548.9 MB | 2 | |
MLflow 3.12.0 includes several major features and improvements
Major New Features
- 🖼️ Multimodal Tracing: Users can now store multimodal content in tracing spans as artifact attachments instead of inline binary data. We've also patched the UI to support the new mlflow-attachment:// style URI, with rich rendering available for PDFs, audio, and images.
- 🤖 Codex, Gemini, Qwen coding agent tracing support: Similar to our Claude Code tracing integration, we've now added support for the Codex, Gemini, and Qwen coding agent platforms as well!
- 🛡️ Gateway guardrails: You can now set guardrails on your gateway endpoints to prevent unsafe or non-compliant model inputs and outputs. Try it out in the MLflow UI!
- ⚡ Trace table pagination: The traces tab is now paginated, rather than fetching all traces up to a limit of 1000. This improves initial load time, and makes the page feel more responsive overall.
Breaking Changes
- [Scoring] Deprecate
enable_mlserverin pyfunc serving backend (#22994, @B-Step62)
Other Assorted Features & Improvements:
- [UI] Add coding agents section to AI Gateway quick start (#23006, @TomeHirata)
- [Tracing] feat: record caller in gateway traces from request headers (#22926, @TomeHirata)
- [] Run guardrails on passthrough endpoints; skip
response_formatfor non-chat payloads (#22856, @TomeHirata) - [] Gateway: preserve client auth header for subscription-based CLI tools (
claude-cli,Codex-Desktop,GeminiCLI) (#22915, @TomeHirata) - [Tracing] Expose Codex and Qwen Code hooks as installable CLI binaries (#22853, @kriscon-db)
- [Tracking / UI] Add Portkey as a supported AI Gateway provider (#22830, @sairavuri-sudo)
- [Tracking] Cache successful basic-auth credential checks to eliminate per-request PBKDF2 (#22817, @PattaraS)
- [] Add
last_updated_atfield to model catalog entries (#22838, @copilot-swe-agent) - [Evaluation] Enable third-party scorer registration in OSS MLflow (#22634, @smoorjani)
- [] Add platform-side telemetry fields to Gateway invocation and budget events (#22557, @PattaraS)
- [Tracing] Auto-start SQL warehouse before V4/V5 MLflow tracing calls (#22798, @artjen)
- [Tracing] Migrate Claude Code tracing to TypeScript-based plugin for simpler installation and runtime handling. (#22338, @B-Step62)
- [Tracing] Add TypeScript Qwen Code tracing via Stop hook (#22411, @kriscon-db)
- [] Support
model_kwargsin DeepEval scorers for LLM parameter control (#22494, @debu-sinha) - [] Add Application Default Credentials auth mode for Vertex AI gateway (#22754, @harupy)
- [UI] Reorganize Settings into section-based routing with sub-sidebar navigation (#22743, @serena-ruan)
- [Tracing] Add TypeScript Codex CLI tracing via
notifyhook (#22410, @kriscon-db) - [Tracing / UI] Add Share button to trace detail view (#22608, @alkispoly-db)
- [Docs / Models] Add
mlflow.diffusersflavor for diffusion model LoRA adapters (#22253, @Rasaboun) - [Tracing] Add size limit for trace attachments (#22575, @kriscon-db)
- [Tracing] Add
GeminiCliTranslatorfor Gemini CLI OTLP span type mapping (#22409, @kriscon-db) - [Tracing] Add JSON OTLP encoding support for trace ingestion (#22408, @kriscon-db)
- [Tracing] Extract
service.namefrom OTLP resource attributes for usage telemetry (#22407, @kriscon-db) - [Tracing] Add MLflow tracing spans to guardrail execution in gateway (#22581, @TomeHirata)
- [Tracing / UI] Add rendering size guards for large media content (#22574, @kriscon-db)
- [Tracking] [#21037] Add presigned upload URL endpoint for S3 artifact uploads (#21039, @henishborad)
- [UI] Add Guardrails tab to endpoint editor (#22360, @TomeHirata)
- [UI] Add click-to-expand modal for trace attachment images (#22461, @kriscon-db)
- [UI] Enhance Gateway quick start cards with logos, multi-model options, and compact variant (#22513, @xq-yin)
- [Tracing] Add @mlflow/vercel for better Vercel AI SDK tracing in Databricks UC (#22105, @dbrx-euirim)
- [UI] [UI] Refactor API keys page: bulk delete, inline drawer editing, consistent list pattern (#22485, @xq-yin)
- [] Add
Guardrailbase class andJudgeGuardrailimplementation (#21964, @TomeHirata) - [Tracing] Add multimodal demo traces with synthetic image and audio data (#22465, @kriscon-db)
- [] [FR] [#22217] Add configurable provider allow/deny list to AI Gateway (#22291, @etirelli)
- [UI] [UI] Add bulk duplicate and delete actions to AI Gateway endpoints table (#22404, @xq-yin)
- [UI] Redesign endpoint details model section with unified Model card (#22376, @xq-yin)
- [] Add
X-MLflow-Gateway-Duration-MsandX-MLflow-Gateway-Overhead-Duration-Msresponse headers (#22229, @PattaraS) - [UI] Redesign AI Gateway endpoint details: Overview tab, starter code, and Try in Browser (#22284, @xq-yin)
- [] Add guardrail proto definitions, server handlers, and REST store (#21962, @TomeHirata)
- [Build] Add
aiohttpas a core dependency ofmlflow(#22189, @TomeHirata) - [] Add gateway guardrail DB layer: schema, store methods, and tests (#21960, @TomeHirata)
- [UI] Add quick-start template cards to AI Gateway empty state (#22249, @xq-yin)
- [Tracing / UI] Add freeform Notes section to trace assessments pane (#21676, @smoorjani)
- [Tracing / UI] [UI] Improve traces table visual design and UX (#20424, @ridgupta26)
- [UI] Improve Image Grid chart UX for multi-run image comparison (#22118, @Rasaboun)
- [Models] Add
base_model_pathparameter to save PEFT adapter-only with local base model reference (#22052, @rpathade) - [Tracking] Add
mlflow db move-resourcescommand to move resources between workspaces (#21263, @mprahl) - [Tracking] feat(tracking): Add composite index on metrics (run_uuid, key, step) (#21727, @ravidarbha)
Bug fixes:
- [Tracing / Tracking] Redact presigned URL credentials in urllib3 retry logs (#22995, @B-Step62)
- [Tracing] Fix assessment logging silently dropped in distributed tracing (#22963, @serena-ruan)
- [] Filter
_list_budget_windowsresults by active workspace when request is workspace-scoped (#22885, @copilot-swe-agent) - [Models / Scoring] Fix uv custom index URLs omitted from model
requirements.txt(#22921, @serena-ruan) - [Tracing / UI] Set
mlflow.message.formaton gateway passthrough spans to enable Chat tab (#22916, @TomeHirata) - [Server-infra] Add RBAC regression tests + gateway validator fix (#22862, @PattaraS)
- [Server-infra] Include role-based grants in
list_accessible_workspace_names(#22864, @PattaraS) - [Tracing] Preserve cache_read tokens in claude_code tracing for cache observability (#22683, @dgokeeffe)
- [Tracing] Fix
InferenceTableSpanProcessorinit for opentelemetry-sdk 1.41.0 (#22867, @harupy) - [UI] Fix audio artifact viewer failing in non-default workspaces (#22811, @harupy)
- [Tracking] Fix O(n^2) body buffering in
WSGIMiddlewarefor large uploads (#22729, @harupy) - [Tracking] Propagate
workspace_idasX-Databricks-Org-Idheader for SPOG support (#22554, @B-Step62) - [UI] Fix sessions pagination not auto-loading after virtualizer settles (#22808, @daniellok-db)
- [Tracing] Fix
_get_token_usagedropping zero-valued token counts (#22748, @copilot-swe-agent) - [Tracing] Fix
_get_token_usagedropping cache token fields (#22818, @harupy) - [UI] Remove rendering size guards from artifact image and video views (#22816, @kriscon-db)
- [UI] Disable
Create GuardrailinAddGuardrailModaluntil aGuardrail Modelendpoint is selected (#22766, @copilot-swe-agent) - [UI] Disable
Guardrailstab inEditEndpointFormRendererwhenendpoint.experiment_idis null, refresh i18n messages, and fix JS type-check follow-ups (#22757, @copilot-swe-agent) - [] Fix OPENAI_API_KEY requirement when guardrails use gateway:/ judge model (#22769, @TomeHirata)
- [Tracking] Fix ABFSS URI double-encoding in
_parse_abfss_uri(#22759, @artjen) - [UI] Persist immediate gateway usage-tracking updates and preserve dirty edits in
useEditEndpointForm(#22734, @copilot-swe-agent) - [] Fix Vertex AI gateway
globallocation handling for Gemini 3 models (#22696, @harupy) - [Tracing] Fix
ValueError: Circular reference detectedcrash indump_span_attribute_value(pydantic_ai autolog) (#22693, @barry3406) - [Tracing] Add Bedrock Converse models to model catalog (#22515, @ajgassner)
- [Tracing] Fix incorrect cost calculation for Anthropic cached requests (#22516, @ajgassner)
- [UI] Disable Create button when experiment name is empty (#22649, @ssam18)
- [Tracing] Fix
AsyncHttpxClientWrapperAttributeErrorby avoidingdeepcopyinTraceJSONEncoder(#22742, @harupy) - [Evaluation] Fix JSON parsing failure for judge model responses containing newlines (#22736, @harupy)
- [Evaluation] Fix non-ASCII characters being escaped in judge template variables (#22728, @harupy)
- [Tracking] Fix pandas 3.x
datetime64resolution compatibility incast_df_types_according_to_schema(#22705, @copilot-swe-agent) - [Tracing] Fix conversation simulator adding wrapper span that breaks custom scorers (#21321, @B-Step62)
- [] Fix Bedrock tool-use chat response parsing (#22677, @lavaFreak)
- [UI] Fix AI Gateway provider dropdown by flattening OpenAI / Azure OpenAI (#22701, @harupy)
- [Evaluation / Tracing] Preserve
predict_fnsignature in simulation turn tracing (#22610, @rogalski) - [Tracing / Tracking] fix: Extract
cached_tokensin OpenAI streaming responses to correct cost tracking (#22620, @Rishabh-git10) - [Tracing / UI] Auto-select first endpoint and API key in issue detection modal (#22633, @serena-ruan)
- [Model Registry] Use SQL
MAX()increate_model_versioninstead of loading all rows (#22635, @neolunar7) - [Tracing] Add modality/tool pricing extraction to
dev/update_model_catalog.py, backfillanthropic.json/gemini.json, and skipreasoningmodality pricing (#22699, @copilot-swe-agent) - [Tracing] Fix pydantic-ai
run_stream_syncautologging broken byAgentSpecforward reference in_returns_sync_streamed_result(#22666, @copilot-swe-agent) - [UI] Unify execution duration cell rendering in session header rows (#22631, @daniellok-db)
- [] Implement guardrail execution in gateway API handlers (#22306, @TomeHirata)
- [Tracing / Tracking] Fast-path trace-id search in frontend to avoid
spans.contentscan (#22433, @harupy) - [UI] Fix tag cutoff in prompts table (#22507, @nananosirova)
- [Scoring] Fix pandas 3.0
StringDtypemismatch incast_df_types_according_to_schema(#22537, @copilot-swe-agent) - [Tracing] Fix exception propagation in
@mlflow.tracewithin@trace_disabledcontext (#22501, @harupy) - [UI] [UI] Show header and breadcrumb on gateway usage page when no endpoints exist (#22445, @xq-yin)
- [Model Registry] Fix performance degradation for single-tenant installation (#22405, @abaland)
- [UI] Render attachments inline in Details & Timeline span view (#22451, @kriscon-db)
- [UI] Skip markdown rendering for oversized chat content to prevent browser freezes (#22464, @kriscon-db)
- [UI] Render attachment images embedded in complex JSON structures (#22462, @kriscon-db)
- [UI] Handle
input_filecontent type in Responses API chat rendering (#22466, @kriscon-db) - [UI] Fall back to OpenAI parser for LangChain traces with OpenAI-format data (#22456, @kriscon-db)
- [UI] Combine multi-part Responses API input into a single chat message (#22459, @kriscon-db)
- [UI] Render text content before audio parts in chat messages (#22460, @kriscon-db)
- [Tracing] Handle Gemini SDK bytes repr format in
inline_dataextraction (#22453, @kriscon-db) - [UI] Show all output fields alongside attachment renderings in summary view (#22449, @kriscon-db)
- [UI] Handle single dict
contentsin Gemini chat input normalization (#22455, @kriscon-db) - [UI] Fix audio player not loading on first render in attachment view (#22450, @kriscon-db)
- [UI] Allow Gemini chat rendering when
rolefield is omitted (#22454, @kriscon-db) - [Evaluation] Add server side check for registering custom scorer (#22381, @WeichenXu123)
- [UI] [UI] Cache gateway provider/model queries to eliminate redundant fetches (#22440, @xq-yin)
- [Tracing] Eager-load trace relationships in
search_traces(#22431, @harupy) - [Model Registry] Fix cross-workspace
copy_model_versionfailure caused byget_logged_modelcall (#22262, @TomeHirata) - [UI] [UI] Fix endpoint details to display all API keys for multi-model endpoints (#22406, @xq-yin)
- [UI] Fix tag cutoff in experiments table (#21871, @nananosirova)
- [Tracking] Fix
rename_experimentinSqlAlchemyStoreto enforce 500-char name limit (#22418, @copilot-swe-agent) - [Tracking] Fix download_artifacts and list_artifacts returning wrong status for missing artifacts (#22310, @Karim-siala)
- [Docs / Tracing] Enable async trace logging by default for OSS MLflow (#22304, @PattaraS)
- [UI] Show Save/Cancel buttons only when endpoint has unsaved changes (#22367, @xq-yin)
- [UI] Remove
mp4fromAUDIO_EXTENSIONSto fix video artifact preview (#22350, @copilot-swe-agent) - [Evaluation] Fix
MetaPromptOptimizerfailing on prompts with no template variables (#22301, @alkispoly-db) - [Prompts / UI] Fix misleading placeholder text in
PromptsListFilters(#22321, @copilot-swe-agent) - [Evaluation] Fix
make_judgewithbool/numeric types not reporting aggregated metrics inevaluate()(#22302, @alkispoly-db) - [UI] Fix dark mode CSS not consistently applied in compare runs page (#22254, @DaoDaoNoCode)
- [Tracking] Fix 500 error in
start_tracewhen merging traces with existing metrics (#22257, @alkispoly-db) - [Model Registry / Tracing / Tracking] Fix
_all_tables_existto deriveexpected_tablesfromBase.metadatadynamically (#22128, @copilot-swe-agent) - [UI] Hide 'Show more columns' button when runs are selected (#21867, @nananosirova)
- [Evaluation] Support
T | Noneas top-levelfeedback_value_typeinmake_judge(#22201, @copilot-swe-agent) - [UI] Fix dataset details drawer: local source display, profile parsing, broken link (#22143, @Rasaboun)
- [Tracking] Fix
--static-prefixnot applied to/api/REST routes (#22159, @TomeHirata) - [Tracing / Tracking] Map user.id span attribute to mlflow.trace.user during OTel ingestion (#22150, @ajgassner)
Documentation updates:
- [Docs] Docs: Add AI Gateway CLI Tools pages (Claude Code, Codex, Gemini CLI) (#22918, @TomeHirata)
- [Docs / Tracing / UI] Add documentation for Codex CLI, Gemini CLI, and Qwen Code tracing (#22412, @kriscon-db)
- [Docs] Add Live Demo documentation page for demo.mlflow.org (#22840, @serena-ruan)
- [Docs] Docs: Adds Middleware in the tracing section for integrated observability platforms (#22791, @luharshekhar2000-dot)
- [Docs / UI] Rename guardrail stage terminology to
Pre-LLM/Post-LLMacrossguardrail_utils.py, Gateway API, UI, docs, andguardrailValidation.ts(#22767, @copilot-swe-agent) - [Docs] Fix
EvaluationDatasettype references in GenAI datasets docs (#22761, @harupy) - [Docs] docs: add guardrails documentation for AI Gateway (#22577, @TomeHirata)
- [] Allow different PGPORT in docker compose (#22646, @riklopfer)
- [Docs] Remove
docs/docs/genai/governance/ai-gateway/legacy/*and redirect legacy AI Gateway routes toai-gateway/index(#22579, @copilot-swe-agent) - [Docs] Remove unused parameter from
invocation()function example in manual tracing docs (#22524, @prithvipal) - [Docs] Document
uv run --frozenflag for offline/no-network usage inCLAUDE.md(#22505, @copilot-swe-agent) - [Docs] Add documentation for multimodal trace attachments (#21783, @kriscon-db)
- [Docs] Add AI Gateway Performance & Benchmarks docs page (#22390, @copilot-swe-agent)
- [Docs] Update changelog for 3.11.0 release (#22394, @WeichenXu123)
Small bug fixes and documentation updates:
[#22993], [#22978], [#21482], [#21321], [#22559], [#21319], [#22483], [#22346], [#22091], @B-Step62; [#22919], [#22925], [#22854], [#22821], [#22786], [#22820], [#22615], [#22819], [#22781], [#22703], [#22565], [#22200], [#22193], @serena-ruan; [#22869], [#22863], [#22843], [#22839], [#22837], [#22815], [#22765], [#22762], [#22749], [#22708], [#22486], [#22481], [#22471], [#22401], [#22366], [#22278], [#22281], @harupy; [#22848], [#22775], [#22764], [#22763], [#22772], [#22527], [#22435], [#22358], [#22357], [#22356], [#22355], [#22261], [#22259], [#22202], [#22234], [#22243], @TomeHirata; [#22824], @vinh412; [#22805], [#22804], [#22803], [#22802], [#22801], [#22800], [#22447], [#22632], [#22735], [#22697], [#22691], [#22508], [#22628], [#22567], [#22482], [#22441], [#22273], [#22272], [#22190], [#22434], [#22154], [#22147], [#22144], [#22268], [#22241], [#22187], [#22074], @daniellok-db; [#22557], [#22722], [#22807], [#22721], [#22558], [#22589], [#22319], [#22145], [#21789], @PattaraS; [#22825], [#22783], [#22789], [#22787], [#22784], [#22782], [#22757], [#22771], [#22770], [#22758], [#22756], [#22755], [#22744], [#22737], [#22715], [#22718], [#22714], [#22713], [#22711], [#22710], [#22707], [#22704], [#22700], [#22692], [#22686], [#22690], [#22689], [#22688], [#22684], [#22685], [#22682], [#22670], [#22669], [#22668], [#22667], [#22664], [#22663], [#22662], [#22655], [#22657], [#22659], [#22601], [#22580], [#22578], [#22576], [#22563], [#22550], [#22549], [#22548], [#22547], [#22545], [#22544], [#22541], [#22540], [#22539], [#22538], [#22511], [#22532], [#22529], [#22528], [#22526], [#22523], [#22525], [#22519], [#22518], [#22517], [#22514], [#22512], [#22509], [#22510], [#22506], [#22504], [#22490], [#22488], [#22480], [#22478], [#22477], [#22470], [#22468], [#22443], [#22438], [#22436], [#21203], [#22417], [#22403], [#22413], [#22399], [#22395], [#22391], [#22392], [#22388], [#22379], [#22348], [#22347], [#22343], [#22341], [#22342], [#22340], [#22339], [#22337], [#22330], [#22329], [#22328], [#22316], [#22309], [#22305], [#22250], [#22207], [#22204], [#22198], [#22177], [#22174], @copilot-swe-agent; [#22795], @rollyjoel; [#22629], [#22730], [#22614], [#22573], [#22334], [#22502], [#22448], [#22196], [#22263], [#22186], [#22185], [#22184], [#21956], [#22183], [#22246], [#21955], @kriscon-db; [#22627], [#22238], @xsh310; [#22295], [#22212], @smoorjani; [#22463], [#22370], [#22365], [#22240], [#22226], @xq-yin; [#22473], [#22439], [#22437], @WeichenXu123; [#22387], [#21419], @mprahl; [#22382], [#22373], @SeldonAi; [#21848], @alkispoly-db; [#22160], @amotl