From 729a4498d90ab2772bc0deaf9ab01f975babc381 Mon Sep 17 00:00:00 2001 From: BSnizND <199837910+BsnizND@users.noreply.github.com> Date: Sun, 26 Apr 2026 17:36:36 -0700 Subject: [PATCH] Fix Google Meet consult session key scoping --- extensions/google-meet/index.test.ts | 3 +++ extensions/google-meet/src/agent-consult.ts | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/extensions/google-meet/index.test.ts b/extensions/google-meet/index.test.ts index 1439cc89e49..fb6a164cf4a 100644 --- a/extensions/google-meet/index.test.ts +++ b/extensions/google-meet/index.test.ts @@ -2052,10 +2052,13 @@ describe("google-meet plugin", () => { expect.objectContaining({ messageProvider: "google-meet", agentId: "jay", + sessionKey: "agent:jay:google-meet:meet-1", + sandboxSessionKey: "agent:jay:google-meet:meet-1", thinkLevel: "high", toolsAllow: ["read", "web_search", "web_fetch", "x_search", "memory_search", "memory_get"], }), ); + expect(sessionStore).toHaveProperty("agent:jay:google-meet:meet-1"); await handle.stop(); expect(bridge.close).toHaveBeenCalled(); diff --git a/extensions/google-meet/src/agent-consult.ts b/extensions/google-meet/src/agent-consult.ts index 20b7692da36..80b3e78b023 100644 --- a/extensions/google-meet/src/agent-consult.ts +++ b/extensions/google-meet/src/agent-consult.ts @@ -8,6 +8,7 @@ import { resolveRealtimeVoiceAgentConsultToolsAllow, type RealtimeVoiceTool, } from "openclaw/plugin-sdk/realtime-voice"; +import { normalizeAgentId } from "openclaw/plugin-sdk/routing"; import type { GoogleMeetConfig, GoogleMeetToolPolicy } from "./config.js"; export const GOOGLE_MEET_AGENT_CONSULT_TOOL_NAME = REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME; @@ -26,12 +27,14 @@ export async function consultOpenClawAgentForGoogleMeet(params: { args: unknown; transcript: Array<{ role: "user" | "assistant"; text: string }>; }): Promise<{ text: string }> { + const agentId = normalizeAgentId(params.config.realtime.agentId); + const sessionKey = `agent:${agentId}:google-meet:${params.meetingSessionId}`; return await consultRealtimeVoiceAgent({ cfg: params.fullConfig, agentRuntime: params.runtime.agent, logger: params.logger, - agentId: params.config.realtime.agentId, - sessionKey: `google-meet:${params.meetingSessionId}`, + agentId, + sessionKey, messageProvider: "google-meet", lane: "google-meet", runIdPrefix: `google-meet:${params.meetingSessionId}`,