Add server-side client activity tracking for smart notifications

- Add client_heartbeat message type for clients to report activity
- Add shouldNotify field to attention_required events
- Track client activity (focusedAgentId, lastActivityAt) per session
- WebSocketServer checks all sessions to determine shouldNotify
- If any client is active on the agent (within 60s), shouldNotify=false
- Add onAgentAttention callback to AgentManager for clean separation
This commit is contained in:
Mohamed Boudra
2026-01-13 11:50:13 +07:00
parent 2fa7ec17cb
commit 7f7f5c53e6
6 changed files with 325 additions and 3 deletions
@@ -447,6 +447,17 @@ export class DaemonClientV2 {
this.sendSessionMessage({ type: "clear_agent_attention", agentId });
}
sendHeartbeat(params: {
focusedAgentId: string | null;
lastActivityAt: string;
}): void {
this.sendSessionMessage({
type: "client_heartbeat",
focusedAgentId: params.focusedAgentId,
lastActivityAt: params.lastActivityAt,
});
}
// ============================================================================
// Conversation / Session RPC
// ============================================================================