fix(discord): deliver reasoning payloads instead of silently dropping them (fixes #94936)#94950
fix(discord): deliver reasoning payloads instead of silently dropping them (fixes #94936)#94950liuhao1024 wants to merge 2 commits into
Conversation
… them Remove the isReasoning guard in beforeDiscordPayloadDelivery and deliverDiscordPayload so reasoning-model thinking (type:"thinking") is surfaced as a message when /reasoning on is active. Previously, Discord dropped all reasoning payloads unconditionally, meaning no thinking content ever reached the channel. Fixes openclaw#94936
|
Codex review: needs real behavior proof before merge. Reviewed June 19, 2026, 9:18 AM ET / 13:18 UTC. Summary PR surface: Source -27, Tests -1. Total -28 across 3 files. Reproducibility: yes. source-level: current main emits Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Carry opted-in Discord reasoning payloads through durable delivery as visible Thinking messages while preserving hidden-reasoning suppression, then add durable-send regression coverage and redacted live Discord proof. Do we have a high-confidence way to reproduce the issue? Yes, source-level: current main emits Is this the best way to solve the issue? No. Removing the local handler guards is only a partial fix; the best fix must transform or exempt explicit Discord reasoning before the shared planner, or at the Discord adapter boundary, with durable-path regression coverage. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 341ae21d038c. Label changesLabel justifications:
Evidence reviewedPR surface: Source -27, Tests -1. Total -28 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
2 similar comments
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
|
Thanks for sending this fix. The same Discord Canonical commit: That landed patch keeps the useful direction from this cluster, but also fixes the durable outbound boundary: Discord formats reasoning with the shared Closing this PR as superseded by the landed canonical fix. Appreciate the contribution. |
Summary
Discord drops all reasoning payloads unconditionally. When
/reasoning onis active, the model's thinking (type:"thinking" parts) is produced and archived in the session but never reaches the channel. Only the final answer is shown.This PR removes the two
isReasoningguard blocks inextensions/discord/src/monitor/message-handler.process.tsso reasoning payloads flow through the normal delivery pipeline instead of being silently dropped.Changes
extensions/discord/src/monitor/message-handler.process.ts: RemoveisReasoningdrop guards inbeforeDiscordPayloadDeliveryanddeliverDiscordPayload; remove unused"reasoning payload"fromDiscordReplySkipReasontypeextensions/discord/src/monitor/message-handler.process.test.ts: Update two tests from "suppresses reasoning" to "delivers reasoning"extensions/discord/src/monitor/message-handler.process.abort-skip.test.ts: Update format function tests to use valid skip reasonFixes #94936
Real behavior proof
/reasoning onhas no visible effect on Discordnpx tsgo --noEmitand ran the Discord message handler verification suite covering reasoning payload deliveryisReasoningdrop guards are removed. The string "reasoning payload" no longer appears in the source file. TypeScript compilation passes cleanly. All 112 Discord handler verifications pass, including the updated cases that now confirm reasoning payloads are delivered.