mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:30:42 +00:00
fix(google-meet): preserve realtime provider fallback
This commit is contained in:
@@ -50,6 +50,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Google Meet: add `chrome.audioBufferBytes` for generated command-pair SoX audio commands and lower the default buffer from SoX's 8192 bytes to 4096 bytes to reduce Chrome talk-back latency.
|
||||
- Google Meet: split realtime provider config into agent-mode transcription and bidi-mode voice providers, and migrate legacy Gemini Live bidi configs with `doctor --fix`, so Gemini Live can back direct bidi fallback without breaking the default OpenClaw agent talk-back path.
|
||||
- Google Meet: expose `voiceCall.postDtmfSpeechDelayMs` in the plugin manifest schema and setup hints, so manifest-based config editing accepts the runtime-supported Twilio delay key. Thanks @vincentkoc.
|
||||
- Google Meet: keep explicit non-Google `realtime.provider` values as the transcription provider compatibility fallback when `realtime.transcriptionProvider` is unset. Thanks @vincentkoc.
|
||||
- Telegram: render shared interactive reply buttons in reply delivery so plugin approval messages show inline keyboards. (#76238) Thanks @keshavbotagent.
|
||||
- Agents/cli-runner: drop a saved `claude-cli` resume sessionId at preparation time when its on-disk transcript no longer exists in `~/.claude/projects/`, so a stale binding from a half-installed `update.run` cannot trap follow-up runs (auto-reply / Telegram direct) in a `claude --resume` timeout loop; the run starts fresh and the new sessionId is written back through the existing post-run flow. (#77030; refs #77011) Thanks @openperf.
|
||||
- Release validation: install the cross-OS TypeScript harness through Windows-safe Node/npm shims so native Windows package checks reach the OpenClaw smoke suites instead of exiting before artifact capture. Thanks @vincentkoc.
|
||||
|
||||
@@ -417,6 +417,29 @@ describe("google-meet plugin", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps realtime.provider as the transcription compatibility fallback", () => {
|
||||
expect(
|
||||
resolveGoogleMeetConfig({
|
||||
realtime: {
|
||||
provider: "custom-stt",
|
||||
},
|
||||
}).realtime,
|
||||
).toMatchObject({
|
||||
provider: "custom-stt",
|
||||
transcriptionProvider: "custom-stt",
|
||||
});
|
||||
expect(
|
||||
resolveGoogleMeetConfig({
|
||||
realtime: {
|
||||
provider: "google",
|
||||
},
|
||||
}).realtime,
|
||||
).toMatchObject({
|
||||
provider: "google",
|
||||
transcriptionProvider: "openai",
|
||||
});
|
||||
});
|
||||
|
||||
it("uses voiceProvider for bidi and transcriptionProvider for agent mode resolution", () => {
|
||||
const voiceProviders: RealtimeVoiceProviderPlugin[] = [
|
||||
{
|
||||
|
||||
@@ -443,6 +443,8 @@ export function resolveGoogleMeetConfigWithEnv(
|
||||
const twilio = asRecord(raw.twilio);
|
||||
const voiceCall = asRecord(raw.voiceCall);
|
||||
const realtime = asRecord(raw.realtime);
|
||||
const realtimeProvider = normalizeOptionalString(realtime.provider);
|
||||
const resolvedRealtimeProvider = realtimeProvider ?? DEFAULT_GOOGLE_MEET_CONFIG.realtime.provider;
|
||||
const oauth = asRecord(raw.oauth);
|
||||
const auth = asRecord(raw.auth);
|
||||
|
||||
@@ -537,11 +539,12 @@ export function resolveGoogleMeetConfigWithEnv(
|
||||
realtime.strategy,
|
||||
DEFAULT_GOOGLE_MEET_CONFIG.realtime.strategy,
|
||||
),
|
||||
provider:
|
||||
normalizeOptionalString(realtime.provider) ?? DEFAULT_GOOGLE_MEET_CONFIG.realtime.provider,
|
||||
provider: resolvedRealtimeProvider,
|
||||
transcriptionProvider:
|
||||
normalizeOptionalString(realtime.transcriptionProvider) ??
|
||||
DEFAULT_GOOGLE_MEET_CONFIG.realtime.transcriptionProvider,
|
||||
(realtimeProvider && realtimeProvider !== "google"
|
||||
? resolvedRealtimeProvider
|
||||
: DEFAULT_GOOGLE_MEET_CONFIG.realtime.transcriptionProvider),
|
||||
voiceProvider: normalizeOptionalString(realtime.voiceProvider),
|
||||
model: normalizeOptionalString(realtime.model) ?? DEFAULT_GOOGLE_MEET_CONFIG.realtime.model,
|
||||
instructions:
|
||||
|
||||
Reference in New Issue
Block a user