Batch undo must say whether it is all-or-nothing
Aliases: batch undo · all-or-nothing undo · partial undo
What it is
Twenty items selected and deleted: when undo is pressed, people must know whether all twenty come back, or whether some of them can be pulled back. Scope has to be stated as whole or selectable parts. When scope is vague, people either dare not undo (afraid of reversing the items they meant) or undo and then find the few they wanted cannot return. This entry is only about the scope semantics of a batch. It is not about the countdown, and not about stack order across multiple acts.
Why it happens
A batch folds many objects into one intention, but a slip is often true of only a few: the list included some that should not have been deleted. Whole-batch undo matches “this click was wrong”; partial undo matches “a few shots in this click were wrong.” Both are legitimate; neither should be guessed. A control that only says “Undo” is read as whole—that is the habit from single-object undo. If the implementation is actually partial, or if some items have already left the window, the result fights the habit. Stating scope draws the set boundary: twenty of twenty, or twenty with checkboxes.
Where it stops holding
Partial undo needs each item to still be independently recoverable; if the backend is one transaction, only whole is possible, so do not offer fake per-item checks. On a large batch, picking items to undo becomes a burden of its own; support rule-based invert (“restore only the type that was included by mistake”) rather than walking twenty checkboxes. For a batch that selected across pages, the scope sentence must include the count actually affected; “undo selection” that never mentions two hundred cross-page rows is a lie.
Applying it
- Batch success copy says “undo all N items” or offers “choose which to restore.”
- Whole undo must not quietly leave some items unrestored afterward; if some are already irreversible, drop them from the undoable set up front and name them.
- Partial undo shows the selected count and a restore preview; checks can still change before confirm.
- Verify by deleting a list that includes deliberate mistaken selections, then asking “which items will undo bring back.” If the answer disagrees with the implementation, scope was not stated.
Related
- Within the group: H3.12.1 The undo window needs a visible countdown · H3.12.3 Multi-step undo follows last-in, first-out · H3.12.4 When the window closes, irreversibility must be explicit
- Adjacent: H8.02 Batch operations · H3.13 Handling partial failure · H3.04 Undo over confirm
- Search terms:
batch undo·undo scope·partial undo