From b36b20d24624d51aedc4b8e6c51e1f9327adf56d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 20 Dec 2025 20:33:03 +0100 Subject: [PATCH] feat(voicewake): add computer wake word --- docs/voicewake.md | 2 +- src/gateway/server.test.ts | 4 ++-- src/infra/voicewake.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/voicewake.md b/docs/voicewake.md index 35a1e54f2..7c24c3326 100644 --- a/docs/voicewake.md +++ b/docs/voicewake.md @@ -21,7 +21,7 @@ Wake words are stored on the gateway machine at: Shape: ```json -{ "triggers": ["clawd", "claude"], "updatedAtMs": 1730000000000 } +{ "triggers": ["clawd", "claude", "computer"], "updatedAtMs": 1730000000000 } ``` ## Protocol diff --git a/src/gateway/server.test.ts b/src/gateway/server.test.ts index 69003e43f..31c7c4b52 100644 --- a/src/gateway/server.test.ts +++ b/src/gateway/server.test.ts @@ -303,7 +303,7 @@ describe("gateway server", () => { const initial = await rpcReq<{ triggers: string[] }>(ws, "voicewake.get"); expect(initial.ok).toBe(true); - expect(initial.payload?.triggers).toEqual(["clawd", "claude"]); + expect(initial.payload?.triggers).toEqual(["clawd", "claude", "computer"]); const changedP = onceMessage<{ type: "event"; @@ -369,7 +369,7 @@ describe("gateway server", () => { const firstPayload = JSON.parse(String(first?.payloadJSON)) as { triggers?: unknown; }; - expect(firstPayload.triggers).toEqual(["clawd", "claude"]); + expect(firstPayload.triggers).toEqual(["clawd", "claude", "computer"]); bridgeSendEvent.mockClear(); diff --git a/src/infra/voicewake.ts b/src/infra/voicewake.ts index 3e111df0b..f6edfa656 100644 --- a/src/infra/voicewake.ts +++ b/src/infra/voicewake.ts @@ -8,7 +8,7 @@ export type VoiceWakeConfig = { updatedAtMs: number; }; -const DEFAULT_TRIGGERS = ["clawd", "claude"]; +const DEFAULT_TRIGGERS = ["clawd", "claude", "computer"]; function defaultBaseDir() { return path.join(os.homedir(), ".clawdis");