Skip to content

v3.6.1 — Teardown hygiene follow-up

Choose a tag to compare

@bvisible bvisible released this 09 Jun 09:26
· 56 commits to main since this release

Teardown hygiene follow-up

A small but real follow-up to #41 (shipped in v3.6.0).

🔌 Fixed — module-level timers pinned the event loop

tunnel-manager.js (monitorTunnels, every 30 s) and session-manager.js (inactive-session cleanup, every 5 min) registered module-level setInterval timers that were never unref()'d, so importing either module kept the Node event loop alive on its own.

  • Both are now unref()'d, matching the keepalive and cleanup timers fixed in #41.
  • The forced-exit added in #41 already made these harmless for the orphan-process bug — this restores proper teardown hygiene so process lifetime tracks the stdio transport, not a background timer.
  • Verified: before, importing either module never exits on its own; after, both exit naturally. Full npm test (including test:lifecycle) stays green.

Full changelog: https://github.com/bvisible/mcp-ssh-manager/blob/main/CHANGELOG.md#361---2026-06-09