Version History & Timelines
CutReady includes a full version history system backed by Git. Every save creates a snapshot that you can browse, compare, and restore — and you can branch your work into multiple timelines to experiment freely.
Snapshots
Section titled “Snapshots”A snapshot is a saved version of your entire project — all sketches, storyboards, and notes. Think of it as a checkpoint you can always return to.
Saving a Snapshot
Section titled “Saving a Snapshot”- Press Ctrl+S to open the snapshot naming prompt
- Press Ctrl+Shift+S to open the same prompt from the command palette shortcut
- Click the Save button in the Snapshots panel header
The prompt starts with an auto-generated name, but you can edit it before saving. Each save records the exact state of every project document and asset.
Navigating History
Section titled “Navigating History”The Snapshots panel shows a linear graph of your saved versions:
- Filled dots represent saved snapshots
- The topmost node is your current position (HEAD)
- Click any node to preview that version’s files
- The dirty indicator shows when you have unsaved changes — click it to see which files changed and how many lines were added or removed
Restoring a Version
Section titled “Restoring a Version”Click any snapshot in the graph, then:
- Restore — Replace your current project state with that version
- Fork — Create a new timeline branching from that point
Squashing Local Snapshots
Section titled “Squashing Local Snapshots”Use Squash recent snapshots when you have several local checkpoint saves that should become one cleaner snapshot before sharing.
- Click the squash button in the Snapshots panel header.
- Select a contiguous range ending at the current HEAD snapshot.
- Enter the replacement snapshot name.
- Confirm the squash.
Squashing rewrites only the selected local snapshots and leaves unsaved workspace changes untouched. Do this before publishing or syncing those snapshots to a remote.
Timelines (Branching)
Section titled “Timelines (Branching)”Timelines let you explore different directions without losing your original work. When you fork from a past snapshot, CutReady creates a new timeline.
Creating a Timeline
Section titled “Creating a Timeline”- Navigate to any past snapshot in the graph
- Make a change and save — CutReady asks if you want to create a new timeline
- Give it a name (e.g., “Experiment”, “Client feedback version”)
- Your new timeline branches from that point
Switching Timelines
Section titled “Switching Timelines”The timeline selector in the Snapshots panel header shows your active timeline. Click it to see all available timelines and switch between them.
Each timeline in the dropdown shows:
- Timeline name and snapshot count
- Merge — Combine this timeline into the active one
- Promote — Make this timeline the new Main
- ✕ — Delete the timeline
Promoting a Timeline
Section titled “Promoting a Timeline”If you’ve been working on a fork and want to make it your primary direction, use Promote. This swaps the branch pointers so your fork becomes Main and the old Main becomes a named timeline.
The History Graph
Section titled “The History Graph”For a bird’s-eye view of all timelines and how they relate, open the History Graph — a full DAG (directed acyclic graph) visualization.
Click History in the Snapshots panel header to open it as a dedicated tab. The graph shows:
- Colored lanes for each timeline
- Fork points where timelines diverge
- Merge commits where timelines were combined
- Branch labels at each timeline’s tip
- Ancestry indicators showing where a timeline originated
See History Graph for details.
Technical Details
Section titled “Technical Details”- Snapshots are git commits in the workspace’s
.git/repository - Each snapshot captures the project tree, including sketches, storyboards, notes, screenshots, and visuals
- The graph is computed from the commit DAG using gix (gitoxide, pure-Rust git)
- No external git installation required — everything is built into the app
- Editor state, open tabs, chat session selection, and sidebar order are stored
separately under
.git/cutready/so they do not create document snapshots