---
title: "AG Studio Changelog"
description: "Every completed AG Studio change by release, with all breaking changes and deprecations listed across releases."
---

# AG Studio Changelog

Completed AG Studio changes, newest release first. The Breaking Changes and Deprecations sections collect those items across every release; All Changes lists every entry.

## Breaking Changes

Breaking changes across all releases, newest first.

### 3.0.0

- **AS-1345** - [Widget] Show Chart Type as Fallback Title on Widgets: - `createTitleGroup`, `createSubtitleGroup` and `createCaptionGroup` have been removed from `AgWidgetFormParams`. Pass your own groups and controls to `createTitleSection()` instead, through its `items` builder, which appends them after the built-in title, subtitle and caption groups. Its first argument controls which of those three are enabled by default.
- **AS-1264** - [Data] Require Custom Data Engines to Honour Limit/Offset and Provide _ag-row-id: Studio now checks that a grid widget's rows carry a unique, stable identifier. A missing identifier, or the same one appearing on more than one row, which is what a data engine that ignores the requested offset and limit produces, is reported through Studio's error handling, and the widget shows its no-data state instead of rendering the rows it received. A data source that already carries its own identifier should name it as rowIdField in the result metadata, so Studio uses it directly rather than computing one.
- **AS-1144** - [Data] Provide Complete Join Metadata for Custom Data Engine Queries: AgJoinClause now carries leftSourceId, naming the source the join attaches to, and leftSourceAlias to disambiguate a self-join. A query's base source is joins[0].leftSourceId, falling back to joins[0].leftField.sourceId for a hand-authored clause that omits it. A custom data engine that derived the base source for itself should read it from the clause instead.

### 2.1.0

- **AS-951** - [BI] Grid Column Header Shows Raw Fragment Instead of "Column Name (Fragment)" When Field Isn't Bound to a Calendar: Column headers for date-time fields not bound to a calendar will change from the raw fragment string to "<column name> (<fragment>)", matching the aggregation label convention. Any code or tests asserting the old header text will need updating.

### 2.0.0

