Pimp My IDE / Garage dispatch
Back to garage
September 27, 2026 | editor durability / undo / data care

Undo should survive the night.

A reversible action is useful. A visible history that survives a restart is a warranty.

The take. Treat undo data as user data. Keep it across sessions, show its limits, refuse silent destruction, and test restoration after the process dies.

Undo is part of the document.

An Unsung essay uses persistent editor history to argue for a duty of care toward user data. Its sharpest example is ordinary: a developer returns after a reboot, walks back through old changes, finds the lost fragment, and copies it into the current file.[1]

The point is larger than Vim or Neovim. If a tool records the path that produced a document, that history can become valuable data. Deleting it during an upgrade or cleanup requires the same caution as deleting the document itself.

A history feature becomes a data promise when people depend on it for recovery.

History is a tree, not a back button.

Vim documents undo branches, time-based movement with :earlier and :later, explicit undo-file commands, and automatic persistence through the undofile option.[2] Neovim documents the same branch and persistence model. Its current manual also states that an existing file with the wrong undo-file signature is not overwritten unless the command is forced.[3]

That matters because the field note relays a disputed report about undo-file compatibility. The manuals prove the documented contract. They do not prove what happened in one upgrade path. Treat the incident claim as a warning to test migration, not as a settled verdict on either editor.

Make the recovery path visible.

A good recovery system answers four questions before trouble. What is saved? How many versions remain? What survives a restart? What action restores an older state without destroying the current one?

The bench below turns those questions into behavior. It stores up to eight snapshots for this page in localStorage, which MDN describes as origin-specific data that persists across browser sessions.[4] The current draft becomes a new snapshot before an older one is restored, so inspection does not erase the latest work.

Persistence is not backup.

Browser storage can be blocked. Private browsing clears it when the last private tab closes. Clearing site data removes it. The demo says this at the control, not in a buried policy.

Production tools need more: format versions, migration tests, retention rules, corruption handling, storage failure alerts, and an export path. A green save lamp means one write completed. It does not mean the data has a second copy.

Interactive makeover / persistent history

Undo warranty bay

Traditional purpose replaced: press Undo and hope the process still remembers. Better version: save visible snapshots, reopen the page, choose a version, and restore it without discarding the current draft.

Work the draft

Type, then pause. The bay records a local snapshot after 700 milliseconds. You can also set one by hand.

Checking local storage.

Recovery reel / newest first0 of 8 slots used

Choose a snapshot

Selection does not change the draft. Restore is a separate action.

Reload drill

Cut the page process and reopen it. This checks whether the newest local snapshot returns after a real reload.

Sources and limits

Open the source log
  1. Unsung, "They had no concept of a duty of care to their users.", published August 28 and read September 27, 2026. It relays David Chisnall's account and uses persistent undo to discuss user-data care. The reported Neovim incident is not treated here as independently verified.
  2. Vim 9.2 reference manual, undo persistence, read September 27, 2026. It documents undo branches, persistent undo files, undofile, :wundo, and :rundo.
  3. Neovim documentation, undo persistence, read September 27, 2026. It documents branches and persistence, including current handling for an existing file that does not look like an undo file.
  4. MDN, Window.localStorage, read September 27, 2026. It documents cross-session, origin-specific storage and the limits used in this demo's disclosure.
  5. Hacker News discussion 49867067, verified through the Hacker News API and page on September 27, 2026. It is the discovery route and a record of disagreement, not evidence for editor behavior.

Source boundary. The article argues for a recovery contract. It does not rank Vim and Neovim, reproduce the reported upgrade incident, or claim that browser storage is durable backup.