|
1 | 1 | # CHANGELOG |
2 | 2 |
|
| 3 | +## 3.9.0 (2026-01-23) |
| 4 | + |
| 5 | +MLflow 3.9.0 includes several major features and improvements |
| 6 | + |
| 7 | +Features: |
| 8 | + |
| 9 | +- [Prompts] Prompt Optimization backend PR 2: Add CreatePromptOptimizationJob and CancelPromptOptimizationJob (#20115, @chenmoneygithub) |
| 10 | +- [Tracing] Auto-navigate to Events tab when clicking error spans (#20188, @anshuman-sahu) |
| 11 | +- [Tracing] Support shift+select for Traces (#20125, @B-Step62) |
| 12 | +- [UI] Ml61127/remove experiment type selector inside experiment page (#20161, @ispoljari) |
| 13 | +- [UI] Ml61126/remove nested sidebars within gateway and experiments tab (#20160, @ispoljari) |
| 14 | +- [UI] [ML-61124]: add selector for workflow type in top level navbar (#20158, @ispoljari) |
| 15 | +- [Tracking] Add skops saving format for lightgbm flavor (#20151, @WeichenXu123) |
| 16 | +- [Docs / Evaluation] Documentation for online evaluation / scoring (#20103, @dbczumar) |
| 17 | +- [Prompts / UI] Feat/render md in prompt registry (#19615, @iyashk) |
| 18 | +- [UI] Current Page context to assistant (#20139, @joelrobin18) |
| 19 | +- [Evaluation / Prompts / Tracing] Add GePaAlignmentOptimizer for judge instruction optimization (#19882, @alkispoly-db) |
| 20 | +- [Prompts] Add option to delegate saving dspy model to dspy module.save API (#19704, @WeichenXu123) |
| 21 | +- [Tracking] Full docker image support with db (#19979, @serena-ruan) |
| 22 | +- [UI] Assistant regenerate button (#20066, @joelrobin18) |
| 23 | +- [UI] Copy button Assistant (#20063, @joelrobin18) |
| 24 | +- [Prompts] [Prompt Optimization Backend PR #1] Wrap prompt optimize in mlflow job (#20001, @chenmoneygithub) |
| 25 | +- [Tracing] SpringAI Integration (#19949, @joelrobin18) |
| 26 | +- [Tracking] Add --experiment-name option to mlflow experiments get command (#19929, @alkispoly-db) |
| 27 | +- [Models] Safe model serialization: Support saving pytorch model via `torch.export.save` (#19692, @WeichenXu123) |
| 28 | +- [Tracking] Add `import_checkpoints` API for databricks SGC Checkpointing with MLflow (#19839, @WeichenXu123) |
| 29 | +- [Evaluation / Tracing] Merge MLflow Assistant branch (#20011, @B-Step62) |
| 30 | +- [UI] Enable Scorers UI feature flags (#19842, @danielseong1) |
| 31 | +- [] Support mlflow.genai.to_predict_fn for app invocation endpoints (#19779, @jennsun) |
| 32 | +- [Tracing] Support distributed tracing (#19920, @WeichenXu123) |
| 33 | +- [UI] [UI] Improve LLM judge creation modal UX and variable ordering (#19963, @danielseong1) |
| 34 | +- [Prompts] Support Jinja2 template in prompt registry (#19772, @B-Step62) |
| 35 | +- [Evaluation] Add Phoenix (Arize) third-party scorer integration (#19473, @debu-sinha) |
| 36 | +- [Evaluation] Introduce MemAlign as a new optimizer for judge alignment (#19598, @smoorjani) |
| 37 | +- [Tracking] Safe model serialization: Deprecate unsafe python model model logging / loading (#18832, @WeichenXu123) |
| 38 | +- [Prompts] Support metaprompting in mlflow.genai.optimize_prompts() (#19762, @chenmoneygithub) |
| 39 | +- [UI] [UI] Hide instructions section for built-in LLM judges (#19883, @danielseong1) |
| 40 | +- [] Safe model serialization: Add serialization format `skops`, and deprecate pickle / cloud pickle format (#18759, @WeichenXu123) |
| 41 | +- [Tracing] Reasoning in Chat UI Langchain (#19651, @joelrobin18) |
| 42 | +- [Evaluation] Integrate conversation simulation into `mlflow.genai.evaluate` (#19760, @smoorjani) |
| 43 | +- [Evaluation] Support for conversational datasets with persona, goal, and context (#19686, @SomtochiUmeh) |
| 44 | +- [Tracing] [Online Scoring][6.1/x] Add IS NULL / IS NOT NULL comparator support for trace metadata filtering (#19720, @dbczumar) |
| 45 | +- [Evaluation] Make conversation simulator work with datasets (#19845, @SomtochiUmeh) |
| 46 | +- [Build] Fix: Support `clint: disable` comments on multi-line construct end lines (#19871, @copilot-swe-agent) |
| 47 | +- [Tracing] Reasoning in Chat UI PydanticAI (#19657, @joelrobin18) |
| 48 | +- [UI] Change model provider and name to dropdown list (#19653, @chenmoneygithub) |
| 49 | +- [UI] [ Gateway ] Create common editable combo box with extra modal select (#19546, @BenWilson2) |
| 50 | +- [UI] [ Gateway ] Add security notice banner (#19538, @BenWilson2) |
| 51 | +- [Evaluation] Introduce a conversation simulator into mlflow.genai (#19614, @smoorjani) |
| 52 | +- [Evaluation] Introduce conversational guidelines scorer (#19729, @smoorjani) |
| 53 | +- [Tracking] Add `log_stream` API for logging binary streams as artifacts (#19104, @harupy) |
| 54 | +- [Tracing] Reasoning in Chat UI Gemini (#19627, @joelrobin18) |
| 55 | +- [Prompts / UI] Add traces mode to prompts details page and implement filtered traces… (#19599, @TomeHirata) |
| 56 | +- [Tracking] Support GC clean up for Historical Jobs (#19626, @joelrobin18) |
| 57 | +- [Evaluation] Support trace parsing fallback using Databricks model (#19654, @AveshCSingh) |
| 58 | +- [Evaluation] Update tool call correctness judge to accept expected tool calls (#19613, @smoorjani) |
| 59 | +- [UI] [ Gateway 10/10 ] Create Endpoint details page (#19537, @BenWilson2) |
| 60 | +- [UI] [ Gateway 9.5/10 ] Refactor the provider display for better UX (#19503, @BenWilson2) |
| 61 | +- [UI] [ Gateway 9/10 ] Add the Endpoint Edit Page (#19502, @BenWilson2) |
| 62 | +- [UI] [ Gateway 8/10 ] Add Auth config to endpoint creation (#19494, @BenWilson2) |
| 63 | + |
| 64 | +Bug fixes: |
| 65 | + |
| 66 | +- [] Fix Vertex AI model configuration (#20242, @TomeHirata) |
| 67 | +- [UI] Store gateway<>scorer binding correctly (#20176, @TomeHirata) |
| 68 | +- [Evaluation] Support SparkDF trace handling in eval (#20207, @BenWilson2) |
| 69 | +- [Evaluation] Fix tool name extraction for tool call correctness (#20201, @smoorjani) |
| 70 | +- [Prompts] Fix scorers issue in metaprompting (#20173, @chenmoneygithub) |
| 71 | +- [UI] Propagate Run id context to Assistant (#20138, @joelrobin18) |
| 72 | +- [UI] Improve scorer trace picker UX and validation (#20178, @danielseong1) |
| 73 | +- [Model Registry] Allow for model registration to use KMS auth from different workspace (#20156, @BenWilson2) |
| 74 | +- [Evaluation] Improve MemAlign optimizer for incremental judge alignment (#20049, @veronicalyu320) |
| 75 | +- [Evaluation] Fix bug with max tokens using max output tokens (#20174, @smoorjani) |
| 76 | +- [Evaluation] Fix a race condition bug when using DF inputs for genai eval (#20079, @BenWilson2) |
| 77 | +- [Tracking] Fix DATABRICKS_CONFIG_PROFILE env var detection when fetching databricks credentials (#20112, @daniellok-db) |
| 78 | +- [] Move gateway invocation validation to fastapi middleware (#20111, @TomeHirata) |
| 79 | +- [Prompts] Fix the length check in mlflow.genai.optimize_prompts() (#19993, @chenmoneygithub) |
| 80 | +- [Tracking] Enforce authorization on AJAX proxy artifact APIs (#20035, @mprahl) |
| 81 | +- [Tracking] Ensure server-provided artifact root is reused on MLflowClient calls (#19336, @mprahl) |
| 82 | +- [UI] Fix trace selection not registering in SelectTracesModal (#20099, @joelrobin18) |
| 83 | +- [UI] Fix LimitOverrunError in Assistant streaming (#20078, @joelrobin18) |
| 84 | +- [Tracing] CC Token usage (#20022, @joelrobin18) |
| 85 | +- [] Remove MLflow-specific auth_mode from LiteLLMConfig (#20059, @TomeHirata) |
| 86 | +- [UI] Assistant UI fix for dark theme (#20056, @joelrobin18) |
| 87 | +- [Tracing] Isolate runtime context between opentelemetry and mlflow (#19797, @B-Step62) |
| 88 | +- [UI] Prevent spurious 404 requests for relative image URLs in markdown (#20003, @harupy) |
| 89 | +- [] Support MLflow tracing with OpenTelemetry auto-instrumentation (#19501, @serena-ruan) |
| 90 | +- [UI] [UI] Fix session selector table column resizing and link behavior (#19927, @danielseong1) |
| 91 | +- [] Add Azure provider support in gateway configuration (#19933, @TomeHirata) |
| 92 | +- [] Propagate extra auth config to LiteLLM provider (#19931, @TomeHirata) |
| 93 | +- [Evaluation / UI] Add missing retrieval context error for retrieval scorers (#19895, @danielseong1) |
| 94 | +- [Evaluation / UI] Improve trace selection UX in scorer/judge UI (#19913, @danielseong1) |
| 95 | +- [Model Registry / Models] Fix infer_code_paths to capture transitive imports of functions/classes (#19814, @copilot-swe-agent) |
| 96 | +- [Tracking] fix for addressing rest api call latency in databricks job run (#19886, @WeichenXu123) |
| 97 | +- [UI] Enable {{trace}} variable support in sample judge evaluation (#19851, @danielseong1) |
| 98 | +- [Scoring] Check security before extracting tar file (#19557, @WeichenXu123) |
| 99 | +- [] Fix authorization header duplication (#19853, @TomeHirata) |
| 100 | +- [] Fix Gateway error handling to translate MlflowException to HTTPException (#19728, @danielseong1) |
| 101 | +- [] Remove gateway_deprecated decorator - AI Gateway is not deprecated (#19821, @copilot-swe-agent) |
| 102 | +- [Tracking] Make local artifact location creation lazy to support read-only proxy environments (#19678, @BenWilson2) |
| 103 | +- [Evaluation] fixed databricks hosted llm failure due to response_schema injection (#19741, @sinanshamsudheen) |
| 104 | +- [Evaluation] Add `@overload` annotations to `@scorer` decorator for proper type inference (#19570, @mr-brobot) |
| 105 | +- [Tracking] Add debug logging for 500 errors in catch_mlflow_exception (#19781, @harupy) |
| 106 | +- [Tracing] [Bug fix] Support search traces by string feedback / expectation values (#19719, @dbczumar) |
| 107 | +- [Tracing / UI] Fix scorer creation UX issues (#19756, @danielseong1) |
| 108 | +- [Evaluation] Fix KnowledgeRetention model parameter not propagating to inner scorer (#19753, @danielseong1) |
| 109 | +- [] [BUG] serve-artifacts is not enabled in docker-compose #19700 (#19701, @zjffdu) |
| 110 | +- [Tracing] Fix type signature loss in `@trace_disabled` decorator (#19569, @mr-brobot) |
| 111 | +- [Tracking] Fix: Return 400 instead of 500 for invalid experiment_id (#19655, @copilot-swe-agent) |
| 112 | +- [Models] Fix schema enforcement for pandas StringDtype (#19518, @harupy) |
| 113 | +- [Tracing] Fix Python 3.12 `DeprecationWarning` from `generator.throw()` in tracing (#19629, @mr-brobot) |
| 114 | + |
| 115 | +Documentation updates: |
| 116 | + |
| 117 | +- [Docs] fix: Remove `multi_class` argument from scikit-learn's `LogisticRegression` in docs (#20266, @SOORAJTS2001) |
| 118 | +- [Docs] docs: Clarify -full Docker image availability from v3.9.0 onwards (#20223, @copilot-swe-agent) |
| 119 | +- [Docs] Add doc for distributed tracing (#20027, @WeichenXu123) |
| 120 | +- [Docs] Add Judge Builder UI documentation (#20163, @danielseong1) |
| 121 | +- [Docs] Add framework integration examples for AI Gateway query-endpoint page (#20137, @TomeHirata) |
| 122 | +- [Docs] Generalize Knowledge Cutoff Note in CLAUDE.md beyond model names (#20165, @copilot-swe-agent) |
| 123 | +- [Docs] Add "Evaluation Examples" article (#19722, @achen530) |
| 124 | +- [Docs] [1/3] Add gateway tracing guide for LiteLLM, OpenRouter, and Vercel AI Gateway (#20031, @B-Step62) |
| 125 | +- [Docs] Update prompt optimization doc to include metaprompting (#19966, @chenmoneygithub) |
| 126 | +- [Docs] Reorganize gateway page structure (#19968, @TomeHirata) |
| 127 | +- [Build / Docs] Fix broken auth REST API documentation links (#19872, @copilot-swe-agent) |
| 128 | +- [Docs] Add setup and query documentation for new AI Gateway (#19804, @TomeHirata) |
| 129 | +- [Docs] Add additional eval dataset serialization examples (#19697, @BenWilson2) |
| 130 | +- [Docs] ML-60766: Add dataset schema from managed content to SDK reference page (#19676, @achen530) |
| 131 | + |
| 132 | +Small bug fixes and documentation updates: |
| 133 | + |
| 134 | +#20268, #20262, #20260, #20251, #20250, #20244, #20245, #20120, #20235, #20228, #20229, #20227, #20226, #20220, #20202, #20186, #20172, #20152, #20150, #19984, #20114, #20102, #20098, #20095, #20093, #20094, #20091, #20090, #20089, #20088, #20087, #20086, #20085, #20084, #20083, #20082, #20081, #20080, #20077, #20076, #20075, #20070, #20067, #20069, #20053, #20020, #20026, #20012, #19972, #20002, #19991, #19990, #19977, #19986, #19985, #19967, #19957, #19960, #19954, #19945, #19941, #19934, #19917, #19916, #19905, #19904, #19903, #19900, #19899, #19897, #19894, #19892, #19890, #19888, #19887, #19861, #19828, #19818, #19803, #19802, #19791, #19788, #19795, #19790, #19786, #19783, #19767, #19768, #19746, #19735, #19733, #19732, #19726, @copilot-swe-agent; #20157, #20051, #20216, #20200, #20213, #20194, #20072, #20195, #20175, #20039, #19844, #19935, #19696, @smoorjani; #20218, #20143, #20146, #20145, #20064, #20117, #20144, #20110, #20050, #20017, #20116, #20118, #19989, #19953, #19836, #19915, #19955, #19952, #19940, #19939, #19938, #19937, #19877, #19874, #19869, #19867, #19865, #19837, #19835, #19834, #19864, #19873, #19833, #19825, #19876, #19799, #19798, #19793, #19771, #19770, #19635, #19634, #19633, #19632, #19624, #19622, #19621, #19620, #19631, #19619, #19747, #19609, #19608, #19607, #19606, #19604, #19603, #19602, #19601, #19588, #19587, #19581, #19585, @serena-ruan; #20209, #20131, #20010, #20009, #19999, #19998, #19976, #19975, #19974, #19973, #19971, #19742, #19969, #19734, @daniellok-db; #20193, #20171, #20155, #20170, #20132, #20097, #20100, #20101, #19736, #19717, #19716, #19759, #19718, #19714, #19713, #19712, #19711, #19840, #19710, #19709, #19708, #19777, #19707, @dbczumar; #20204, #20164, #20192, #19997, #19925, #19850, #19914, #19774, #19721, #19673, #19623, #19668, @danielseong1; #20224, #20208, #20149, #20119, #20068, #20014, #20016, #20019, #19978, #19980, #19875, #19854, #19816, #19815, #19796, #19806, #19785, #19789, #19769, #19748, #19773, #19782, #19706, @harupy; #20215, #20210, #20212, #20142, #20183, #20121, #20141, #20140, #20124, #20073, #20062, #20065, #19893, #19912, #19464, #19857, #19401, @B-Step62; #20159, @ispoljari; #20203, #19675, #19677, #19674, @BenWilson2; #20109, #20181, #20180, #20177, #20134, #20107, #20015, #20007, #20008, #19930, #20006, #20005, #19965, #19942, #19944, #19950, #19936, #19947, #19948, #19946, #19870, #19824, #19823, #19856, #19863, #19858, #19860, #19849, #19822, #19765, #19792, #19764, #19763, #19618, @TomeHirata; #20037, #19884, #19846, #19843, #19813, @xsh310; #20130, @iyashk; #20147, #20030, #19962, #19826, @kevin-lyn; #20108, #20071, #19743, #20045, #20042, #19959, #19880, @SomtochiUmeh; #19758, @justinwei-db; #19484, #19703, #19693, #19689, #19688, #19664, #19663, #19660, #19534, #19533, @hubertzub-db; #20025, #19662, #19749, #19738, @WeichenXu123; #19981, #19964, @bbqiu; #19847, @jaceklaskowski; #19820, @Abhiii47; #19800, @shreenidhi2205; #19652, @AMRUTH-ASHOK |
| 135 | + |
3 | 136 | ## 3.9.0rc0 (2026-01-15) |
4 | 137 |
|
5 | 138 | We're excited to announce MLflow 3.9.0rc0, a pre-release including several notable updates: |
|
0 commit comments