diff options
Diffstat (limited to 'apps/web/src/core')
| -rw-r--r-- | apps/web/src/core/index.ts | 3 | ||||
| -rw-r--r-- | apps/web/src/core/managers/save-manager.ts | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/apps/web/src/core/index.ts b/apps/web/src/core/index.ts index 0977666f..40352737 100644 --- a/apps/web/src/core/index.ts +++ b/apps/web/src/core/index.ts @@ -10,6 +10,7 @@ import { AudioManager } from "./managers/audio-manager"; import { SelectionManager } from "./managers/selection-manager"; import { ClipboardManager } from "./managers/clipboard-manager"; import { DiagnosticsManager } from "./managers/diagnostics-manager"; +import { VersionsManager } from "@/versions"; import { registerDefaultEffects } from "@/effects"; import { registerDefaultMasks } from "@/masks"; import { registerTranscriptionDiagnostics } from "@/transcription/diagnostics"; @@ -28,6 +29,7 @@ export class EditorCore { public readonly selection: SelectionManager; public readonly clipboard: ClipboardManager; public readonly diagnostics: DiagnosticsManager; + public readonly versions: VersionsManager; private constructor() { registerDefaultEffects(); @@ -44,6 +46,7 @@ export class EditorCore { this.selection = new SelectionManager(this); this.clipboard = new ClipboardManager(this); this.diagnostics = new DiagnosticsManager(this); + this.versions = new VersionsManager({ editor: this }); registerTranscriptionDiagnostics({ diagnostics: this.diagnostics }); this.playback.bindTimelineScope(); this.command.registerReactor(() => { diff --git a/apps/web/src/core/managers/save-manager.ts b/apps/web/src/core/managers/save-manager.ts index 8cb2275a..26d8b323 100644 --- a/apps/web/src/core/managers/save-manager.ts +++ b/apps/web/src/core/managers/save-manager.ts @@ -96,6 +96,10 @@ export class SaveManager { try {
await this.editor.project.saveCurrentProject();
+ // Auto-checkpoint on every successful save; throttled internally.
+ this.editor.versions.writeAutoCheckpoint().catch((error) => {
+ console.error("Failed to write auto-checkpoint:", error);
+ });
} finally {
this.isSaving = false;
if (this.hasPendingSave) {
|
