# What changed in @grafana/scenes

> 153 changes in @grafana/scenes 6 to 8 from its official release notes, upgrade guides and advisories: 6 breaking, 26 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@grafana/scenes/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @grafana/scenes 8

### Breaking changes

- The global default option changes to render before activation, preventing flickering. (8.0.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.0.0)

### New APIs and options

- Adds the ${__theme} macro for accessing theme tokens. (8.21.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.21.0)
- VizPanel adds a runtime transformations API. (8.20.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.20.0)
- Supports transformations provided by the system and URL, allowing developers to use those transformations with SceneDataTransformer. (8.18.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.18.0)
- Adds the $__namespace macro. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Exports POST_STORM_WINDOW from SceneRenderProfiler. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Adds an All value option for dashboard default filters. (8.16.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.16.0)
- Adds a content-fit rendering mode for VizPanel. (8.16.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.16.0)
- The viz panel renderer now includes data-testid, allowing developers to identify it in tests. (8.13.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.2)
- VizPanel supports a new subtitle prop. (8.10.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.10.0)

### Behavior and default changes

- Filters now allow All interpolation. (8.22.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.22.0)
- SceneTimePicker hides time settings based on new state. (8.19.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.19.0)
- Forwards value meta to the filter. (8.16.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.16.0)
- QueryVariable fans out metric-find across multi-value datasource variables. (8.13.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.0)
- UrlSyncManager supports removing URL state for removed scene objects. (8.12.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.12.0)
- Fans out a multi-value datasource variable feeding an expression. (8.11.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.11.0)
- Dashboard error and notice status items are pushed into the panel header. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- AdHocFilters supports free-form filter expression input in the combobox. (8.1.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.1.0)

### Fixes and other changes

- Fixes a groupBy dismissal bug in filters. (8.22.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.22.0)
- Panel cleanup now preserves runtime transformation source values. (8.22.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.22.0)
- Translations were downloaded from Crowdin. (6.42.2, 8.21.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.21.2), [release notes](https://github.com/grafana/scenes/releases/tag/v6.42.2)
- Fixes the duplicate input id for group by. (8.21.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.21.1)
- Adhoc filters use the component height theme token. (8.20.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.20.0)
- Moved PanelContextProvider above PanelChrome in dashboards to fix panel context behavior. (8.18.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.18.3)
- Undo/redo support for scene objects is fixed, so developers can use undo and redo with scene objects. (8.18.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.18.2)
- CustomVariable no longer keeps a value after its dependency clears. (8.18.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.18.1)
- Fixes the incorrect border color. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Match-all pills are no longer rendered as disabled. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Localizes the native All option label. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Adds an assistant button to the panel status popup. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Empty groupBy values are no longer stored. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Fixes the variable getting out of sync when the selection is cleared. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Fixes the picker staying empty after clearing the selection. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Surfaces query errors reported only through data.errors. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- Fixes secondary query behavior. (8.17.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.17.0)
- The alert icon now links to its alert rule. (8.16.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.16.1)
- Fixes focus state when visual refresh is enabled. (8.14.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.14.0)
- Adhoc/GroupBy no longer applies variables to queries when applyMode is manual. (8.14.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.14.0)
- Shows a warning when the comparison is empty. (8.14.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.14.0)
- Shows the “show more” pill text before truncating it. (8.13.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.6)
- Adds data-plugin-id to the render boundary. (8.13.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.5)
- SceneTimeRangeCompare’s timeShiftAlignmentProcessor is now non-mutating and exported for use by developers. (8.13.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.4)
- Invalidates the fieldConfig cache on variable changes when variables are used. (8.13.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.3)
- Filters now propagate scopes and dashboard level filters to section vars. (8.13.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.13.1)
- Refresh is disabled when the scene is in image render mode. (8.12.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.12.1)
- Prevents stale cleanup from clobbering the enabled state. (8.9.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.5)
- Keys used in filters can now be reused in groupBy. (8.9.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.4)
- Ad hoc filter variables support per-key interpolation. (8.9.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.3)
- Filters no longer pass origin filters that are not applicable. (8.9.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.2)
- Fixes a name mismatch for the scope variable queryparam. (8.9.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.1)
- Passes sampled field names into arrayToDataFrame. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- Filter key fetching waits for other variables to load first. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- Fixes an issue with the multi value select on mobile. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- Improves validation for filter origins. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- Fixes the broken testId attribute. (8.9.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.9.0)
- Fixes getValue on ScopedVars. (8.2.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.6)
- Improves the error message shown when a panel plugin is out of date. (8.2.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.6)
- Panel dragging is prevented in view mode. (8.2.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.6)
- Fixes setting the wrong original filter value. (8.2.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.5)
- Skips legacy CircularDataFrame frames when clearing previous data. (8.2.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.4)
- Tab applies the filter and moves focus to the next focusable element. (8.2.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.3)
- Fixes the stale operator list shown in the free-form expression input. (8.2.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.3)
- VIzPanel now adds the data-viz-panel-id attribute, allowing developers to identify the panel in the DOM. (8.2.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.2.3)
- Incomplete filters are no longer stored in recents. (8.1.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.1.2)
- Filters now report interactions through behaviour. (7.3.12, 8.1.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v8.1.1), [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.12)

## @grafana/scenes 7

### Breaking changes

- The adHoc API no longer has the wide-input prop. (7.3.10) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.10)
- Support for Datagrid was dropped ahead of deprecation. (7.1.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.0)
- rxjs is now a peer dependency because its types are brittle. (7.0.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.0.1)
- @grafana/scenes and @grafana/scenes-react now define package exports, exposing only specific files and blocking access to package internals; this is a breaking change. (7.0.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.0.0)

