diff --git a/packages/api/src/modules/mesh/v1-router.ts b/packages/api/src/modules/mesh/v1-router.ts index 066ba42..4f6b967 100644 --- a/packages/api/src/modules/mesh/v1-router.ts +++ b/packages/api/src/modules/mesh/v1-router.ts @@ -435,12 +435,16 @@ export const v1Router = new Hono() const onlineCounts = await db .select({ meshId: meshMember.meshId, - online: count(presence.memberId), + online: sql`count(distinct ${presence.memberId})`, }) .from(presence) .innerJoin(meshMember, eq(presence.memberId, meshMember.id)) .where( - and(inArray(meshMember.meshId, meshIds), isNull(meshMember.revokedAt)), + and( + inArray(meshMember.meshId, meshIds), + isNull(meshMember.revokedAt), + isNull(presence.disconnectedAt), + ), ) .groupBy(meshMember.meshId);