Change Log
Reflow Version 2.0.1 (build 1245)
This October 2026 release includes new features, improvements and bug fixes.
Pages & Block Editor
- Build a collection page fresh. Adding a collection page from Add New Page → [collection] → [page type] now builds a new page from the collection's own template rather than copying the page you already have, so a page that has gone stale can be rebuilt without inheriting what was wrong with it. The new page sits beside the existing one and is not made the collection's default, so nothing changes for viewers until you pick it. Duplicate on a page's three-dot menu still makes a copy.
- Turn into keeps what you set up on a block. Changing a block's type carries over its visibility, interactions,
anchor, list title, padding and any name you gave it, plus its background unless the new type has none to edit
(Text and Divider). Settings that belong only to the old type give way to the new type's defaults instead of
mixing with them, so a switch no longer leaves stray table columns, rows or background fills behind. One undo
restores the block exactly.
- The title carries over in whatever form the new type uses, including to and from a Map (a title bound to live data can't move onto a Map, so it stays behind). A new block's starting title, such as "Map", gives way to the new type's own.
- A Point turned into a Circle keeps its value and icon, and so does a Circle turned into a Point. A value that isn't a plain number (a word, an on/off point, a number typed with units) is left behind.
- Map, Weather Map and Buildings Map keep every marker and layer when switched between.
- The block takes the new type's usual size, as if just added. Inside a Grid or Classic group, a block that comes out wider widens the group to the right (and any group around it), stopping at the edge of the page.
- A setting the new type can't use is left behind. A History Chart set to Table and turned into a History Sparkline now draws the sparkline's usual chart instead of a title with nothing under it.
- Turning a Text block into another type removes its words; one undo brings back the block and its text.
- A block's automatic anchor name stays the same, so links and Scroll to actions that use it keep working.
- Turn into no longer lists the type a block already is, its search matches the names you see, and a switch that fails now says so.
- Title when editing blocks together. Selecting several Table, Schedules Index, Schedule List, Devices List, YouTube Video or Vimeo Video blocks adds a Title row to the shared properties.
Canvas
- Canvases up to 10,000px. A canvas and its background image can now be up to 10,000px wide and tall, in the canvas properties and when setting up a new canvas. The W and H fields under Background image stopped at 3000, so on a canvas built on a large floor plan or site image the published page cut off anything near the right or bottom edge, and elements no longer lined up with the image. An image larger than the limit is scaled down to fit, keeping its shape, when you pick it or click Fit to Background Image Size.
Equipment
- Index Overflow Limit. Device types and system types have a new Index Overflow Limit, beside Hide on Index Pages, for how many devices or systems their group on a Device Index block shows before its "and N more" link (still 5 by default; clear the field to show everything). A Device Index block can unlock its own Overflow limit to override every type's limit in that block.
- Device Graphic fits its graphic. The Device Graphic block takes its height from the canvas, image or Px graphic it shows, so it no longer sits in a tall box with empty space above and below (most visible on phones). Drag it to a height of your own to scale the graphic to fit; the block toolbar's Auto Height returns it to the graphic's height. A Px graphic now appears once, in place, instead of drawing halfway and then jumping, and an image graphic always fits inside the block.
Alarms
- Active ignores the time range. Choosing Active (or Active Alarms Only on the Alarms Header) now disables the Time Range, with a help tip explaining why: Active shows every alarm on the station currently in an offnormal state, whatever the time range. This applies to block and console queries, the alarm filter's default value and the header's chips, and your time range is kept for when you switch back. Exporting an Active view now includes every active alarm too, matching the table.
- Console pages. The Alarms Header on a newly created alarm console page has its Title bound to the console's name, so the field shows where the heading comes from instead of reading empty. Alarm console pickers also offer the page's console variable, so a block can follow whichever console the page shows, as the generated console pages do.
- Alarms forwarded from another station. Alarms a supervisor receives from another station (a JACE on the Niagara Network) now work throughout the alarm blocks. Picking a forwarded point or station in an Alarm Records Table's source picker used to return an empty table, and clicking such a row in an Alarms Sources Table failed to open its records; both now resolve, including a point on the other station, and two stations with same-named points stay distinct. Forwarded alarms also show the point's own name in the Source column rather than the network connection's, export to CSV without breaking the row, and open their hyperlinks correctly.
Bindings & Variables
- Target deviation. Dynamic colors and icons on a number have a new Target deviation style, between Deviation and Spectrum. Set a Target and a Deviation ±, each a fixed number or bound to a point (an active setpoint, for example), and pick what shows Below target, Within deviation and Above target. Switching over from Deviation starts from the same range.
Misc
- Bigger tables. Rows on a Table block now goes up to 3,000, from 1,500.
- Toggle block background. A new Toggle block starts with the same background as other blocks, and its properties have a Background section for changing it. Toggles already on a page keep their current look.
Bug Fixes
- Languages
- Updated language packs reach you after a reload, without clearing the browser cache. Languages offers Update for a newer pack, and installing a language or plugin downloads the current translations rather than a cached copy.
- Labels the installed language pack lacks now show in English instead of as a raw translation key. About 60 were affected across the editor and published pages, including the operations a binding with several sources can use (Difference, First, Last, Random, Median, Product), the Point Catalog and Add Devices titles, the station browser, the file manager, and plugin and theme names.
- A few labels showed a raw key in every language: the first group of the Alarms Header properties (now Data), the page popover's Metadata tab, the Schedule field on the Schedule View block, and a History List override label.
- License
- Uploading a license on the License page takes effect straight away. Leaving the page and coming back showed Trial License again, and limits such as the published project count kept the trial's caps until the browser was reloaded; Synchronize had the same problem when it downloaded the license in the browser. An upload that fails to reach the station now shows an error instead of looking like it succeeded.
- Purchase in the License menu opens the pricing page instead of the file picker, and hovering it no longer highlights Upload License File as well.
- Reflow no longer hangs when the license server stops answering. A license check that never got a reply could stop Reflow starting with the station, or leave Synchronize waiting indefinitely; each check now gives up within 30 seconds.
- Navigation
- A navigation item no longer keeps the Active color after you leave the section it points at (opening a building and going back to Home left Buildings highlighted). This applies to every collection's menu item.
- Renaming a navigation item in the Navigation items list (double-click, or Rename in the three-dot menu) sticks instead of reverting to the old label a moment later.
- The Navigation items list follows a nav item's Label text as you type it in the properties; after a rename in the list, it kept showing that name until the properties closed.
- Block editor
- Cutting selected words in a Text block with ⌘X or Ctrl X cuts just those words instead of removing the whole block. A Table cell behaves the same way, and ⌘C or Ctrl C there copies the word rather than the whole table. With nothing selected, the shortcuts still copy or cut the block.
- Pressing Backspace or Delete with a binding's window, the Translations window or a color picker open no longer deletes the block selected on the page.
- A block dragged inside a group stays inside the group's outline instead of following the pointer out and sliding behind the blocks below. Pushed against the group's bottom edge it moves to the bottom of the group, and the page only scrolls while part of the group is off screen.
- Resizing a block is smoother on pages with many blocks.
- Delete on a group's right-click menu removes the group, as the Delete key does, and the group's menu no longer offers Turn into, which never applied to groups. Split Column Right and Split Column Left, which did nothing, are gone from the block menu.
- Switching a Text block between Paragraph and a heading changes only its style, leaving its spacing, background, interactions, name and size as they were.
- Undoing a Turn into puts back the block's own sizing and alignment straight away rather than after a reload.
- A History List made with Turn into shows its grid on phones, as a newly added one does.
- A Text block's
@menu no longer lists the hidden settings some blocks keep for themselves, and its/menu picks up blocks from a plugin enabled after the editor opened (and drops one that was turned off). - A failed Auto Translate no longer leaves a text block looking busy until the page is reloaded.
- Tablet and mobile layouts
- Answering Yes to the Responsive Layout Warning keeps the tablet or mobile layout exactly as the preview showed it. A resized block could jump to another column and blocks side by side could end up stacked, and while the question was on screen the blocks could jump back so that Yes saved the layout from before the drag. Later edits to the desktop layout no longer move those blocks at that size either.
- Clicking a block at tablet or mobile size no longer quietly changes the layout and saves it without asking.
- Moving blocks inside a group at tablet and phone sizes sticks. A reorder could jump back on release, or leave one block springing back while the others stayed put; a page already in that state repairs itself the first time you drag inside the group.
- Resizing a block inside a group no longer moves the group back to its desktop position, and a block widened past the group's edge grows the group from where it is on screen.
- A Stack group narrowed at tablet or phone size no longer snaps back to its desktop width when a block inside it changes height.
- Clear breakpoint overrides in the page's breakpoints panel also clears blocks you moved or resized in the preview.
- Your first change at mobile size no longer drops the heights the page had at tablet size.
- Undo and redo
- An edit made with a group on the page no longer drops out of the undo history, where undo (⌘Z or Ctrl Z) skipped straight past it.
- Undo and redo inside a group work as they do on the rest of the page. One undo could appear to do nothing and throw away the redo step, and the history drifted further from what you had done each time.
- Canvas
- Scrolling the Elements list no longer leaves a blank gap where rows should be after the States list above it changes height.
- An image's position applies when it repeats. With Repeat X the row always ran along the top whatever the up/down position, and with Repeat Y the column always ran down the left edge; each now keeps the other axis, and with Repeat the position sets where the tiling starts, as on block backgrounds.
- A dynamic color on a canvas element shows its Fallback while it has no value to color by. A zone background, label accent or icon color set to Dynamic drew nothing at all until its value resolved.
- Equipment
- A device type's own add item in the Devices panel (Add New AHU, for example) opens with that Device Type already chosen, instead of the type the last batch used (or none the first time).
- The Buildings & Spaces picker can be searched and scrolled when opened from Add Devices or Assign Buildings & Spaces…, and the search fields in the device, schedule and dropdown pickers in those dialogs accept typing.
- The Point Catalog page no longer opens blank on a project whose catalog an earlier edit had damaged. The catalog is repaired when the project opens, and folders that had dropped out of view come back with their points (in their original folder where it still exists, otherwise at the top level); check the catalog and delete any you had meant to remove.
- Device Header and System Header blocks fit their content when added instead of starting far taller.
- A device type's Table View settings list every column you add. With Table Columns set to Custom, the Columns list left a blank space where the newest columns should be once it held more than five.
- Devices picked from a remote station's virtual network now work. Add Devices finds their points and matches them against the Point Catalog (they were added with no points), and their points show live values and status as soon as the values arrive, instead of reading null. Adding one no longer pauses for several seconds before the panel closes; relationships (Serves, Served By, Schedules) are not discovered for these devices, so set them by hand in the Relationships tab.
- A point on the Device Points or Device Details block whose value is still loading pulses instead of reading N/A; N/A now means a point that loaded with no value.
- Histories
- The Last value of a numeric history in the History List block rounds to the history's configured
precision instead of showing long trailing decimals (such as
71.99999999999999 °F) on some stations. - A Custom Time Range can no longer end before it starts: the calendar greys out start dates after the End date (or after today, when the range runs to Now) and end dates before the Start date. A reversed range used to leave the History Chart empty under a crowded, unreadable axis, and one saved that way now draws the right way round. Days shown from the previous and next month can be picked directly too.
- A History Chart or History Sparkline whose data fails to load clears, instead of showing the previous range's data under the new range's dates.
- The Last value of a numeric history in the History List block rounds to the history's configured
precision instead of showing long trailing decimals (such as
- Alarm Shelf
- Clicking a priority tile filters the page it opens to that priority. High Priority, Medium Priority and Low Priority all opened Active Alarms showing every active alarm; a tile now carries its priority through, so the list matches its count. This works on alarm console and building alarms pages, in existing projects as well as new ones, and Total Alarms still opens the page unfiltered.
- Bands count only the alarms their priority rules claim, instead of sometimes showing the shelf's full total (most often right after a rule was edited).
- Opacity applies to a band's colors. Dot Color, Title color and the color swatches on the Units and Icon fields all rendered fully opaque, as did a priority's own color on the band and on the records table's priority dot. These colors also accept a bound value on the band now. A band's icon is knocked out of its dot, so if you fade Dot Color, set the Icon field's color too to keep the glyph legible.
- Changing a band's Icon no longer leaves a bare colored circle; the glyph renders, including one driven by a binding.
- Alarm priorities
- Setting a rule's Type to Priority shows the Operation row again, starting on Greater than or equal to. The row was empty, so the rule saved without an operator and matched nothing; a rule switched to Priority while it was missing may still have none, so open it and choose one.
- The Any/All, Type and Operation button bars keep a selection. Clicking the option already on could clear it, and a cleared Any/All quietly evaluated as All while showing neither.
- Rules that match by Alarm classes apply: rows in the Alarm Records Table and Alarms Sources Table take the matching priority's color, and recolor as soon as a rule is edited.
- Alarm blocks
- The Priorities field under Properties → Data works on the Alarm Display, Alarm Records Table and Alarms Sources Table blocks. Selections reverted to Any priority when the picker closed and never filtered anything; they now persist and narrow the block to the chosen bands. A block following an Alarms Header still takes the header's priority chip when one is set. The field is gone from the Alarm Shelf, whose bands carry their own priorities.
- An Alarms Sources Table no longer stays empty when you open its page while another page's table with the same query is still loading.
- The lists under Columns in the Alarm Records Table and Alarms Sources Table properties scroll correctly instead of leaving rows blank or out of place.
- An Alarm Display can be added while translations are unavailable. It failed silently when its default title couldn't be translated; it is now created anyway and shows Active Alarms until you give it a title.
- Bindings & Variables
- Keyboard copy and paste work in the text fields of a binding's window (the one with the Binding and Format tabs). Pasting a degree sign into Unit with ⌘V or Ctrl V did nothing, and ⌘C or Ctrl C copied the whole binding instead of the selected text. The Translations window and a hero style's fields under Logo & Hero are fixed too.
- A binding set to Math > Difference is labelled Difference in the properties panel instead of Sum.
- A binding whose sources have no usable value yet shows its operation (such as Sum) instead of "2 items". When its sources are station points that aren't numbers, the binding window marks each with the reason again and the binding shows Invalid Binding.
- Add Binding in the binding pane no longer wraps onto two lines when Difference is the operation.
- Binding a point from Favorites in a field's right-click menu or the Add Binding menu adds it to Recents, as Browse Gateways already did, and picking one of your Recents moves it back to the top.
- Duplicate is withheld wherever a variable is locked or comes from the page's URL. A building's Building Status variable, which shows a lock because the project depends on it, still offered it, and the copy carried none of the wiring that makes the original work. Multi-select Duplicate in every list now copies only what the three-dot menu would allow, and is greyed out when the selection holds nothing it can copy.
- Saving and collaboration
- Two people editing the same project see each other's changes within a couple of seconds. Another author's work never reached your editor until a full browser refresh, because each author worked from a snapshot taken when they opened the project.
- An edit made while a save is in flight is no longer lost. Anything changed between a save being sent and the station confirming it was treated as already saved, so it vanished on the next reload; this affected a single author as much as two.
- With the same project open in two browser tabs, adding anything (a page, a block, a navigation item) no longer creates it twice.
- Saving a big change is fast. Setting a table to a few thousand rows kept the saving indicator going for around twenty seconds, and the wait grew with the size of the page; pasting many blocks or importing content was priced the same way.
- A save that fails tries again (after 2, 5 and 15 seconds, then every 30 seconds until it gets through), so a change made just before a station restart is saved once the station is back. A save that never gets an answer no longer stops every later save in the session.
- Publish saves pending changes first, and reports an error instead of publishing if they can't be saved; anything still queued in the editor used to be missing from the published site. Exporting, backing up or duplicating the open draft, switching drafts and changing the open draft's slug do the same, as does leaving the editor by any route.
- A save the station turns down, or one whose answer never arrives, no longer duplicates entries in a page's block order or a table's rows. A change the station turns down once is kept on screen and sent again, rather than being overwritten straight away.
- General
- Switching between light and dark mode no longer nudges the side panels sideways. Their thin scrollbars widened in dark mode, squeezing panels such as Colors and Buildings; menus in the view app keep the thin scrollbar too.
Upcoming
The following are in development and are not part of this release.
- Migration from Reflow 1. Reflow 2 does not read Reflow 1 projects yet. It can be installed alongside Reflow 1 on the same station in the meantime, and a migration path for existing save files is in development for a later release. See the Reflow 2 FAQ for more information.
- More themes. The theme system ships with Classic. Further themes begin to arrive after this release, and install from the gallery like any other plugin.
- More plugins. The plugin gallery grows after release with first and third-party plugins, including animated equipment graphics, reporting and kiosk support.