mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:40:44 +00:00
fix(google-meet): preserve silent realtime joins
This commit is contained in:
@@ -27,6 +27,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Plugins/update: treat official externalized bundled npm migrations and ClawHub-to-npm fallbacks as trusted source-linked installs, so prerelease-only official plugin packages can migrate from bundled builds without being rejected as unsafe prerelease resolutions. Thanks @vincentkoc.
|
||||
- Plugins/update: clean stale bundled load paths for already-externalized pinned npm and ClawHub plugin installs, so release-channel sync does not leave removed bundled paths ahead of the installed external package. Thanks @vincentkoc.
|
||||
- Plugins/CLI: include package dependency install state in `openclaw plugins list --json` so scripts can spot missing plugin dependencies without runtime-loading plugins.
|
||||
- Google Meet: preserve `realtime.introMessage: ""` so realtime Chrome joins can stay silent instead of restoring the default spoken intro. Thanks @vincentkoc.
|
||||
- Discord/status: add degraded Discord transport and gateway event-loop starvation signals to `openclaw channels status`, `openclaw status --deep`, and fetch-timeout logs so intermittent socket resets do not look like a healthy running channel. (#76327) Thanks @joshavant.
|
||||
- Providers/OpenRouter: add opt-in response caching params that send OpenRouter's `X-OpenRouter-Cache`, `X-OpenRouter-Cache-TTL`, and cache-clear headers only on verified OpenRouter routes. Thanks @vincentkoc.
|
||||
- Providers/OpenRouter: expand app-attribution categories so OpenClaw advertises coding, programming, writing, chat, and personal-agent usage on verified OpenRouter routes. Thanks @vincentkoc.
|
||||
|
||||
@@ -451,6 +451,16 @@ describe("google-meet plugin", () => {
|
||||
).toBe("jay");
|
||||
});
|
||||
|
||||
it("preserves an empty realtime intro message for silent joins", () => {
|
||||
expect(
|
||||
resolveGoogleMeetConfig({
|
||||
realtime: {
|
||||
introMessage: "",
|
||||
},
|
||||
}).realtime.introMessage,
|
||||
).toBe("");
|
||||
});
|
||||
|
||||
it("keeps legacy command-pair audio format when custom commands omit a format", () => {
|
||||
expect(
|
||||
resolveGoogleMeetConfig({
|
||||
|
||||
@@ -271,6 +271,10 @@ function readEnvString(env: NodeJS.ProcessEnv, keys: readonly string[]): string
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function normalizeStringAllowEmpty(value: unknown): string | undefined {
|
||||
return typeof value === "string" ? value.trim() : undefined;
|
||||
}
|
||||
|
||||
function readEnvBoolean(env: NodeJS.ProcessEnv, keys: readonly string[]): boolean | undefined {
|
||||
const normalized = normalizeOptionalLowercaseString(readEnvString(env, keys));
|
||||
if (!normalized) {
|
||||
@@ -486,7 +490,7 @@ export function resolveGoogleMeetConfigWithEnv(
|
||||
normalizeOptionalString(realtime.instructions) ??
|
||||
DEFAULT_GOOGLE_MEET_CONFIG.realtime.instructions,
|
||||
introMessage:
|
||||
normalizeOptionalString(realtime.introMessage) ??
|
||||
normalizeStringAllowEmpty(realtime.introMessage) ??
|
||||
DEFAULT_GOOGLE_MEET_CONFIG.realtime.introMessage,
|
||||
agentId: normalizeOptionalString(realtime.agentId),
|
||||
toolPolicy: resolveRealtimeVoiceAgentConsultToolPolicy(
|
||||
|
||||
Reference in New Issue
Block a user