Brifing

NeoVim's Undo File Controversy Highlights UX Duty of Care

How a broken undo feature exposed fundamental flaws in data preservation philosophy

Hacker News3 min

1Vim's undo reliability legacy

Vim's persistent undo feature has maintained backward compatibility for 20 years across major version upgrades, becoming a trusted tool for professionals who rely on it daily. The feature preserves edit history even after crashes or months-long breaks, embodying Raskin's First Law of not harming user data. Users like David Chisnall report writing books, theses, and hundreds of articles relying on this functionality without conscious thought, treating it as fundamental infrastructure rather than a feature.

2NeoVim's disruptive change

When NeoVim forked from Vim, it introduced breaking changes to the undo file format without maintaining backward compatibility or warning users. The software automatically deleted existing Vim undo files and created incompatible replacements, losing all historical edit data. Unlike typical software transitions that might warn users or maintain dual support during migration periods, NeoVim implemented this change silently, demonstrating a different philosophy toward user data preservation.

3Developer response concerns

When users reported the undo file issue, NeoVim maintainers defended the change by declaring the persistent undo format unstable and stating users shouldn't rely on it - despite the feature's name explicitly promising persistence. This response revealed a fundamental disconnect between the developers' priorities and professional users' needs, particularly regarding data integrity expectations in tools used for critical work.

4Raskin's First Law violation

Jef Raskin's principle that software must not harm user data through action or inaction was directly violated by NeoVim's approach. The incident demonstrates how even technically competent developers can fail to internalize this foundational UX principle when making architectural decisions. The law originates from Raskin's 2000 book The Humane Interface, which remains influential in interface design circles for articulating such fundamental responsibilities.

5Professional workflow impacts

For knowledge workers who use Vim for writing and coding, persistent undo serves as a safety net for creative experimentation and error recovery. Losing weeks or months of edit history can mean losing valuable work states or debugging reference points. The incident shows how seemingly technical implementation choices can have profound effects on creative and professional processes when they break established expectations.

6Open source maintainer responsibilities

The controversy highlights tensions in open source between developer autonomy and user expectations, especially when projects become infrastructure. While fork creators have technical freedom, professional users reasonably expect continuity in core functionality. The incident raises questions about whether popular open source tools should adopt more formal commitments to backward compatibility and data preservation as they mature.

7UX trust erosion

The undo file incident caused immediate loss of trust among affected users, with some abandoning NeoVim entirely. This demonstrates how single violations of core UX principles can outweigh numerous technical improvements in users' evaluation of tools. The maintainers' response compounded the damage by suggesting users shouldn't expect reliable data preservation from features explicitly designed for that purpose.

8Lessons for tool designers

The case serves as a cautionary tale about the importance of maintaining data integrity across software transitions. Successful tools recognize that user data belongs to users, not applications, and must preserve access through format changes. Designers of professional tools must balance innovation with preservation responsibilities, especially when modifying established behaviors that users rely on for critical workflows.

Original article: Hacker News — NeoVim's Undo File Controversy Highlights UX Duty of Care