Severity: minor · packages/harness-driver/src/client.ts:464-467
The 60s lease-renewal setInterval keeps the Node event loop alive until shutdown()/disconnect() clears it — unlike the reassertTimer in the CLI attach flows, which is unref()'d (attach-drive.ts:1019). Possibly intentional (the owning process should stay alive to hold the lease), but it's an undocumented divergence: an SDK embedder that forgets to call shutdown() will hang on exit.
Fix: either unref() it for consistency, or add a comment documenting the deliberate choice.
Found during a multi-agent reliability review of the relay tool/protocol.
Severity: minor ·
packages/harness-driver/src/client.ts:464-467The 60s lease-renewal
setIntervalkeeps the Node event loop alive untilshutdown()/disconnect()clears it — unlike thereassertTimerin the CLI attach flows, which isunref()'d (attach-drive.ts:1019). Possibly intentional (the owning process should stay alive to hold the lease), but it's an undocumented divergence: an SDK embedder that forgets to callshutdown()will hang on exit.Fix: either
unref()it for consistency, or add a comment documenting the deliberate choice.Found during a multi-agent reliability review of the relay tool/protocol.