fix: suppress sessions_send warning leakage coverage (#24740) (thanks @Glucksberg)

This commit is contained in:
Peter Steinberger
2026-02-24 03:48:56 +00:00
parent 947883d2e0
commit dd145f1346
2 changed files with 23 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ Docs: https://docs.openclaw.ai
- Exec/Bash tools: clamp poll sleep duration to non-negative values in process polling loops. (#24889)
- Subagents/Announce queue: add exponential backoff when queue-drain delivery fails to reduce retry storms. (#24783)
- Config/Kilo Gateway: Kilo provider flow now surfaces an updated list of models. (#24921) thanks @gumadeiras.
- Agents/Tool warnings: suppress `sessions_send` relay errors from chat-facing warning payloads to avoid leaking transient inter-session transport failures. (#24740) Thanks @Glucksberg.
- WhatsApp/Logging: redact outbound recipient identifiers in WhatsApp outbound + heartbeat logs and remove message/poll preview text from those log lines. (#24980) Thanks @coygeek.
- WhatsApp/Auto-reply: send only final payloads to WhatsApp, suppress tool/block payload leakage (reasoning/thinking), and force block streaming off for WhatsApp dispatch so final-only delivery cannot cause silent turns. (#24962) Thanks @SidQin-cyber.
- Telegram/Media SSRF: keep RFC2544 benchmark range (`198.18.0.0/15`) blocked by default, add an explicit SSRF-policy opt-in for Telegram media downloads, and keep other channels/URL fetch paths blocked. (#24982) Thanks @stakeswky.

View File

@@ -60,4 +60,26 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => {
absentDetail,
});
});
it("suppresses sessions_send errors to avoid leaking transient relay failures", () => {
const payloads = buildPayloads({
lastToolError: { toolName: "sessions_send", error: "delivery timeout" },
verboseLevel: "on",
});
expect(payloads).toHaveLength(0);
});
it("suppresses sessions_send errors even when marked mutating", () => {
const payloads = buildPayloads({
lastToolError: {
toolName: "sessions_send",
error: "delivery timeout",
mutatingAction: true,
},
verboseLevel: "on",
});
expect(payloads).toHaveLength(0);
});
});