diff --git a/CHANGELOG.md b/CHANGELOG.md index 2769b56bd..2c37614ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Daemon: share profile/state-dir resolution across service helpers and honor `CLAWDBOT_STATE_DIR` for Windows task scripts. - Docs: clarify multi-gateway rescue bot guidance. (#969) — thanks @bjesuiter. - Agents: add Current Date & Time system prompt section with configurable time format (auto/12/24). +- Agents: avoid false positives when logging unsupported Google tool schema keywords. - Tools: normalize Slack/Discord message timestamps with `timestampMs`/`timestampUtc` while keeping raw provider fields. - Docs: add Date & Time guide and update prompt/timezone configuration docs. - Messages: debounce rapid inbound messages across channels with per-connector overrides. (#971) — thanks @juanpablodlc. diff --git a/src/agents/pi-embedded-runner/google.ts b/src/agents/pi-embedded-runner/google.ts index 8dc3dac4b..3ed7589de 100644 --- a/src/agents/pi-embedded-runner/google.ts +++ b/src/agents/pi-embedded-runner/google.ts @@ -59,7 +59,17 @@ function findUnsupportedSchemaKeywords(schema: unknown, path: string): string[] } const record = schema as Record; const violations: string[] = []; + const properties = + record.properties && typeof record.properties === "object" && !Array.isArray(record.properties) + ? (record.properties as Record) + : undefined; + if (properties) { + for (const [key, value] of Object.entries(properties)) { + violations.push(...findUnsupportedSchemaKeywords(value, `${path}.properties.${key}`)); + } + } for (const [key, value] of Object.entries(record)) { + if (key === "properties") continue; if (GOOGLE_SCHEMA_UNSUPPORTED_KEYWORDS.has(key)) { violations.push(`${path}.${key}`); }