mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 21:01:26 +00:00
fix: harden iMessage echo dedupe and reasoning suppression (#25897)
This commit is contained in:
@@ -908,6 +908,14 @@ describe("normalizeOutboundPayloadsForJson", () => {
|
||||
expect(normalizeOutboundPayloadsForJson(input)).toEqual(testCase.expected);
|
||||
}
|
||||
});
|
||||
|
||||
it("suppresses reasoning payloads", () => {
|
||||
const normalized = normalizeOutboundPayloadsForJson([
|
||||
{ text: "Reasoning:\n_step_", isReasoning: true },
|
||||
{ text: "final answer" },
|
||||
]);
|
||||
expect(normalized).toEqual([{ text: "final answer", mediaUrl: null, mediaUrls: undefined }]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("normalizeOutboundPayloads", () => {
|
||||
@@ -916,6 +924,14 @@ describe("normalizeOutboundPayloads", () => {
|
||||
const normalized = normalizeOutboundPayloads([{ channelData }]);
|
||||
expect(normalized).toEqual([{ text: "", mediaUrls: [], channelData }]);
|
||||
});
|
||||
|
||||
it("suppresses reasoning payloads", () => {
|
||||
const normalized = normalizeOutboundPayloads([
|
||||
{ text: "Reasoning:\n_step_", isReasoning: true },
|
||||
{ text: "final answer" },
|
||||
]);
|
||||
expect(normalized).toEqual([{ text: "final answer", mediaUrls: [] }]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("formatOutboundPayloadLog", () => {
|
||||
|
||||
@@ -41,6 +41,9 @@ export function normalizeReplyPayloadsForDelivery(
|
||||
payloads: readonly ReplyPayload[],
|
||||
): ReplyPayload[] {
|
||||
return payloads.flatMap((payload) => {
|
||||
if (payload.isReasoning) {
|
||||
return [];
|
||||
}
|
||||
const parsed = parseReplyDirectives(payload.text ?? "");
|
||||
const explicitMediaUrls = payload.mediaUrls ?? parsed.mediaUrls;
|
||||
const explicitMediaUrl = payload.mediaUrl ?? parsed.mediaUrl;
|
||||
|
||||
Reference in New Issue
Block a user