- **AS-813** - [Filtering] Change inRange/between filter to be inclusive: The `between` filter operator is now inclusive of the values instead of exclusive. For exclusive behaviour, join the `greaterThan` and `lessThan` operators with an `AND`.
- **AS-811** - [Theming] Improvements to CSS selector performance: Every location where Studio elements are inserted into application-owned DOM now has a consistent structure: `application-div > div.ag-theme-x > div.ag-ltr > div.ag-some-component. The components previously had theme and/or rtl classes set directly on them, now these classes are set on a parent. If you have application CSS such as `.ag-studio-root-inner.ag-rtl { ... }` it will need updating to the new structure: `.ag-rtl .ag-studio-root-inner { ... }`
- **AS-809** - [BI] Allow Developers to Perform Widget Toolbar Actions via API: `featureConfig.exportCsv` has been removed from the widget definition (`AgBaseWidgetDefinition`). To disable CSV export for a Studio-provided widget, remove the item with id `'export'` from the `toolbar` property in the widget definition instead. The `id` property is now required for toolbar items (`AgWidgetToolbarItem`/`AgWidgetToolbarButton`) in the widget toolbar definition (`AgBaseWidgetDefinition.toolbar`). The `AgWidgetConfig.toolbar` property has been removed. The toolbar is implemented by Studio, so custom widgets should not be using it.
- **AS-790** - [Theming] Make Icons Themeable: `createStudioTheme()` no longer includes the default Studio icons. These are now exported as a part `iconSetStudio`. `createStudioTheme().withPart(iconSetStudio)` will result in the same behaviour. If using the default theme or `studioTheme`, there is no change.
- **AS-723** - [AI] Allow Direct Invocation of Individual AI Tools: AI Assistant now produces valid JSON Schema Version 2020-12. To use this with OpenAI and other providers may require simplifying the schema according to their requirements.

## Deprecations

Deprecations across all releases, newest first.

_None recorded._

## All Changes

Every changelog entry, grouped by release.

### 3.0.0

| Issue | Type | Summary |
| --- | --- | --- |
| AS-1414 | Defect | [Widget] Block Cross Highlight on 100% Stacked Bar and Column Charts |
| AS-1406 | Feature Request | [UX] Allow Clearing Undo/Redo History on Edit/View Mode Switch |
| AS-1382 | Feature Request | [Widget] Allow Users to Enable a Total Label on Donut Charts |
| AS-1345 | Feature Request | [Widget] Show Chart Type as Fallback Title on Widgets |
| AS-1325 | Feature Request | [Widget] Allow Custom Widgets to Request All Available Fields from the Schema |
| AS-1320 | Feature Request | [Widget] Allow legendKey on the Combo Chart Widget's Column Series |
| AS-1317 | Defect | [Build] Studio's Global Module Registration Causes Erroneous Trial Watermark in Host Apps |
| AS-1264 | Defect | [Data] Require Custom Data Engines to Honour Limit/Offset and Provide _ag-row-id |
| AS-1261 | Feature Request | [Data] Allow AG Studio to Push Down Sort to Server-Side Data Sources |
| AS-1260 | Feature Request | [Data] Allow AG Studio to Push Down Filters to Server-Side Data Sources |
| AS-1257 | Feature Request | [UX] Display AG Grid Errors Only When Dev Validations Are Enabled |
| AS-1256 | Feature Request | [Data] Suppress AG Grid's Internal Duplicate/Undefined Row ID Warning Dialog |
| AS-1223 | Feature Request | [Widget] Allow Resetting Any Settings Section to Page or System Default |
| AS-1199 | Feature Request | [Widget] Allow Custom Cell Renderers in Grid Widgets |
| AS-1198 | Feature Request | [BI] Allow Users to Add Filters from View Mode |
| AS-1155 | Feature Request | [BI] Allow Users to Edit Developer-Created Expressions |
| AS-1153 | Feature Request | [Widget] Allow Legend Field Input to Line and Area Charts |
| AS-1148 | Feature Request | [BI] Allow Filters to Have Apply/Cancel Buttons |
| AS-1144 | Feature Request | [Data] Provide Complete Join Metadata for Custom Data Engine Queries |
| AS-1143 | Defect | [BI] Field Detail Edits Persisted Only on the Current Page |
| AS-894 | Feature Request | [Widget] Allow Column Header Text Wrapping |
| AS-823 | Feature Request | [Widget] Allow Users to Add Sparklines to KPI Widgets |
| AS-699 | Feature Request | [Data] Allow AG Studio to Push Down Pagination to Server-Side Data Sources |
| AS-697 | Feature Request | [UX] Allow Users to Undo and Redo Dashboard Changes |
| AS-691 | Feature Request | [BI] Allow Users to Create and Edit Calculations in the UI |

### 2.1.2

| Issue | Type | Summary |
| --- | --- | --- |
| AS-1189 | Defect | When not run in a secure context with the crypto API, an error is thrown |
| AS-1183 | Defect | [Build] Turbopack Minifier Produces Invalid Octal Escape in AG Studio ESM Bundle |

### 2.1.1

| Issue | Type | Summary |
| --- | --- | --- |
| AS-1136 | Defect | When using AG Grid Enterprise with a grid-only license alongside AG Studio, an invalid license message is displayed in AG Grid |

### 2.1.0

| Issue | Type | Summary |
| --- | --- | --- |
| AS-1066 | Feature Request | [Widget] Relative Time Filter Type For Filters Panel |
| AS-1047 | Feature Request | [UX] Allow Swapping Widget Positions on the Canvas via a Keyboard Key |
| AS-1044 | Defect | [Regression] Sorting a Chart Widget by the y-axis Has No Effect |
| AS-1043 | Defect | [Widget] Stacked Percentage Numeric Axis Not Formatted as Percentage |
| AS-965 | Defect | [BI] [Regression] Count and Count Distinct Aggregations Missing for Date and Datetime Series Fields |
| AS-962 | Defect | [BI] Format Preview Shows Raw Token Text Instead of a Formatted Example for Grain Format Options |
| AS-955 | Defect | [BI] "Ungrouped" Option Should Be Labelled "None" and Styled Consistently for All Date Fields |
| AS-953 | Feature Request | [Widget] Allow Title to Wrap Onto Multiple Lines |
| AS-951 | Defect | [BI] Grid Column Header Shows Raw Fragment Instead of "Column Name (Fragment)" When Field Isn't Bound to a Calendar |
| AS-950 | Feature Request | [BI] Allow Users to Expand, Format and Add Date Grain Hierarchies via a Nested Data Panel Pill |
| AS-948 | Feature Request | [Widget] Show Tooltip on Truncated Title/Subtitle |
| AS-946 | Defect | [BI] Calendar Grain and Rate/Date Columns Use Inconsistent, Non-Localised Date Formats |
| AS-881 | Defect | [BI] Custom Bucket Types Registered via createBuckets Are Silently Dropped |
| AS-863 | Feature Request | [Data] Server-Side API for Pivot |
| AS-733 | Defect | [UX] Resizing and dragging a widget around sometimes it reverts to its original size |

### 2.0.1

| Issue | Type | Summary |
| --- | --- | --- |
| AS-877 | Defect | [Regression] Custom Engine Widget Queries Are Missing Their Join Chain |

### 2.0.0

| Issue | Type | Summary |
| --- | --- | --- |
| AS-874 | Defect | [Docs] Adopted JavaScript calendar example won't launch in Plunker |
| AS-838 | Defect | [UX] Interacting With the Data Panel Clears Widget Selection |
| AS-829 | Defect | [BI] Date Values Collapse to 1970-01-01 in Grouped Datasets Over 16,384 Rows |
| AS-820 | Feature Request | [UX] Update widget navigation and selection keyboard shortcuts |
| AS-819 | Feature Request | [Widget] Allow Legend Field Input to Scatter and Bubble Charts |
| AS-815 | Defect | [BI] Chart Widget Export Uses Transparent Background |
| AS-814 | Defect | [BI] Chart Widget Export Omits Title |
| AS-813 | Feature Request | [Filtering] Change inRange/between filter to be inclusive |
| AS-811 | Feature Request | [Theming] Improvements to CSS selector performance |
| AS-810 | Feature Request | [UX] Allow Developers to Customise the Widget Toolbar |
| AS-809 | Feature Request | [BI] Allow Developers to Perform Widget Toolbar Actions via API |
| AS-804 | Defect | [UX] When Selection Changes, Focus is Stolen/Lost from Input |
| AS-801 | Feature Request | [Widget] Allow Interpolation for Line/Area Charts |
| AS-790 | Feature Request | [Theming] Make Icons Themeable |
| AS-786 | Defect | [Studio] Text Widget Body and KPI Caption Don't Respond to Theme Font Params |
| AS-780 | Feature Request | [Widget] Allow Users to Combine Multiple Measures and a Legend Field in Bar and Column Charts |
| AS-762 | Feature Request | [Doc] Add Sankey / Map to Custom Widget Examples |
| AS-758 | Defect | [Widget] Fix typing of widgets Studio property and AgWidgetConfig |
| AS-757 | Defect | [Filters] Reloading Data Doesn't Refresh Selection Options If It's Open During the Update |
| AS-752 | Feature Request | [Widget] Allow Developers to Hide Form Inputs and Set Values via API |
| AS-723 | Feature Request | [AI] Allow Direct Invocation of Individual AI Tools |
| AS-681 | Feature Request | [Widget] Allow Legend Field Input to All Bar and Column Chart Types |
| AS-524 | Feature Request | [Widget] Enable Hierarchy Label Toggle |
| AS-521 | Feature Request | [Widget] DateTime Filter Support |
| AS-441 | Feature Request | [Widget] Allow Users to Create Combo Charts |
| AS-266 | Feature Request | [Widgets] Allow Data Labels for Chart Widgets |
| AS-189 | Feature Request | [Widget] Multi-select Data Input |
| AS-176 | Feature Request | [Widgets] Pie/Donut Chart Data Label Callout Behaviour |

### 1.1.1

| Issue | Type | Summary |
| --- | --- | --- |
| AS-750 | Defect | Date aggregation shows all values as epoch |

### 1.1.0

| Issue | Type | Summary |
| --- | --- | --- |
| AS-680 | Feature Request | [Widget] Chart Data CSV Export |

### 1.0.1

| Issue | Type | Summary |
| --- | --- | --- |
| AS-504 | Feature Request | [AI] Improve AX of AI Assistant |
