diff --git a/.changeset/fn-8755-file-editor-history.md b/.changeset/fn-8755-file-editor-history.md
new file mode 100644
index 0000000000..37653d379f
--- /dev/null
+++ b/.changeset/fn-8755-file-editor-history.md
@@ -0,0 +1,7 @@
+---
+"@runfusion/fusion": patch
+---
+
+summary: Add undo and redo controls to editable file editors.
+category: feature
+dev: Uses CodeMirror native history with controlled external-content baselines.
diff --git a/docs/dashboard-guide.md b/docs/dashboard-guide.md
index c8fae6e564..810c36a62b 100644
--- a/docs/dashboard-guide.md
+++ b/docs/dashboard-guide.md
@@ -1155,7 +1155,7 @@ The Files modal provides a workspace-aware file browser and editor.
## Memory View
-Memory view provides a multi-file editor for project and daily memory files. Its file editors share the same highlighted-text **Add comment** affordance as the Files modal, so memory snippets can seed a New Task with file path, snippet, and comment context.
+Memory view provides a multi-file editor for project and daily memory files. Its file editors share the same highlighted-text **Add comment** affordance as the Files modal, so memory snippets can seed a New Task with file path, snippet, and comment context. Editable file editors also provide localized **Undo** and **Redo** toolbar controls and the standard platform shortcuts: Ctrl/Cmd+Z to undo, plus Ctrl+Y or Cmd+Shift+Z to redo.
> Available when the `experimentalFeatures.memoryView` toggle is enabled.
diff --git a/packages/dashboard/app/components/FileEditor.tsx b/packages/dashboard/app/components/FileEditor.tsx
index 4f2f764f54..76620c4c04 100644
--- a/packages/dashboard/app/components/FileEditor.tsx
+++ b/packages/dashboard/app/components/FileEditor.tsx
@@ -2,9 +2,10 @@ import { useState, useCallback, useMemo, useRef, useId, useEffect } from "react"
import { useTranslation } from "react-i18next";
import ReactMarkdown from "react-markdown";
import remarkGfm from "remark-gfm";
-import { FileEdit, Eye, ListOrdered, WrapText, ChevronDown, ChevronUp, Save } from "lucide-react";
-import { EditorView, lineNumbers } from "@codemirror/view";
+import { FileEdit, Eye, ListOrdered, WrapText, ChevronDown, ChevronUp, Save, Undo2, Redo2 } from "lucide-react";
+import { EditorView, lineNumbers, keymap } from "@codemirror/view";
import { EditorState, Compartment, type Extension } from "@codemirror/state";
+import { history, historyKeymap, redo, redoDepth, undo, undoDepth } from "@codemirror/commands";
import { syntaxHighlighting, defaultHighlightStyle } from "@codemirror/language";
import { oneDark } from "@codemirror/theme-one-dark";
import { useSelectionComment } from "../hooks/useSelectionComment";
@@ -99,6 +100,7 @@ export function FileEditor({
const editorHostRef = useRef(null);
const previewRef = useRef(null);
const editorViewRef = useRef(null);
+ const createEditorStateRef = useRef<((doc: string, selection?: { anchor: number; head: number }) => EditorState) | null>(null);
const syncingFromPropsRef = useRef(false);
const localEditVersionRef = useRef(0);
const contentEditVersionsRef = useRef