github akitaonrails/FrankMD v1.2.0
v1.2.0 — draft persistence & recovery

5 hours ago

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_recovery system test.

Don't miss a new FrankMD release

NewReleases is sending notifications on new releases.