From d55d2583a71ae35fa8d0d1bfbec975e67e66aafa Mon Sep 17 00:00:00 2001 From: cashmere Date: Mon, 27 Jul 2026 01:21:20 +0200 Subject: feat: git-like project versioning (v1) Linear per-project history per notes/project-versioning.md: named checkpoints (thumbnail via renderer.captureFrame) plus auto-checkpoints on save (60s throttle, ring of 20, named never rotate). Restore writes a safety checkpoint first, then swaps the document outside undo/redo. Media assets referenced by any version are pinned against deletion. Migration v31-v32 stamps the schema; the version store lives in its own IDB database with an in-memory fallback for tests. Versions popover in the editor header for jump/rename/delete. 12 new tests. --- apps/web/src/editor/use-editor.ts | 1 + 1 file changed, 1 insertion(+) (limited to 'apps/web/src/editor') diff --git a/apps/web/src/editor/use-editor.ts b/apps/web/src/editor/use-editor.ts index 6380d470..f004f53e 100644 --- a/apps/web/src/editor/use-editor.ts +++ b/apps/web/src/editor/use-editor.ts @@ -38,6 +38,7 @@ export function useEditor( editor.selection.subscribe(onChange), editor.clipboard.subscribe(onChange), editor.diagnostics.subscribe(onChange), + editor.versions.subscribe(onChange), ]; return () => { unsubscribers.forEach((unsubscribe) => { -- cgit v1.3.1