### New APIs and options

- Adhoc introduces default groupbys. (7.3.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.0)
- The AdHoc UI adds groupby support and a unified UI. (7.2.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.2.0)
- Extended the Adhoc controller and variable to support the group-by operator, without adding UI. (7.1.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.8)
- Adds SetExactly mode to the series visibility config factory. (7.1.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.5)
- Adds getOriginalFilters as a public API on AdHocFiltersVariable. (7.1.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.4)
- Adds setOriginalFilters as a public API on AdHocFiltersVariable. (7.1.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.4)

### Behavior and default changes

- Filters default to the combobox layout. (7.4.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.4.0)
- Clears the running query count when deactivated. (7.1.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.0)

### Fixes and other changes

- Variables options search is case-insensitive, so searches no longer depend on letter case. (7.4.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.4.2)
- Clears incomplete data on deactivation to prevent stuck panels. (7.4.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.4.1)
- Adds time range validation when zooming or moving the time range backwards and forwards. (7.4.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.4.0)
- Checks metadata when deciding whether to emit transformation data, correcting the emission decision. (7.3.11) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.11)
- Dashboard filter settings are preserved when editing a panel. (7.3.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.9)
- Fixes interaction with multi-value filter pills. (7.3.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.9)
- Fixed datasource-template runtime routing for multi-select fan-out. (7.3.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.8)
- The controller method for adHoc is optional, so implementations do not need to provide it. (7.3.7) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.7)
- Introduces clearPreviousFieldValues to mitigate a React fiber memory issue. (7.3.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.6)
- Improves accessibility for Variables. (7.3.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.5)
- Filters: NonApplicability adapts to the unified experience. (7.3.4) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.4)
- Matchall filters are no longer passed to getKey methods. (7.3.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.2)
- Filters recommendations now use unified adhoc. (7.3.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.3.1)
- Groupbys are unified with filters in SQR. (7.2.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.2.1)
- Preserves value labels when storing and restoring origin filters. (7.1.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.9)
- Fixes URL sync instability for duplicate variable names. (7.1.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.9)
- Improved the collapsible state for Adhoc. (7.1.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.8)
- The collapse button announces the row title. (7.1.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.8)
- Deduplicates filters in AdHocFiltersRecommendations. (7.1.7) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.7)
- Fixes filter values for AdHocFiltersVariable. (7.1.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.6)
- Recommendations are shown only when the data source supports them. (7.1.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.3)
- Makes the self-referencing variable check more general. (7.1.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.2)
- Fixed groupBy variable update logic. (7.1.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.1)
- Passes featureToggles into applyFieldOverrides. (7.1.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.1.0)
- Adds backwards compatibility for custom variables that reference themselves. (7.0.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.0.3)
- SQR still emits when requestId changes, even if the data is identical. (7.0.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.0.3)
- GroupByVariable now subscribes to defaultValue updates and synchronizes them to value. (7.0.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v7.0.2)

## @grafana/scenes 6

### Breaking changes

