Skip to content

Failure recovery

Recoverable errors retain accepted in-memory text and report the operation and path when applicable. Error text describes actual filesystem effects; it does not promise rollback after publication.

Result Retained state Next action
Invalid or unreadable startup configuration Usable editor with complete built-ins and a source/key diagnostic; no partial configured leaves apply. Correct the source and start a new session; running sessions retain their snapshot.
Failed file read or invalid UTF-8/binary input Current buffers, history and shared views. No partial file becomes a buffer. Correct the file/path or cancel the pending interaction.
Save not published Current text, history, association and unsaved state. The save has not replaced the destination. Resolve the reported error and request a fresh save.
Save published, completion unresolved The replacement exists and the actual target remains associated. A warning keeps the buffer modified; required close/quit saving is not satisfied. Inspect the target and explicitly retry saving; changed or unobserved disk state needs fresh consent.
Tree creation directory changed during its prompt No entry is created by that request, including in the replacement directory. Refresh, select the intended directory and start creation again.
Tree operation published, refresh/observation failed Published entries and reconciled visited paths remain effective. Partial deletion retains every open buffer and records actual missing paths. Resolve the reported access/path problem, then refresh.
Syntax parse/query failed or exceeded its result bound Accepted text, marks, shared positions and history remain. Styling falls back without blocking saving or editing. Continue editing; a later accepted revision can recover parsing, and a smaller visible query can still return valid styling.

Saving observes the target before temporary output and rechecks it after staging, before replacement. A detected external change aborts that attempt and cleans up its owned temporary. These conservative metadata checks do not prevent all changes in the final interval before replacement.

A rejected compound edit changes no row or shared position. Read-only changes and altered peer positions are rechecked at publication; rejection preserves marks, saved state, history and the redo future. C-g cancels transient input; normal region deactivation still follows the relevant interaction's contract.

Terminal restoration

The terminal owner attempts bracketed-paste disable, cursor show, attribute reset, alternate-screen exit and raw-mode release in that order. An earlier output failure does not skip later obligations, including raw-mode release. A combined error names every failed step and retains the first error kind. Unfinished obligations remain owned and are retried on Drop. A retry can repeat output commands already delivered after a buffered write failure; errors report attempted restoration rather than claiming that every step succeeded.

See Focused prompts for decision/cancel behavior, File tree for path changes, and Syntax highlighting for revision-qualified styling.