v3.6.1 — Teardown hygiene follow-up
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(includingtest:lifecycle) stays green.
Full changelog: https://github.com/bvisible/mcp-ssh-manager/blob/main/CHANGELOG.md#361---2026-06-09