test(agents): add suppressToolErrors payload regressions

This commit is contained in:
Sebastian
2026-02-14 22:24:50 -05:00
parent fdb4d235fc
commit bb54fb0114
2 changed files with 37 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ Docs: https://docs.openclaw.ai
- Discord: allow exec approval prompts to target channels or both DM+channel via `channels.discord.execApprovals.target`. (#16051) Thanks @leonnardo.
- Sandbox: add `sandbox.browser.binds` to configure browser-container bind mounts separately from exec containers. (#16230) Thanks @seheepeak.
- Discord: add debug logging for message routing decisions to improve `--debug` tracing. (#16202) Thanks @jayleekr.
- Agents: add optional `messages.suppressToolErrors` config to hide non-mutating tool-failure warnings from user-facing chat while still surfacing mutating failures. (#16620) Thanks @vai-oro.
### Fixes

View File

@@ -278,6 +278,42 @@ describe("buildEmbeddedRunPayloads", () => {
expect(payloads).toHaveLength(0);
});
it("suppresses non-mutating non-recoverable tool errors when messages.suppressToolErrors is enabled", () => {
const payloads = buildEmbeddedRunPayloads({
assistantTexts: [],
toolMetas: [],
lastAssistant: undefined,
lastToolError: { toolName: "browser", error: "connection timeout" },
config: { messages: { suppressToolErrors: true } },
sessionKey: "session:telegram",
inlineToolResultsAllowed: false,
verboseLevel: "off",
reasoningLevel: "off",
toolResultFormat: "plain",
});
expect(payloads).toHaveLength(0);
});
it("still shows mutating tool errors when messages.suppressToolErrors is enabled", () => {
const payloads = buildEmbeddedRunPayloads({
assistantTexts: [],
toolMetas: [],
lastAssistant: undefined,
lastToolError: { toolName: "write", error: "connection timeout" },
config: { messages: { suppressToolErrors: true } },
sessionKey: "session:telegram",
inlineToolResultsAllowed: false,
verboseLevel: "off",
reasoningLevel: "off",
toolResultFormat: "plain",
});
expect(payloads).toHaveLength(1);
expect(payloads[0]?.isError).toBe(true);
expect(payloads[0]?.text).toContain("connection timeout");
});
it("shows recoverable tool errors for mutating tools", () => {
const payloads = buildEmbeddedRunPayloads({
assistantTexts: [],