01A manifest describes each window
Which buffers were open, the ids in each pane in tab order, which tab was on top of each pane, and which pane was active. A buffer showing in two panes appears in both, so a split is restored as a split rather than as two copies.
02Every window is restored, not just the last
Each window keeps its own manifest, so all of them come back in the order they were open, at the size and position they had. Closing a window forgets that window rather than the session.
03Only dirty buffers get their text backed up
A saved file with no edits records no backup — the disk is the truth for those, so reopening picks up whatever changed while the app was closed rather than restoring a stale copy over it.
04Untitled tabs keep their number
“new 3” comes back as “new 3” rather than being renumbered, because the number is stored with the buffer and is also what Save As offers you.
05Language, encoding and line endings travel with the tab
A file you had reinterpreted as Shift-JIS is still Shift-JIS after the restart. The tab’s format is part of the snapshot, not something re-guessed on open.
06Backups are written while you type
Off the main thread, through one serial queue so writes land in order — and the queue is drained before the process exits, so a normal quit does not race the last keystroke.
07Retired backups are kept for fourteen days
Superseded backups are moved aside rather than deleted, into a folder that is swept after two weeks. Long enough that somebody who notices the next morning still has it; short enough that it is not an archive.