Click-to-revert and where your data lives
Clicking a history entry's Restore button non-destructively restores the document to that state — recording a new version and keeping every prior version (Google Sheets "Restore this version"), repeated identical ops collapse into one timeline row, and the chrome states plainly that the workbook + its history live in the browser only and warns before an unsaved tab closes.
What it does
The History panel is now interactive. Each entry carries an explicit, always-visible "Restore" button (Google Sheets Version History's "Restore this version" pattern — discoverable without hovering, keyboard-accessible); pressing it non-destructively restores the document to that state — it records a new version at the top of the timeline and keeps every prior version, so nothing is lost (undo the restore to step back out of it). Hovering an entry previews it: the cells it touched light up on the grid (a transient amber highlight that clears when you move away), and the entry shows what changed — a before → after for a single value edit (e.g. 10 → 20), or a short summary for a formatting change ("fill color") or a multi-cell edit ("3 cells"). Consecutive identical operations on the same cell (the 8× repeated date-format on C5 seen in dogfooding) collapse into a single row with a ×N badge, so the timeline stays legible. Timestamps are human-readable — "just now", "2 min ago", "Today 3:45 PM", "Yesterday", then a date like "Jul 14" for older entries — with the exact absolute time available on hover.
The chrome now also tells you, at a glance, where the current document and its history actually live. A footer strip states this in plain words; the History panel header carries the matching note; and while the workbook is in the browser-only local mode (the default — see persistent-history), the tab-close warning stays off, since the document and its history are already saved.
Deferred to
(persistent history — autosave + restore across reload, in THIS browser) has shipped; see persistent-history. What's still deferred is the account half:
- Cross-device version history — the same non-destructive restore, but with versions saved server-side so they survive not just a reload but a different device too, rather than being scoped to this one browser.
- Account-saved history, the
accountindicator state going live, and the "Sign in to save" upgrade CTA from standalone.
Verified behavior
Matches Google Sheets: Restoring to a past state matches Google Sheets File → Version history: picking a version and clicking "Restore this version" does NOT discard the versions in between — it makes a NEW current version equal to the chosen one and keeps the full history intact, and the restore is itself undoable. The standalone restore here is exactly that (non-destructive, create-a-new-version), driven from the timeline. The undo/redo of individual edits follows Sheets' Ctrl+Z — whole-edit steps, and a fresh edit clears the redo branch. The "where your data lives" signaling has no direct Sheets cell-behavior to replicate: Sheets always runs in one persistent, Drive-saved mode ("All changes saved in Drive") and never exposes a browser-only/at-risk mode, so the mode indicator + data-loss guard are a TrueCalc-original response to the playground being client-side with no account (a light oracle pass — this is Studio UX, not a cell computation).
Undo steps back through edits and a new edit clears the redo branch (the restore substrate)
Given
- A1 =
1
When I type 2 into A1, then type 3 into A1, then undo, then undo, then type 9 into A1, then redo
Then
- A1 shows
9
The chrome states where the workbook currently lives
Given
- A1 =
1
When I click A1
Then
[aria-label="Storage status"]is visible containing "Saved in this browser"
Growable grid dimensions
The grid grows to fit its content and the cursor's reach — importing or pasting past the default 100×26, or navigating off the bottom/right edge, extends the grid instead of hiding data.
Multiple sheets (tabs and cross-sheet references)
A workbook holds several named sheets shown as tabs (add / switch / rename / delete / reorder); a formula on one sheet can reference another (=Sheet2!A1), computing and recalculating across sheets.