# Version History (/docs/editor/version-history)

Browse, restore, and name saved versions of a workflow.



Every workflow keeps an automatic version history. Solaris AI Flow snapshots your graph as you work and before risky changes, so you can look back at what a workflow used to be and roll back to any point.

This is separate from [marketplace version updates](/docs/marketplace/version-updates), which track the versions you publish for buyers.

Opening version history [#opening-version-history]

Click the **clock** icon in the editor's top toolbar to open the **Version history** panel. It's available once a workflow has been saved at least once.

Each row shows how many nodes and edges the version had, when it was captured, and a badge for its type. The version that matches your currently saved workflow is marked **Current**. If you have unsaved edits, nothing is marked Current and a note reminds you that your live edits aren't in history yet, they're captured on the next save.

Types of versions [#types-of-versions]

A snapshot stores the full graph (nodes, edges, and viewport) plus the workflow name at that moment. There are three types:

* **Auto** - captured automatically as you edit. Edits are grouped, so a long editing session leaves periodic snapshots rather than one per change. Your most recent \~30 auto-versions are kept; older ones drop off.
* **Milestone** - a safety snapshot taken automatically *before* a big change: before an AI (Copilot) edit ("Before AI edit"), before restoring a version ("Before restore"), before pulling a marketplace update ("Before pull update"), and after each run you start ("Ran", see below). Your most recent \~50 milestones are kept.
* **Named** - a checkpoint you name yourself. Named versions are permanent and are never removed automatically.

Run checkpoints [#run-checkpoints]

Each time you run a workflow whose graph has changed since your last run, Solaris AI Flow saves a &#x2A;*"Ran"** milestone capturing the version you ran. This gives you a reliable "take me back to what I last ran" point, even after you keep editing.

* Running again **without editing** won't pile up duplicates - a checkpoint is only added when the graph actually changed.
* This covers runs **you start** - the **Run** button in the editor, **Run** on a row in the [Workflows list](/docs/getting-started/dashboard), or running a single trigger now. Scheduled ([cron](/docs/triggers/cron)) and [webhook](/docs/triggers/webhook)-triggered runs are not checkpointed.

Restoring a version [#restoring-a-version]

Select a version and click **Restore*&#x2A;. Before it swaps in the older graph, your current canvas is saved as a &#x2A;*"Before restore"** milestone, so a restore is always undoable.

Restoring is careful about the things a raw graph swap would otherwise break:

* **Webhook URLs are preserved.** A trigger that still exists keeps its live URL. A trigger you had deleted and then restored gets its original URL back, so links you've already shared keep working.
* **Scheduling is re-derived** from the restored triggers to keep cron and webhook state in sync. Like saving, restoring never turns a schedule on by itself, enabling a schedule stays an explicit action.

Naming and deleting [#naming-and-deleting]

* **Name a version** to promote it to a permanent **Named** checkpoint, it won't be removed automatically. You can rename it later.
* **Delete** any version you no longer need from its row.

Next steps [#next-steps]

* [Saving](/docs/editor/saving) - how auto-save works
* [Running a Workflow](/docs/editor/running) - executing and inspecting runs
* [Marketplace Version Updates](/docs/marketplace/version-updates) - versions you publish for buyers
