Undo & Redo
Made a change you didn't mean to? You can undo and redo your data entry in Farseer — so you can work quickly, try things out, and step back the moment something doesn't look right, without retyping anything. Undo works on sheets and across all of a dashboard's sheet tiles.
Undo and redo directly from the sheet toolbar.
How to use it
Toolbar buttons
Use the Undo and Redo arrows in the sheet toolbar. They become active as soon as there's something to undo or redo, and your sheet updates instantly with each step.
On a dashboard, the same Undo and Redo buttons live in the dashboard filter bar and drive one shared history across every sheet tile on the board — see Undo on dashboards below.
The Undo and Redo buttons in the sheet toolbar.
Keyboard shortcuts
Action | Mac | Windows |
Undo |
|
|
Redo |
|
|
Shortcuts fire only when the sheet (or dashboard tile) has focus — so Cmd/Ctrl + Z inside a modal, the sidebar, or any other text input keeps its normal browser behaviour and won't accidentally undo a sheet edit.
Redo stays available until you make a new change.
Undo while typing in a cell
While you're typing inside a cell, Cmd/Ctrl + Z works as normal text editing — undoing what you just typed. Once you've confirmed the edit and moved off the cell, Cmd/Ctrl + Z undoes the whole change.
What you can undo
Undo and redo currently cover the data you enter into your sheets — the values you type or paste into cells, whether that's a variable value or data on a dimension member (such as a property column). Overwrote a number, pasted into the wrong place, or cleared a value by mistake? You can put it right in a step or two.
The same coverage applies inside sheet tiles on a dashboard, and the dashboard's Undo button rolls those tile-level edits back in the order you made them, across the whole dashboard.
Undo on dashboards
A dashboard has its own one shared undo stack that spans every sheet tile on it. Edit a cell in Tile A, then a cell in Tile B — pressing Undo once rolls back Tile B, pressing it again rolls back Tile A. You don't need to click into a tile first; the dashboard's Undo/Redo buttons and keyboard shortcuts drive the stack from wherever you are on the board.
The buttons show up in the dashboard filter bar for users who can enter data. Everything else about behaviour is the same as on a standalone sheet — same 20-entry history, same 24-hour idle expiry, same toasts, same rule about focus (typing into a text input still gets normal browser undo).
Separate from sheet stacks. Opening the same sheet standalone (from the sidebar) uses its own per-sheet stack, distinct from the dashboard's shared stack. So a tile edit made on a dashboard isn't undoable from the standalone sheet page and vice versa — this keeps the two contexts from interfering with each other.
Good to know
Data entry, for now. Undo applies to the values you enter. Structural and setup changes — adding, removing, or renaming rows and columns, sorting, filtering, sharing, and other sheet settings — aren't covered yet.
Tied to your current session. Your undo history is there while you're working in a sheet or dashboard and clears when you reload or come back later. It isn't shared across tabs, devices, or teammates.
Always consistent with your model. If something changes what's editable (for example, a cell becomes locked), Farseer may skip those cells or reset the undo history so nothing is applied incorrectly — you'll see a brief "Undo history was reset" message if that happens.
The details
Detail | What to expect |
History length | Up to your 20 most recent entries per sheet or per dashboard |
Where it's kept | Per sheet / per dashboard, per browser tab; cleared when you reload; expires after about 24 hours of inactivity |
Dashboard scope | One shared stack across all sheet tiles on the dashboard; distinct from the per-sheet stack you'd get by opening the same sheet standalone |
Sharing | Never shared across tabs, devices, or users |
Redo | Making a new entry clears the redo history |
Locked or read-only cells | Skipped when undoing |
What resets history | Locking/unlocking, column or dimension changes, sharing changes, and similar edits |
Coverage | Manual data entry only (variable values and dimension-member data); not structural or configuration changes |
Messages you might see
A short, non-blocking toast appears above the sheet or dashboard when an undo can't proceed. It never interrupts your work — you can keep editing while it fades.
Message | When it appears |
Undo history was reset | Something changed what's editable in the sheet or dashboard (a lock, a column change, a sharing change) and the stack was cleared to stay consistent with the model. |
Undo is no longer available | The entry you tried to undo has expired (older than about 24 hours of inactivity) or was cleared during a long-idle period. |
This change can no longer be undone | The step can't be safely applied under the current model state — for example, permissions changed since you made the entry, or the target cells are now locked or read-only. |
This change is too large to undo | This message shouldn't appear during normal usage, as edits that are too large to process are declined before the update goes through. The message exists, but covers only cases that normal users shouldn't encounter. |
This change can't be undone | The action type doesn't have an inverse recorded — you'll see it only for edge cases not covered by undo yet. |
What's next
Sheets and dashboards are covered. From here we're expanding undo and redo to more of the actions you take — including structural changes to sheets (rows, columns, sorting, filtering, sharing settings), so undo eventually covers setup mistakes as well as data-entry ones.


