Version history & rollback

Every save creates a version. Diff word-by-word, see change classification, restore with one click, n/p shortcuts.

How versioning works

ActionWhat happens
Click SaveNew version created (auto-incremented: v1, v2, v3…)
Edit → SaveNew version, previous preserved
Click HistorySidebar opens with version list + diff viewer
Click RestoreThat version becomes current (creates new version)

No manual commits — it’s automatic, like Google Docs version history but for prompts.


Try the diff viewer

Select two versions below to see a word-level diff with change classification.

Diff Viewer

Edit either side, then compute a word-level diff.

v1 — original
v2 — revised
5 added3 removed
diff.txt
Write a detailed blog post about AI. MakeInclude it3 shortexamples.

Diff viewer features

FeatureDescription
Word-level diffNot line-by-line — individual words highlighted
Change classificationAdded (green), Removed (red), Modified (yellow)
Summary bar”3 added, 1 removed, 2 modified”
Sync scrollBoth panes scroll together
n / p shortcutsNext / Previous version (like less)
Side-by-side or unifiedToggle view mode

Keyboard shortcuts (History panel)

KeyAction
nNext version (newer)
pPrevious version (older)
EnterOpen selected version
rRestore selected version
EscClose history panel

Auto-save behavior

  • Debounced: 2 seconds after you stop typing
  • Version threshold: Only creates a new version if content changed > 10 characters
  • Manual Save (Cmd+S): Always creates a version, even for tiny changes

Version data model

{
  "versions": [
    {
      "id": "ver-uuid-003",
      "versionNumber": 3,
      "rawPrompt": "Write a {{tone}} blog post about {{topic}}.",
      "variables": { "tone": "professional", "topic": "API design" },
      "changeSummary": { "added": 2, "removed": 1, "modified": 0 },
      "createdAt": "2026-07-15T10:30:00.000Z"
    }
  ]
}

Access via API: GET /api/v1/sessions/:id/versions


Rollback vs Restore

ActionCreates new version?Use case
RestoreYes (v4 = copy of v2)“I want v2 back but keep history”
Delete versionNo”v3 was a mistake, remove it”

Best practices

HabitWhy
Save before big editsGives you a clean “before” baseline
Name important versionsIn editor: click version number → “Label v3: Client approved”
Use diff before restoreVerify you’re restoring the right changes
Weekly cleanupDelete experimental versions, keep milestones