fix(gateway): clear pairing state on device token mismatch (#22071)

Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: ad38d1a529
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
This commit is contained in:
Mariano
2026-02-20 18:21:13 +00:00
committed by GitHub
parent 094dbdaf2b
commit 5dd304d1c6
5 changed files with 73 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import { join } from "node:path";
import { describe, expect, test } from "vitest";
import {
approveDevicePairing,
clearDevicePairing,
getPairedDevice,
removePairedDevice,
requestDevicePairing,
@@ -221,4 +222,13 @@ describe("device pairing tokens", () => {
await expect(removePairedDevice("device-1", baseDir)).resolves.toBeNull();
});
test("clears paired device state by device id", async () => {
const baseDir = await mkdtemp(join(tmpdir(), "openclaw-device-pairing-"));
await setupPairedOperatorDevice(baseDir, ["operator.read"]);
await expect(clearDevicePairing("device-1", baseDir)).resolves.toBe(true);
await expect(getPairedDevice("device-1", baseDir)).resolves.toBeNull();
await expect(clearDevicePairing("device-1", baseDir)).resolves.toBe(false);
});
});