v1.2.0
Released: 2026-09-24
Changes since v1.1.2 (2c73503..HEAD).
Features
- Unsaved-draft persistence and recovery (#172–#175, by @rafaself in the #176–#179 stack): the editor now keeps your unsaved changes safe across the situations that used to lose them. Drafts are stored per file, client-side, and recovered on return.
- Per-file draft storage (#172): unsaved edits are persisted locally per note, so a crash or accidental close no longer discards them; on reopening the note you're offered a recovery diff.
- Navigation safety (#173): switching between notes preserves the outgoing note's unsaved draft instead of dropping it.
- Browser lifecycle flush (#174): drafts are flushed on tab close / visibility-change / page-hide, and content-loss warnings are scoped per file.
- File-lifecycle carry-over (#175): renaming, moving, or deleting a file carries (or clears) its local draft correctly, and legacy local backups are remapped on moves.
- Untrusted draft content stays escaped in the recovery-diff UI (no change to the sanitization boundary).
Test Coverage
- 869 Ruby tests, 1,733 JavaScript tests (2,602 total), plus a new
draft_recoverysystem test.