| 600 | clearActiveRun(sessionID) |
| 601 | const idle = idleTimers.get(sessionID); if (idle) clearTimeout(idle) |
| 602 | const due = dueTimers.get(sessionID); if (due) clearTimeout(due) |
| 603 | const watchdog = watchdogTimers.get(sessionID); if (watchdog) clearInterval(watchdog) |
| 604 | idleTimers.delete(sessionID) |
| 605 | dueTimers.delete(sessionID) |
| 606 | watchdogTimers.delete(sessionID) |
| 607 | runLocks.delete(sessionID) |
| 608 | knownSessions.delete(sessionID) |
| 609 | loopOwnedUserMessageGuards.delete(sessionID) |
| 610 | sessionStatuses.delete(sessionID) |
| 611 | sessionStatusSeenAt.delete(sessionID) |
| 612 | for (const key of handledCommands.keys()) if (key.startsWith(`${sessionID}:`)) handledCommands.delete(key) |
| 613 | } |
| 614 | if (!knownSessions.size && heartbeatTimer) { |
| 615 | clearInterval(heartbeatTimer) |
| 616 | heartbeatTimer = undefined |
| 617 | } |