Skip to content

Ensemblr 0.1.0-beta.3

Pre-release
Pre-release

Choose a tag to compare

@psoldunov psoldunov released this 13 Aug 12:20
· 12 commits to master since this release

Terminal shutdown fixes on top of beta.2. Signed, notarized, Apple silicon.

Fixed

  • Quit no longer abandons a dying PTY child. TerminalService.disposeAll() signalled each shell and returned immediately, so a child could report its exit while Electron was already destroying the JS environment — node-pty dispatches that callback from a native thread-safe function, and node-addon-api aborts the process (SIGABRT) rather than surfacing it. Quit now waits for each child to actually exit, bounded by a SIGHUP → 1s → SIGKILL → 1s escalation that fits inside the app's quit window, and a PTY stream listener can no longer throw across the native boundary.
  • An agent tab exiting just before quit no longer kills every other terminal. Agent sessions finalize asynchronously, so for up to two seconds after the child is gone the session row still reads running. Shutdown took that as a live child and waited on an exit event that had already fired, stalling both grace windows and then SIGKILLing terminals that were seconds away from exiting cleanly.
  • A terminal created during the quit grace is wound down with the rest instead of surviving as an orphaned child with a live exit handler.

Full changelog: https://github.com/ensemblr-hq/ensemblr/blob/master/CHANGELOG.md