Two related scope-outs from the 2026-09-02 adversarial review of #468's tab restore, filed together because the fix likely shares a shape (when and what to persist).
-
SaveOpenPlans walks only MainTabControl, so a file-backed plan or query detached into its own window at exit is not written down and does not come back on restart.
-
The restore list is cleared at startup and rewritten only in OnClosed, so any abnormal exit — crash, task kill, or an OS force-shutdown past the dirty-tab prompt — restores zero tabs on the next start, clean plan tabs included. The clear-at-startup half is a deliberate poisoned-list crash-loop defense and worth keeping; the fragile half is save-only-at-clean-close. Persisting the list on tab open/close (debounced) would make restore survive exactly the exits it exists for, at the cost of a small write per tab change.
Related but separate: scratch (never-saved) query buffers are not persisted at all — #468's commit message points at "#462" for buffer persistence, and nothing implements it; that is its own feature decision.
Two related scope-outs from the 2026-09-02 adversarial review of #468's tab restore, filed together because the fix likely shares a shape (when and what to persist).
SaveOpenPlans walks only MainTabControl, so a file-backed plan or query detached into its own window at exit is not written down and does not come back on restart.
The restore list is cleared at startup and rewritten only in OnClosed, so any abnormal exit — crash, task kill, or an OS force-shutdown past the dirty-tab prompt — restores zero tabs on the next start, clean plan tabs included. The clear-at-startup half is a deliberate poisoned-list crash-loop defense and worth keeping; the fragile half is save-only-at-clean-close. Persisting the list on tab open/close (debounced) would make restore survive exactly the exits it exists for, at the cost of a small write per tab change.
Related but separate: scratch (never-saved) query buffers are not persisted at all — #468's commit message points at "#462" for buffer persistence, and nothing implements it; that is its own feature decision.