fix: keep threaded Slack message sends route-bound for reply dedupe#90045
fix: keep threaded Slack message sends route-bound for reply dedupe#90045ffluk3 wants to merge 1 commit into
Conversation
Preserve implicit Slack thread ids in messaging-tool send telemetry and require thread-aware dedupe for later automatic replies and followups. Adds regression coverage for Slack thread routing while keeping Telegram topic suppression behavior intact. Refs: openclaw#90044 Co-authored-by: Copilot <[email protected]>
|
Codex review: needs real behavior proof before merge. Reviewed June 14, 2026, 12:49 AM ET / 04:49 UTC. Summary PR surface: Source +24, Tests +163. Total +187 across 11 files. Reproducibility: yes. source-reproducible: current main omits the routed origin thread from reply dedupe and records only explicit generic message-tool thread ids. I did not run a live Slack workspace reproduction in this read-only review. Review metrics: 1 noteworthy metric.
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: Land one canonical Slack thread-aware reply-dedupe fix that records message-tool thread evidence from the actual outbound threading decision and includes redacted real Slack proof. Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible: current main omits the routed origin thread from reply dedupe and records only explicit generic message-tool thread ids. I did not run a live Slack workspace reproduction in this read-only review. Is this the best way to solve the issue? No, not yet: carrying thread evidence through the existing dedupe seam is the right direction, but this patch records currentThreadId without Slack resolver target and reply-mode checks. The safer fix is to mirror the actual outbound threading decision before recording dedupe evidence. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 231b5a14d5d7. Label changesLabel justifications:
Evidence reviewedPR surface: Source +24, Tests +163. Total +187 across 11 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
|
|
Superseded by #90943, now landed as c67dc59. The landed fix includes this PR's route-aware Slack thread dedupe and extends it across queued follow-ups, delivery receipts, queue restart/overflow handling, and the other affected delivery paths. Thank you, @ffluk3, for isolating the threaded-route failure and providing the focused regression coverage. |
Summary
messagetool implicitly sends into the current Slack threadVerification
pnpm tsgo:corenode scripts/run-vitest.mjs src/agents/embedded-agent-subscribe.tools.extract.test.ts src/auto-reply/reply/reply-payloads.test.ts src/auto-reply/reply/followup-delivery.test.ts src/auto-reply/reply/agent-runner.misc.runreplyagent.test.tsCloses #90044