Workspace editor & diffs
Edit workspace files with autosave, recover conflicts, compare Git revisions, and review changes beside the task.
The Explorer, file previews, and diff panel operate on the active task's checkout. Confirm Local or Worktree and the branch before editing or reviewing files.
Edit and save
Open a file from the Explorer, a workspace search result, or a file link. The in-app editor provides syntax highlighting and line numbers, with a numbered plain-text editor for Explorer files larger than 250,000 characters or 1,000 lines. The editor type stays stable while the document is open. Read-only previews explain why editing is unavailable.
Changes autosave after a 400 ms pause. Saving..., Unsaved changes, and Saved reflect the current buffer and write state. Save or mod+s saves immediately; the shortcut can be remapped in keybindings. Undo, redo, and reload controls remain available.
Switching files, closing an editor, or navigating to another task first attempts to save pending edits. If a save fails, Synara keeps the draft and blocks navigation that would leave it behind. A browser reload or close can show an unsaved-changes warning while a dirty buffer remains. A retained draft is not a guarantee of recovery after a process crash, so resolve visible errors before quitting.
Resolve a save conflict
Background file changes refresh clean previews but do not silently replace unsaved edits. If the file on disk changed since your buffer was read, autosave stops and shows a conflict.
- Reload from disk loads the current file; confirm discarding unsaved changes when prompted.
- When offered by the editor, Overwrite explicitly writes your buffer over the conflicting disk version.
- For another save error, fix its cause and choose Save to retry.
Autosave does not repeatedly retry a failed write or automatically overwrite a conflict. Check the other writer or task before deciding which version to keep.
Choose a diff scope
Press mod+d to open the diff panel. The scope picker separates repository changes from the last-turn view. Use Compare with to choose another branch or recent commit, or enter a branch, tag, or commit explicitly.
Choose Split diff or Stacked diff in Diff options; the layout remains saved across app restarts. The same menu offers word wrap, whitespace filtering, and change markers. File navigation and the jump menu help narrow a large review.
Use Next change / Previous change, or alt+↓ / alt+↑ outside the terminal, to move through changes. Line blame is available in repository scopes whose line numbers map to the working tree or HEAD. It is omitted for staged, unstaged, and checkpoint-based turn diffs; absence of blame there is intentional.
Open the changed file in the in-app editor when a review needs a correction. Editor saves and external file changes refresh Git status and relevant diff views. Review the refreshed result before committing it.
Recognize partial diffs
An oversized working-tree patch displays a Partial diff warning instead of failing the whole view. Some files or changes may be missing. The displayed patch and statistics are not proof that you have reviewed the complete change set; inspect the remaining files in Git or an external editor before approving or shipping.
Continue with Pull requests for remote review and Organize & navigate for source search and document previews.
Editor defaults and insertion fixes in 0.9.0
Markdown files open in Preview by default. Switch to editing when needed. Line insertion, subsequent typing, undo and redo now refresh editor rows correctly, with less repeated edit-time work. Existing autosave and conflict-recovery rules still apply.
In Synara 1.0.1, file tabs remember their scroll position and the dock Explorer keeps the open file when switching chats. Markdown file previews render sanitized HTML. Horizontal browser, terminal and workspace tabs can be scrolled with the mouse wheel.
Native editor and JavaScript debugger
Starting with Stable 1.0.9 and Beta 1.0.9-beta.1, both apps use the Code OSS editing engine in file editors, editable diffs and previews. TypeScript and JavaScript use the nearest project configuration for completion, hover, signatures, definitions, references, rename, diagnostics, formatting and text-only quick fixes/refactors. JSON, CSS and HTML offer their language-worker features; other languages retain highlighting and editing. Large lightweight previews keep the existing fallback.
The same native document buffer owns autosave, conflict handling and undo across editing surfaces. Multi-file refactors validate each target, but saving them is not a transactional filesystem commit. No extension host, alternate workbench or crash-recovery guarantee is added.
With the editor focused, use F1 for commands, F12 for definition, Shift+F12 for references, F2 for rename and mod+. for quick fixes. Commands are configurable in Settings → Keybindings. F5 opens the debug launch dialog and F9 toggles a breakpoint.
Debugging launches trusted workspace JavaScript or a TypeScript entry point supported by the server's Node runtime, or attaches to a Node inspector on that machine's loopback interface. First use downloads a checksum-pinned Microsoft JavaScript debugger. Controls include pause/continue, stepping, call stack, variables, watches, console and output. Watches and console evaluation execute code in the debuggee. Closing an attached session detaches rather than killing the external process. Browser debugging, TSX, remote inspector hosts, interactive stdin and .vscode/launch.json recipes are not supported.
Captured live turn diffs
In Stable 1.0.8 and Beta, Turn diffs can show the last published file-tool snapshot or a complete Codex cumulative patch while work runs. They preserve Ignore whitespace and reconnect state, then switch to the final checkpoint when capture succeeds. They do not read uncaptured edits on demand. Missing baselines, incomplete patches and failed capture can leave a preview unavailable or retain the last valid snapshot. All turns still uses completed checkpoints; a live preview is not proof of completion.
Source evidence for 1.0.9: Synara release ebd0d22b39ce3a0f7c6051dddc6090e9b85dc7c3; docs/releases/1.0.9-source-audit.md, docs/providers.md, docs/core-concepts.md, docs/editor/intelligence.md, docs/mcp-connectors.md, apps/server/src/persistence/MigrationBackup.ts and docs/release.md.