Session persistence

Quitting the app does not kill your live sessions. A detached helper process (ptyKeeper) holds open the same underlying pty file descriptor a session’s CLI process is writing to — closing the app’s own reference alone would hang up the terminal and kill the process within about a second, but a second process holding that reference keeps it alive independent of whatever happens to the app. The keeper drains the pty into a bounded backlog and serves it over a Unix socket so a relaunched app can reattach: replay the backlog, then live bytes, and send input back the same way.

The quit dialog (shown only when sessions are still live) is two buttons: cancel, or quit — quitting always leaves every session running in the background and reattaches them on next launch. There’s no separate kill-on-quit path anymore.