Undo in a shared project
Why Ctrl+Z can never revert a colleague's work, which stack it drives and how that is decided, what counts as one step, and what is not undoable at all.
All documentation — Working together
Boards and the canvas
The node builder
Modelling the world
Variables, logic and commands
Voice and audio
AI
Working together
Project settings
On this page
Undo in a project two people are editing has one question to answer before any other.
No, you cannot undo someone else’s change
Ever. And it is not a rule the app checks — it is a property of how the edits are recorded.
Every change you make is stamped with an origin that identifies you, and that stamp is local: it is never sent over the network. So a change arriving from a colleague does not carry your stamp, your undo stack only tracks changes that do, and their work is not in your stack to be undone.
There is nothing to configure and nothing that can be got wrong, because “only your own changes” is not enforced — it is the only thing that is possible.
Which undo you are driving
There is not one stack. There is the project’s, plus one for each open document or spreadsheet — because a document’s contents live in their own shared document, and a single undo history cannot span two of them.
Which one Ctrl+Z drives is decided by where your caret is, never by which section is open.
| Your caret is in | The stack that responds |
|---|---|
| The canvas | The project |
| A field bound to project data — a code, a condition, an expression, a name | The project |
| A rich-text field on a node or an entity | The project |
| A document body | That document |
| A spreadsheet cell | That spreadsheet |
| The entity grid | The project — it edits project data |
| A popover or menu opened from a document | That document |
| A popover or menu opened from anywhere else | The project |
| A search box, or the project-rename field | Neither — those are not project edits |
| An AI prompt or chat box | Neither — that text is not project data |
| Nothing editable | The project |
The buttons tell you which one you are about to use. The Undo and Redo controls in the header read Undo (Ctrl+Z) in this project, or Undo (Ctrl+Z) in “«document title»” when a document’s stack is active. Naming the scope is the feature; if the tooltip says something you did not expect, your caret is somewhere you did not expect.
How long a stack lives
A document’s stack does survive switching sections and opening other documents. Only closing its tab or reloading ends it.
What counts as one step
One press of Ctrl+Z undoes one gesture, however large it was.
- Typing merges into a single step while you keep typing, and closes about half a second after you stop. Moving to another field ends the batch — and cannot, by itself, add a step.
- Renaming a code that rewrites forty references across your boards is one press.
- Deleting a folder with twelve children in it is one press.
- Moving five nodes at once is one press.
And some things are not steps at all. Resizing the window, zooming the canvas, or the app measuring a node’s height adds nothing to the stack: a value the app measures is never something you undo.
What is not undoable
| Not undoable | Why |
|---|---|
| Anyone else’s changes | The origin mechanism above |
| Importing a translation file | A bulk load. The recovery is re-importing. |
| Applying an AI translation batch | Same shape, and a deliberate decision |
| Editing a translation in the Localization panel | Same |
| Creating, replying to, or resolving a comment | Each already has a one-click inverse. Deleting a thread or a message, and editing a message, are undoable. |
| Renaming the project | It is a request to the server, not a project edit |
| The default board a new project starts with | It is seeded, not authored |
| Timestamps, mention indexes and other derived data | Undoing an invisible bookkeeping write would be a step that appears to do nothing |
| Anything at all, while the connection panel is up | Undo is a write, and writes are blocked. See working at the same time. |
| Edits made before you are signed in | They still happen; they are simply not tracked |
Limits
There is no depth cap. Neither stack is trimmed, and nothing prunes an old step — the only bound is the session, which is exactly what the History panel’s own footer tells you.
The typing merge window is about half a second. Nothing else here is configurable.