- Removes the tab inactive frame detection backup mechanism from SeneRenderProfiler. (6.39.7) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.39.7)

### New APIs and options

- Adds ControlSourceRef to the variable state. (6.57.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.57.0)
- Adds a bulk validation method for origin filters. (6.56.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.56.0)
- @grafana/scenes adds support for ad hoc filters, groupby, and localvalue. (6.54.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.54.0)
- AdHocFiltersVariable supports custom placeholders. (6.53.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.53.0)
- Adds allValue to variables. (6.52.15) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.15)
- Adds the requestIdPrefix option to SceneQueryRunner. (6.52.5) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.5)
- Introduces the regexApplyTo variable field. (6.49.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.49.0)
- Variables support object values with multiple properties. (6.48.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.48.0)
- AdhocFiltersVariable exposes originFilters in links. (6.46.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.46.0)
- Adds a placement property to Data Layers. (6.42.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.42.1)
- Adds a panel-level performance attribution system. (6.41.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.41.0)

### Performance

- Fixes a performance issue with the unique key logic in UrlSyncManager. (6.40.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.40.0)

### Behavior and default changes

- GroupBy defaults to the old key retrieval method. (6.55.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.55.1)
- GroupByVariable now uses a new datasource API method. (6.55.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.55.0)
- AdHocVariable adds a collapse button and a clear all option. (6.52.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.0)
- Supports datasource drilldown recommendations and recent drilldowns. (6.50.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.50.0)
- Filters add per-panel non-applicable pills. (6.46.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.46.0)
- Decoupled AdHocFiltersComboboxRenderer from AdHocFiltersVariable, allowing the renderer to be used independently. (6.42.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.42.0)

### Fixes and other changes

- AdHocFilters exposes a way to get the original value of a default filter. (6.57.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.57.2)
- GroupByVar allows the current value to overwrite the default value. (6.57.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.57.2)
- SQR tries to preserve referential equality when data hasn't changed. (6.57.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.57.1)
- Fixes context macros. (6.57.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.57.0)
- Gets the datasource from queries when it is not on the panel. (6.54.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.54.1)
- Deduplicates properties indices when converting a QueryVariable to metric find values. (6.52.14) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.14)
- Variables options search now uses stricter input matching. (6.52.13) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.13)
- Filter values are no longer escaped in Preview. (6.52.12) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.12)
- Removes height when the grid is empty. (6.52.12) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.12)
- Fixes backspace key not removing filters properly. (6.52.11) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.11)
- SceneQueryRunner handles undefined state.data in cancelQuery. (6.52.10) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.10)
- Parsing data frames now always adds the numeric value field to MetricFindValue properties. (6.52.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.9)
- MetricFindValue parsing now allows numeric value fields. (6.52.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.8)
- Fixes setting the active index for grouped labels in AdHocVar. (6.52.7) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.7)
- Adds subs to filters and grouping changes in filtering recommendations. (6.52.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.6)
- CustomVariable preserves all JSON properties in options. (6.52.3) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.3)
- VizPanelMenuRenderer now provides PanelMenuItem.target. (6.52.2) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.2)
- Changes the Switch variable ID so it does not overlap with the dashboard control label. (6.52.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.1)
- Fixes text formatting for variables with multi-props. (6.52.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.52.1)
- Fixes breaking behavior in toMetricFindValues for variables. (6.51.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.51.0)
- Variable UI optimisations improve the GroupBy variable interface. (6.50.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.50.0)
- When a dashboard URL carries an invalid refresh value, the value is rounded down to the nearest valid refresh interval instead of defaulting to the minimum allowed value. (6.48.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.48.1)
- Fixes the applicability check on drilldown variables. (6.47.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.47.1)
- VizPanel no longer passes an empty array to titleItems. (6.47.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.47.0)
- Fixes urlSync issues that caused wrong interpolation in queries. (6.46.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.46.1)
- Switch Variable adds an id for the input. (6.46.0) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.46.0)
- Fixed UrlTimeRangeMacro so dashboard links preserve the browser timezone. (6.40.1) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.40.1)
- RefreshPicker text is translated, making it available in internationalised interfaces. (6.39.9) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.39.9)
- Preserves float gridPos values in SceneGridLayout. (6.39.8) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.39.8)
- Fixes rounding on old-style adhoc filters. (6.39.6) — [release notes](https://github.com/grafana/scenes/releases/tag/v6.39.6)
