Skip to content

0.2.129

Latest

Choose a tag to compare

@dfallman dfallman released this 22 May 12:12

dan 0.2.129

Reliability & data-loss hardening

A defensive audit pass closing realistic paths to lost work, panics, and deadlocks:

  • Crash recovery now covers every buffer. Untitled buffers, dan newfile, and post–Save-As / reload buffers previously had no swap file, so a crash lost everything in them. They now autosave, and a new panic hook flushes unsaved buffers to their swap files before the process exits.
  • Fixed input-reachable panics: tab_width = 0 divide-by-zero in the renderer; typing non-ASCII text in the Save-As / Replace prompts; and wrapping a non-ASCII selection (auto-close) then copying it.
  • Formatter no longer risks a pipe deadlock on large files — stdin is written on a dedicated thread — and a vanished formatter worker no longer pins the editor to a busy-poll.
  • Bounded resources: undo history and the project-file index are now capped, and a file-size limit on load avoids OOM-aborting (which would have taken down every open buffer).
  • Safer saves & files: unique temp-file names (no concurrent-write collisions), swap files cleaned up on discard / force-quit, and BOM'd UTF-16 files now open and round-trip on save instead of being rejected as binary.

Command palette (Ctrl-P)

  • Navigation now accounts for divider lines — moving up/down keeps the selected item correctly in view regardless of section dividers, and the visible-row count now matches the rendered modal height on every terminal size.
  • Added a divider between recent files and commands, so the palette groups results as buffers │ recent files │ commands.

Other

  • Fixed a panic when an async formatter returns a shorter document than the buffer had.

Full changelog: 0.2.125...0.2.129