mirror of https://github.com/openclaw/openclaw.git
The Telegram plugin injects a `buttons` property into the message tool schema via `createMessageToolButtonsSchema()`, but without wrapping it in `Type.Optional()`. This causes TypeBox to include `buttons` in the JSON Schema `required` array. In isolated sessions (e.g. cron jobs) where no `currentChannel` is set, all plugin schemas are merged into the message tool. When the LLM calls the message tool without a `buttons` parameter, AJV validation fails with: `buttons: must have required property 'buttons'`. Wrap the buttons schema in `Type.Optional()` so it is not required. |
||
|---|---|---|
| .. | ||
| src | ||
| allow-from.ts | ||
| api.ts | ||
| index.ts | ||
| openclaw.plugin.json | ||
| package.json | ||
| runtime-api.ts | ||
| setup-entry.ts | ||