Skip to content

v0.1.43

Latest

Choose a tag to compare

@hadefication hadefication released this 04 Sep 15:18

Surviving a restart

Until now, a macOS restart, shutdown or logout ended the session-persistence
promise: zmx sessions died with everything else, so every pane came back as an
empty shell and any agent that was mid-conversation was simply gone.

Zetty now notices that kind of quit and prepares for it before the sessions die:

  • Your screens come back. Each preserved pane's scrollback, colours intact,
    is replayed into the pane on relaunch, under a dim restored after restart
    divider so you can tell it from the fresh shell beneath.
  • Your agents come back. Zetty remembers which Claude Code or Codex session
    each pane was running and resumes it in that pane, in the directory the agent
    was working in and under the same agent account. Panes in background tabs are
    brought up for you a couple of seconds apart rather than waiting to be clicked.
  • Launch at login (Settings → Sessions) brings Zetty back by itself, so the
    whole thing happens while you are still typing your password.

Which session a pane was running is learned from the harness's status hooks
where they have fired, and otherwise from the harness's own session store on
disk — so an agent that has been running untouched for days is still resumed.
Where two panes share one directory, the newest sessions for it are handed out
one per pane.

Zetty never blocks a shutdown to do this: it works inside a five second budget
and always lets the restart proceed. A restart that gets cancelled after Zetty
has quit is handled too — the relaunch notices each agent is still running and
types nothing into it. ⌘Q and zetty quit behave exactly as before.

Set zetty-restart-recovery = false to turn it off. zetty quit --simulate-restart exercises the whole path without rebooting.

Also in this release

  • Agent status dots are now per pane. Hook events name the exact pane they
    came from, so two panes in the same directory no longer light up together.
  • CLI-created panes start immediately. A pane made by add-project,
    new-tab, split, break, scratch or a clone is running by the time the
    command returns, without changing the project you are looking at — so one
    session can add, drive and remove panes across many projects and send or
    capture them straight away.
  • Claude Code gains a SessionStart hook, so a pane's session is known as soon
    as it opens and stays current across /clear and --resume.