feat: QR code phone pairing for Decky plugin + MangoHud guide revision + SteamOS version fix

- Add plugin_pairings table + migration (0028) for short-lived pairing sessions
- Add pairing API: POST /api/plugin/pair/initiate, GET /status/:token, POST /confirm
- Add /pair web page: user scans QR on phone, confirms, API key auto-created
- Plugin: 'Pair with Phone' button renders QR code (qrcode.react), polls for status, saves API key
- Plugin: new initiate_pair + check_pair_status Python RPCs
- Revise MangoHud Setup Guide into clean numbered steps
- Fix SteamOS version detection: read VERSION_ID + BUILD_ID (was just 'SteamOS')
This commit is contained in:
2026-06-28 22:09:39 +08:00
parent b637b55011
commit 1de08ed4ec
12 changed files with 3588 additions and 18 deletions
+17 -1
View File
@@ -116,4 +116,20 @@ export const importConfig = callable<[], {
hardwareSlug: string | null
}
error?: string
}>("import_config")
}>("import_config")
// ── Plugin Pairing ──────────────────────────────────────────
export const initiatePair = callable<[baseUrl?: string], {
success: boolean
token?: string
qrUrl?: string
expiresAt?: string
error?: string
}>("initiate_pair")
export const checkPairStatus = callable<[token: string, baseUrl?: string], {
status: "pending" | "confirmed" | "expired" | "invalid"
apiKey?: string
keyName?: string
error?: string
}>("check_pair_status")