Skip to content

Version History & Timelines

Available

CutReady includes a full version history system backed by Draftline. Every save creates a snapshot that you can browse, compare, and restore — and you can branch your work into multiple timelines to experiment freely.

Changes and snapshots panel Changes and snapshots panel
The Changes and History panel shows unsaved project changes and saved Draftline 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.

  • 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.

The History section shows a 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

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

Use Squash recent snapshots when you have several local checkpoint saves that should become one cleaner snapshot before sharing.

  1. Click the squash button in the Snapshots panel header.
  2. Select a contiguous range ending at the current HEAD snapshot.
  3. Enter the replacement snapshot name.
  4. 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.

CutReady uses Draftline as the only persistence layer for versioned project content. The underlying storage is a .git/ repository, but app features talk to Draftline APIs rather than running git operations directly.

ScenarioWhat CutReady does
Edit a sketch, storyboard, or noteMarks the file as an unsaved content change. Pressing Ctrl+S creates a Draftline snapshot.
Capture or paste a screenshotStores the image under .cutready/screenshots/ and includes it in snapshots with the sketch or note that references it.
Generate a Designer visualStores the Elucim DSL JSON under .cutready/visuals/ and includes it in snapshots.
Reorder Explorer files or change open tabsStores local UI state under .git/cutready/ so it persists without dirtying content snapshots.
Run chat or agent workflowsStores runtime state locally; accepted outputs become versioned only when written to sketches, storyboards, notes, screenshots, or visuals.
Record screen/camera/audio takesStores large take assets under .cutready/recordings/, which is local-only and excluded from snapshots.
Switch projects inside a workspaceChanges the active project view without saving, discarding, or abandoning dirty Draftline workspace changes.
Sync with GitHubPublishes or pulls Draftline snapshots and timelines through the configured remote; users do not run git commands.

Timelines let you explore different directions without losing your original work. When you fork from a past snapshot, CutReady creates a new timeline.

  1. Navigate to any past snapshot in the graph
  2. Make a change and save — CutReady asks if you want to create a new timeline
  3. Give it a name (e.g., “Experiment”, “Client feedback version”)
  4. Your new timeline branches from that point

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

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.

For a bird’s-eye view of all timelines and how they relate, open the History Graph — a Draftline workspace graph visualization.

History graph visualization History graph visualization
The History Graph shows timelines, fork points, and merge snapshots

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 snapshots where timelines were combined
  • Branch labels at each timeline’s tip
  • Ancestry indicators showing where a timeline originated

See History Graph for details.

  • Snapshots are Draftline-managed versions in the workspace’s .git/ repository
  • Each snapshot captures versioned content: .sk, .sb, .md, supported image assets, .cutready/screenshots/, and .cutready/visuals/
  • Runtime paths such as .chats, .cutready/recordings/, .cutready/agent-state.db, .cutready/memory.json, and .cutready/locks.json are excluded by policy
  • The graph is computed with Draftline workspace graph helpers
  • Users do not need to run git commands — saves, branches, merges, and sync are 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