**********************
FlexMeasures Changelog
**********************
v0.33.0 | May XX, 2026
============================
New features
-------------
Infrastructure / Support
----------------------
Bugfixes
-----------
v0.32.0 | April 15, 2026
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* Upgrade graph modal to support flex-config references in plots [see `PR #1926 `_ and `PR #1904 `_]
* Add a button to create forecasts from the sensor page, visible to users with permission to record data on the sensor, and enabled when at least two days of data are present [see `PR #1985 `_]
* Button on sensor page to delete data (by date range and source) [see `PR #2095 `_]
* Support inferring ``soc-at-start`` from configured ``state-of-charge`` sources and fail early when those values are stale or missing near schedule start [see `PR #2026 `_]
* UI support for editing JSON attributes on sensors, assets and accounts [see `PR #2093 `_]
* Support coupling data sources to accounts, and preserve user ID and account ID references in audit logs and data sources for traceability and compliance [see `PR #2058 `_]
* Support fetching a schedule in a different unit still compatible to the sensor unit [see `PR #1993 `_]
* Support saving state-of-charge schedules to sensors with ``"%"`` unit, using the ``soc-max`` flex-model field as the capacity for unit conversion [see `PR #1996 `_]
* Version headers (for server and API) in API responses [see `PR #2021 `_]
* Support forecasting from a given time in the past, by allowing to specify a ``prior`` belief time in the forecasting API endpoint (as already possible with CLI command) [see `PR #1978 `_]
* Show sensor attributes on sensor page, if not empty [see `PR #2015 `_]
* Separate the ``StorageScheduler``'s tie-breaking preference for a full :abbr:`SoC (state of charge)` from its reported energy costs [see `PR #2023 `_ and `PR #2108 `_]
* Improve asset graph hover interaction with a vertical ruler across subcharts, while keeping hover dots for easier visual tracking [see `PR #2079 `_]
* Improve asset audit log messages for JSON field edits (especially ``sensors_to_show`` and nested flex-config values) [see `PR #2055 `_]
Infrastructure / Support
----------------------
* Migrate from ``pip`` to ``uv`` for dependency management, and from ``make`` to ``poe`` [see `PR #1973 `_]
* Stop creating new toy assets when restarting the docker-compose stack [see `PR #2018 `_]
* Improve contact information to get in touch with the FlexMeasures community [see `PR #2022 `_]
* Expand audit logging for password life-cycle: password_reset, password_changed and reset_password_instructions_sent events [see `PR #2036 `_]
* Upgraded some dependencies for security reasons [see `PR #2037 `_]
* Remove unused ``dictdiffer`` dependency after replacing JSON audit-diff logic with internal formatting utilities [see `PR #2055 `_]
* Upgraded dependencies, including sphinx from v8 to v9 [see `PR #2061 `_]
* Improve error logging for various exceptions [see `PR #2045 `_]
* Update agent instructions and workflows to customize the primary entry point and to make the test environment used by agents and by the test workflow identical [see `PR #2066 `_, `PR #1998 `_ and `PR #2068 `_]
* Filter out 404 (Not Found) errors from Sentry reports by default, configurable via ``FLEXMEASURES_DO_NOT_SEND_NOTFOUND_TO_SENTRY`` [see `PR #2071 `_]
* Document scripting with the client and in the CLI [see `PR #2097 `_]
* Document fallback schedule mechanism: explain how 303 (See Other) redirects work for infeasible schedules, with a client-side code example [see `PR #2107 `_]
Bugfixes
-----------
* Fix the Swagger endpoint for fetching a schedule [see `PR #2109 `_]
v0.31.3 | April 11, 2026
============================
Bugfixes
-----------
* Fix regression in upsampling speed [see `PR #2060 `_]
* Fix forecasting with multiple regressors in ``flexmeasures add forecasts`` by combining regressor time series as parallel components [see `PR #2088 `_]
* Fix a bug where ``save_to_db`` could silently drop a changed belief when the prior beliefs in the database happened to be ordered by descending belief time [see `PR #2086 `_]
* Prevent ``save_to_db`` from failing on saving duplicate beliefs in case ``FLEXMEASURES_ALLOW_DATA_OVERWRITE = False`` [see `PR #2059 `_ and `PR #2098 `_]
* Fix :abbr:`DST (Daylight Saving Time)` bug in processing time series segments [see `PR #2069 `_]
v0.31.2 | March 18, 2026
============================
Bugfixes
-----------
* Fix bug with resampling time series of e.g. SoC minima with different belief times for adjacent time slots [see `PR #2012 `_]
* Fix an issue where asset context was accessed in schemas that do not define a ``context`` attribute [see `PR #2014 `_]
* Fix wrap-up forecasting job [see `PR #2011 `_]
* Stop failure in the API endpoint that lists available endpoints (/api/v3_0/) [see `PR #2032 `_]
Infrastructure / Support
------------------------
* Re-add bcrypt dependency [see `PR #2029 `_]
v0.31.1 | March 6, 2026
============================
Bugfixes
-----------
* Fix CLI command ``flexmeasures add forecasts`` [see `PR #2007 `_]
* Add missing field documentation for ``aggregate-power`` and ``state-of-charge`` fields, which can be used to reference a sensor on which to record extra scheduling results [see `PR #2003 `_ and `PR #2006 `_]
v0.31.0 | February 28, 2026
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: As of this version, power schedules will no longer appear flipped (in UI charts) when they are recorded on *consumption* sensors.
Please note that:
- Schedules obtained via the dedicated API endpoints for scheduling are not affected by this change!
- The ``consumption_is_positive`` sensor attribute governs the sign of schedules saved to the database.
The sign convention of UI charts is to simply match what is in the database.
- If you inadvertently make use of the `sensor data API endpoint `_ to fetch *schedules*,
or have reporters that compute reports on *schedules*, rather than on *measurements*, be advised that you may experience flipped results.
You may need to adjust your client-side code or reporter configuration accordingly.
(Updating a reporter configuration automatically leads to a fresh data source for the saved time series.)
- Finally, if you maintain a plugin with a custom ``Scheduler`` class that returns time series to be saved on power sensors, we recommend incrementing the version of the ``Scheduler`` class.
This will yield a fresh data source for new schedules and allow you to discriminate your flipped schedules, which, for instance, will make it easier to flip back the historical schedules if you later want to.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* New API endpoints to create annotations for accounts, assets, and sensors: `[POST] /annotations/accounts/(id) `_, `[POST] /annotations/assets/(id) `_ and `[POST] /annotations/sensors/(id) `_ [see `PR #1968 `_]
* New forecasting API endpoints, and all timing parameters in forecasting CLI got sensible defaults for ease of use `[POST] /sensors/(id)/forecasts/trigger `_ and `[GET] /sensors/(id)/forecasts/(uuid) `_ to forecast sensor data [see `PR #1813 `_, `PR #1823 `_, `PR #1917 `_ and `PR #1982 `_]
* Improve CSV upload validation by inferring the intended base resolution even when data contains valid gaps, instead of requiring perfectly regular timestamps [see `PR #1918 `_]
* Support setting a resolution when triggering a schedule via the API or CLI [see `PR #1857 `_]
* Support variable peak pricing and changes in commitment baselines [see `PR #1835 `_]
* Support storing the aggregate power schedule [see `PR #1736 `_]
* Make listing public assets on account page optional [see `PR #1872 `_]
* Step-by-step replay in the UI, using the **n** key to go to the **n**\ ext time step [see `PR #1898 `_]
* Support changing a sensor's timezone in the UI [see `PR #1900 `_]
* Improved the UX for creating sensors, clicking on ``Enter`` now validates and creates a sensor [see `PR #1876 `_]
* Show zero values in bar charts even though they have 0 area [see `PR #1932 `_ and `PR #1936 `_]
* Added ``root`` and ``depth`` fields to the `[GET] /assets` endpoint for listing assets, to allow selecting descendants of a given root asset up to a given depth [see `PR #1874 `_]
* Support creating schedules with only information known prior to some time, now also via the CLI (the API already supported it) [see `PR #1871 `_].
* Added capability to update an asset's parent from the UI [`PR #1957 `_]
* Add ``fields`` param to the asset-listing endpoints, to save bandwidth in response data [see `PR #1884 `_]
.. note:: For backwards-compatibility, the new ``fields`` parameter will only be fully active, i.e. also returning less fields per default, in v0.32. Set ``FLEXMEASURES_API_SUNSET_ACTIVE=True`` to test the full effect now.
* Allow testing out the scheduling CLI without saving anything, using ``flexmeasures add schedule --dry-run`` [see `PR #1892 `_]
* Allow unsupported ``flex-context`` or ``flex-model`` fields to be shown in the UI editors (they will be un-editable) [see `PR #1915 `_]
* Add back save buttons to both ``flex-context`` and ``flex-model`` UI editors [see `PR #1916 `_]
* Add a documentation section on the concept of ``Commitments`` [see `PR #1849 `_]
* Add resolution column to sensors list on asset context page [see `PR #1986 `_]
Infrastructure / Support
----------------------
* Upgraded dependencies [see `PR #1847 `_]
* End support for Python3.9 [see `PR #1965 `_]
* Improve general description on SwaggerDocs page and add three settings for hosts: FLEXMEASURES_SUPPORT_PAGE, FLEXMEASURES_SIGNUP_PAGE and FLEXMEASURES_TOS_PAGE [see `PR #1851 `_ and `PR #1889 `_]
* Allow plugins to register forecasters [see `PR #1863 `_]
* Support setting a ``custom-scheduler`` by name [see `PR #1924 `_]
* Allow plugin schedulers to skip saving any sensor data, while still making their results retrievable [see `PR #1933 `_]
* Migrated JSON fields to JSONB, so they can be used to look up sensors, attributes, sources [see `PR #1867 `_]
* Use ``flexmeasures jobs stats`` to show statistics of the job queueing system [see `PR #1838 `_]
* Less verbose error logs given common HTTP requests such as those leading to 404 (Not Found) responses [see `PR #1883 `_]
* Refactor base.html template from 1500 to ~300 lines [see `PR #1868 `_]
* 2FA UX: Hide rescue form by default & improve main message [see `PR #1875 `_]
* Add extra security layer to check for breached passwords [see `PR #1919 `_]
* Support and document data container in docker compose stack better [see `PR #1790 `_]
* Improve reported test coverage by including doctests and bringing back CLI tests to GitHub Actions [see `PR #1914 `_ and `PR #778 `_, respectively]
* Add DEFAULT_DATASOURCE_TYPES and use it in CLI and status page [see `PR #1938 `_]
* Fix README badges [see `PR #1913 `_]
* Allow seeing complete datetimes in the audit log [see `PR #1949 `_]
* Add latest dependabot alert suggestions [see `PR #1959 `_]
* Add standardized GitHub Copilot agent environment setup file for consistent development environment across agent sessions [see `PR #1962 `_, `PR #1963 `_ and `PR #1964 `_]
Bugfixes
-----------
* Fix: schedules are no longer saved upside down [see `PR #1348 `_]
* Fix: visiting the job page for any forecasting job led to a server error ("Object of type datetime is not JSON serializable"), by storing serialized kwargs in forecasting job meta [see `PR #1990 `_]
* Fix: flex-context dialogue is empty when flex-context has two booleans with the same value [see `PR #1907 `_]
* Bring back the ability to show (timed) annotations on the sensor page, and add some color highlighting, too, while we're at it [see `PR #1967 `_]
* Fixed toast notification display on the sensor detail upload form [see `PR #1921 `_]
* Fix: return validation errors instead of database errors for API/CLI fields that map to database objects [see `PR #1923 `_]
* Correct field documentation for flex-config fields that strictly allow sensor references [see `PR #1951 `_]
* Have the ``StorageScheduler`` correctly combine multiple sessions targeting the same sensor [see `PR #1948 `_]
* Mutate job state when running ``flexmeasures jobs run-job `` [see `PR #1929 `_ and `PR #1930 `_]
* Prevent inplace operation when using ``simplify_index`` [see `PR #1931 `_]
* Fix API tests failing with 401 UNAUTHORIZED when run in isolation by properly setting Flask-Security's ``fs_authn_via`` attribute in the ``requesting_user`` fixture [see `PR #1960 `_]
* Fix ReadTheDocs build pipeline [see `PR #1972 `_]
v0.30.3 | January 12, 2026
============================
Bugfixes
-----------
* Fix graphs & KPI data failing to load when daily KPIs are configured for the asset [see `PR #1909 `_]
* Fix ``delete-beliefs`` CLI command to correctly apply the ``--source`` filter when deleting beliefs, preventing unintended removal of beliefs from other sources [see `PR #1903 `_]
* Fix concatenation of DataFrames with mixed-order index level when dropping unchanged beliefs, which could cause saving data to fail in rare cases of running ``flexmeasures add report`` [see `PR #1905 `_]
v0.30.2 | January 6, 2026
============================
Bugfixes
-----------
* Make ``soc-usage`` & ``soc-gain`` fields editable again in the UI [see `PR #1860 `_]
* New sensors created through the API and UI get the server timezone rather than :abbr:`UTC (Coordinated Universal Time)` [see `PR #1894 `_]
* Correctly derive the shared unit in charts showing multiple temperature sensors [see `PR #1890 `_]
* Prevent duplicate forecasts from being saved when re-running the forecasting pipeline within the same resolution window by preserving the non-floored ``belief_time`` using a new ``save_belief_time`` field [see `PR #1853 `_]
* Keep around finished forecasting jobs just as long as finished scheduling jobs (configurable through the ``FLEXMEASURES_PLANNING_TTL`` config setting) [see `PR #1870 `_]
v0.30.1 | December 9, 2025
============================
Bugfixes
-----------
* Greatly reduce the number of various deprecation warnings when dealing with time series data [see `PR #1858 `_]
v0.30.0 | December 2, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: If you make use of ``flexmeasures add report`` with the ``--start-offset`` and/or ``--end-offset`` options (for instance, in a cron job), please check whether the report period logged by the CLI command still fits your use case.
Your offsets may need to be adjusted in relation to your ``FLEXMEASURES_TIMEZONE`` config setting (its offset with respect to :abbr:`UTC (Coordinated Universal Time)`).
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``) and ``flexmeasures add initial-structure``.
New features
-------------
* Improve ``flexmeasures add forecasts`` CLI command with clearer success and error messages when creating jobs or beliefs [see `PR #1822 `_].
* Major overhaul of ``flexmeasures add forecasts`` (use the ``--help`` option to learn more) [see `PR #1546 `_, `PR #1744 `_ and `PR #1834 `_]
* The new ``commitments`` field in the ``flex-context`` can be used to specify previous commitments (e.g. market positions) that the scheduler needs to take into account [see `PR #1754 `_ and `PR #1793 `_]
* Many more field descriptions in Swagger, including flex-model and flex-context fields [see `PR #1777 `_ and `PR #1841 `_]
* Maps auto-zoom to cover the asset portfolio visible to the user, with fresh users prompted to pan to their own location when adding their first asset [see `PR #1644 `_]
* Sticky replay button for asset and sensor pages [see `PR #1739 `_]
* The ``flexmeasures delete beliefs``, ``flexmeasures delete nan-beliefs`` and ``flexmeasures delete unchanged-beliefs`` CLI commands now support limiting the action to a given set of data sources [see `PR #1770 `_]
* Let consultants see client assets on dashboard and group by account [see `PR #1763 `_]
* More explicitly represent the unit of sensors that record dimensionless data [see `PR #1802 `_]
* Allow modifying asset trees with the CLI using ``flexmeasures edit transfer-parenthood`` [see `PR #1773 `_]
* Expanded the sorting columns of "latest jobs" table [see `PR #1821 `_]
* Let users specify the unit, which uploaded data is based on [see `PR #1836 `_]
* Allow to keep legend combined below graphs, even with many plots (useful on narrow screens) [see `PR #1816 `_]
Infrastructure / Support
----------------------
* Upgraded dependencies [see `PR #1752 `_, `PR #1820 `_ and `PR #1842 `_]
* Speed up data searches by refactoring our filter for selecting data from the latest version of a data generating model [see `PR #1698 `_]
* Add new tutorial for PV curtailment and multi-asset scheduling [see `PR #1804 `_ and `PR #1846 `_]
* Drop need for .env file in favour of more adaptation of flexmeasures.cfg config file [see `PR #1759 `_]
* Support saving beliefs with a ``belief_horizon`` in the ``AggregatorReporter`` [see `PR #1735 `_]
* Support skipping a ``PandasReporter`` transformation if any of its (keyword) arguments has no data [see `PR #1669 `_]
* Assets now have an `external_id` field so data from external sources can be linked to the right FlexMeasures asset in custom integrations [see `PR #1774 `_ and `PR #1806 `_]
* Save buttons in UI editors (flex-model, flex-context and data dashboards) [see `PR #1764 `_]
* Improve performance of the endpoint profiler and support configuration using the new ``FLEXMEASURES_PROFILER_CONFIG`` setting [see `PR #1799 `_]
* Use ``SimpleWorker`` instead of fork-based ``Worker`` on macOS to prevent segmentation faults when running ``flexmeasures jobs run-worker`` for development purposes on macOS [see `PR #1818 `_]
* Move flex model UI schema to server side [see `PR #1830 `_]
* Fewer version details in OpenAPI specs, to make pre-commit step complain less [see `PR #1845 `_]
Bugfixes
-----------
* Fix unit conversion when scheduling a storage asset that deals with power sensors recording data in kWh units [see `PR #1784 `_]
* Fix interpretation of ``--start-offset`` and ``--end-offset`` options in ``flexmeasures add report`` [see `PR #1758 `_]
* Let users search for flex context sensors on whole site tree again [see `PR #1826 `_]
* Fix unintended date range hopping, a UI bug where date ranges set in URL parameters would be overridden by the user's previously selected date range (a session variable) [see `PR #1821 `_]
* Fix off-center map markers [see `PR #1840 `_]
* Resolved a crash in the "latest jobs" table when sorting was applied, and corrected a typo in the Jobs API Swagger UI documentation [see `PR #1821 `_]
* Enhance dates on UI(sensor page) to be human friendly when representing future dates [see `PR #1832 `_]
* Fix spinner not disappearing on the asset graph page [see `PR #1831 `_]
* Fix links to API endpoint docs in Sphinx documentation [see `PR #1843 `_]
v0.29.1 | November 5, 2025
============================
Bugfixes
-----------
* Support different but still compatible units in time series segments of variable quantities [see `PR #1792 `_]
* Fix account and `/assets/owned_by` pages rendering, giving them asset icons [see `PR #1772 `_]
* Fix bug when sending one sensor in flex-model when triggering schedule on asset [see `PR #1795 `_]
* Allow consultants to view client users [see `PR #1755 `_]
* Fix bug where removed flex-model fields don't show up under the dropdown for new fields, except after a page refresh [see `PR #1775 `_]
* Fix bug in displaying user audit log (incl. expanding its API schema) [see `PR #1779 `_]
* Support flex-context prices with SI-prefixed currencies (e.g. kEUR) [see `PR #1844 `_]
v0.29.0 | October 14, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* Added a UI editor (form modal) to edit an asset's flex-model [see `PR #1429 `_ and `PR #1565 `_]
* New CLI command for scheduling, with full flex-context and flex-model support as well as the option to set your scheduler class [see `PR #1713 `_]
* Full coverage of flex-context fields in the UI editor [see `PR #1689 `_]
* Touch up the KPI cards [see `PR #1731 `_]
* Touch up asset context page [see `PR #1732 `_]
* Allow ``PandasReporter`` configurations to skip a transformation in case any of the transformation ``args`` or ``kwargs`` is missing all data [see `PR #1717 `_]
* The ``flexmeasures delete unchanged-beliefs`` CLI command now supports limiting the action to a given period [see `PR #1720 `_]
Infrastructure / Support
----------------------
* Migrate data for the ``flex-model`` of an asset to a dedicated column in the database table for assets [see `PR #1429 `_]
* Updated dependencies [see `PR #1707 `_]
* Upgraded Docker Image Ubuntu 24, which uses Python 3.12 [see `PR #1723 `_]
* Include finished and canceled jobs in the overview printed by the CLI command ``flexmeasures jobs show-queues`` [see `PR #1712 `_]
* Improved flex-context modal UI and UI-backend functionalities&structure [see `PR #1704 `_]
* Removed the use of ``consumption_price_sensor`` from the ``ProcessScheduler`` and replaced with now mandatory ``consumption_price`` in the ``flex-context`` [see `PR #1729 `_]
* Removed obsolete UI view [see `PR #1743 `_]
Bugfixes
-----------
* Changed 422 response for asset PATCH endpoint to the format also used elsewhere [see `PR #1722 `_]
* Fix UI flex-context editor for flex-contexts with boolean fields (that were set through the API) [see `PR #1733 `_]
* Fix floating spinner on asset graphs page [see `PR #1738 `_]
* Make monitoring tasks & users robust against db issues [see `PR #1715 `_]
v0.28.2 | October 3, 2025
============================
Bugfixes
-----------
* Fix horizons in UI chart tooltips [see `PR #1730 `_]
* Fix UI chart for Charge Point sessions [see `PR #1699 `_]
* Fix two audit logs in the sensor API, which were not committed to db [see `PR #1721 `_]
v0.28.1 | September 18, 2025
============================
Bugfixes
-----------
* Fix schema validation in ``PATCH /assets/(id)`` [see `PR #1711 `_]
* Fixed example values for peak pricing and improved error message for incompatible price units set in the ``flex-context`` [see `PR #1710 `_]
v0.28.0 | September 10, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
This upgrade may take a few minutes, depending on how much time series data you have in your database (the data will be reindexed).
New features
-------------
* Display KPIs for asset sensors with daily event resolution [see `PR #1608 `_, `PR #1634 `_ and `PR #1656 `_]
* Ability to add users via API (POST /users) and in the UI (from an account page) [See `PR #1678 `_]
* Improved timestamp on sensor detail page to be more friendly [see `PR #1632 `_]
* Asset types support: new API endpoint (`GET /assets/types`), better docs and fix CLI command ``flexmeasures show asset-types`` [see `PR #1663 `_]
* Add ``--combine-legend`` option to flexmeasures show chart. When used, all legends are combined and displayed at the bottom of the chart. If not used (default = False), each chart will display its own separate legend (as on the asset page) [see `PR #1696 `_]
* Add support for using Swagger to generate API documentation [see `PR #1703 `_]
Infrastructure / Support
----------------------
* Upgraded dependencies [see `PR #1616 `_, `PR #1672 `_, `PR #1668 `_ and `PR #1690 `_]
* Removed support for Python3.8 [see `PR #1615 `_]
* Better support for using ``Sensor`` objects as dictionary keys [see `PR #1650 `_]
* Removed obsolete API blueprint for play mode and underlying backup file-based functionality [see `PR #1622 `_ and `PR #1630 `_]
* Faster data loading for the UI by vectorization of dictionary representations of sources and sensors, and of epoch conversion [see `PR #1641 `_]
* Refactor: Remove clunky calls to the API from within the UI view code [see `PR #1683 `_]
* Compress chart data sent to the UI charts [see `PR #1645 `_ and `PR #1691 `_]
* Better representation of changes in JSON structures in audit logs [see `PR #1700 `_]
Bugfixes
-----------
* Fixed usage of slow query for status page [see `PR #1638 `_]
* Fix editing of public assets in the UI [see `PR #1636 `_]
* Fix issue with :abbr:`DST (Daylight Saving Time)` transitions when processing variable quantities using the time series specification format, in flex-contexts and/or flex-models [see `PR #1681 `_]
* Add audit log entries when creating sensors, assets and accounts via the CLI [see `PR #1623 `_]
v0.27.4 | August 27, 2025
============================
Bugfixes
-----------
* Fix ``flexmeasures show reporters`` and ``flexmeasures show schedulers`` [see `PR #1674 `_]
* Show job information again on the job page on rq-dashboard, for scheduling jobs that set a specific ``belief_time`` and/or ``resolution`` [see `PR #1670 `_]
v0.27.3 | August 19, 2025
============================
Bugfixes
-----------
* Fix the time window in the UI from being replaced with :abbr:`NaN (not a number)` values when refreshing the asset graphs page [see `PR #1667 `_]
* Fix scheduling storage devices within a single time step [see `PR #1619 `_]
v0.27.2 | August 13, 2025
============================
Bugfixes
-----------
* Resolve issue where concatenating sensor data from updated reporters leads to a :abbr:`NaN (not a number)` source and crashing the asset graphs page [see `PR #1660 `_]
Infrastructure / Support
----------------------
* Faster data loading for the UI by caching dictionary representations of sources and sensors [see `PR #1647 `_]
* Modify a query to speed up a data availability check for forecasting [see `PR #1658 `_]
v0.27.1 | August 11, 2025
============================
Bugfixes
-----------
* Flex-context price sensors can have any shared unit [see `PR #1628 `_]
* Fix a few UI grievances in asset creation, esp. child assets [see `PR #1629 `_]
* Fix updating the URL query parameters upon date selection in the UI of servers in play mode [see `PR #1649 `_]
Infrastructure / Support
----------------------
* Automate release process to PyPI [see `PR #1657 `_]
v0.27.0 | July 20, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. note:: Preparatory warning: The following release will not support Python 3.8 anymore.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* New API endpoint `[POST] /assets/(id)/schedules/trigger `_ to schedule a site with multiple flexible devices [see `PR #1065 `_]
* Add form to upload sensor data to the database [see `PR #1481 `_, `PR #1573 `_, `PR #1583 `_, `PR #1585 `_, `PR #1588 `_ and `PR #1590 `_]
* Improved the UX for creating child-assets and sensors in the UI [see `PR #1605 `_]
* Added :abbr:`2FA (two-factor authentication)` support for email and one time recovery, and also added ``_macros.html`` for UI components [see `PR #1555 `_, `PR #1564 `_ and `PR #1562 `_]
* Give consultants more permissions, so they can edit their client's accounts, assets and sensors. Also add test cases to check if these permissions work as expected [see `PR #1539 `_ and `PR #1550 `_]
* Allow editing users in the UI [see `PR #1502 `_]
* Scheduling job descriptions on the tasks page (RQ Dashboard) shows the whole flex-model and flex-context, including any server-side configuration of e.g. capacities [see `PR #1579 `_ and `PR #1601 `_]
* Smarter date range navigation [see `PR #1531 `_]
* Smarter toast notifications [see `PR #1530 `_]
* Move various warnings to toast notifications [see `PR #1529 `_]
* Document how to set a parent asset when creating an asset through the API, and show parent assets in ``flexmeasures show account`` [see `PR #1533 `_ and `PR #974 `_]
* Add ``flexmeasures show assets`` CLI command for listing public assets and option ``--account `` to list assets owned by a specific account [see `PR #1536 `_]
* Add ``flexmeasures jobs run-job`` CLI command to run a single job [see `PR #1602 `_]
* Add toggle to show sensor statistics based on selected date range [see `PR #1535