fix(web-console): the paired-clients card counts both pairing planes

GameStream and native (punktfunk/1) clients pair into separate stores, and
`/status` only ever reported the GameStream certificate count. Native is the
DEFAULT plane, so a host whose clients had all paired normally — and which
Moonlight had never touched — showed "0 paired" on the dashboard.

Report the native count alongside it, the way the tray's own summary route
already does, and sum the two in the card.

Closes #10

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-28 19:13:19 +02:00
co-authored by Claude Opus 5
parent 198b1d5e80
commit f98547c41f
4 changed files with 22 additions and 3 deletions
+5 -1
View File
@@ -54,13 +54,17 @@ export const DashboardView: FC<{
label={m.status_audio()}
on={s.audio_streaming}
/>
{/* Both planes. GameStream and native (punktfunk/1) devices pair
into SEPARATE stores, and native is the DEFAULT one — counting
only the GameStream certs read as "0 paired" on a host every
one of whose clients was in fact paired. */}
<Card>
<CardContent className="flex flex-1 items-center justify-between p-4 sm:pt-6">
<span className="text-sm text-muted-foreground">
{m.status_paired_count()}
</span>
<span className="text-2xl font-semibold tabular-nums">
{s.paired_clients}
{s.paired_clients + s.native_paired_clients}
</span>
</CardContent>
</Card>
+2
View File
@@ -46,6 +46,7 @@ export const statusActive: RuntimeStatus = {
video_streaming: true,
audio_streaming: true,
paired_clients: 3,
native_paired_clients: 2,
pin_pending: false,
active_sessions: 1,
session: { width: 5120, height: 1440, fps: 240 },
@@ -75,6 +76,7 @@ export const statusIdle: RuntimeStatus = {
video_streaming: false,
audio_streaming: false,
paired_clients: 1,
native_paired_clients: 0,
pin_pending: true,
active_sessions: 0,
session: null,