diff --git a/src/watcher-manager.js b/src/watcher-manager.js index 76b0f2b..6be0ac2 100644 --- a/src/watcher-manager.js +++ b/src/watcher-manager.js @@ -262,6 +262,14 @@ async function startDaemon() { return; } + // Skip heartbeat/internal sessions (agent:main:main, agent:main:cli, etc.) + // These have no real Mattermost conversation context and produce spurious status boxes. + // A heartbeat session key ends with ':main' and has no channel/thread suffix. + if (/^agent:[^:]+:main$/.test(sessionKey) || /^agent:[^:]+:cli$/.test(sessionKey)) { + logger.debug({ sessionKey }, 'Heartbeat/internal session — skipping status box'); + return; + } + // Enforce MAX_ACTIVE_SESSIONS if (activeBoxes.size >= config.maxActiveSessions) { logger.warn(