fix(feishu): skip reply anchor for DM streaming cards (fixes #94922)#94969
fix(feishu): skip reply anchor for DM streaming cards (fixes #94922)#94969bowenluo718 wants to merge 1 commit into
Conversation
…#94922) - Fix streaming.start() to use sendReplyToMessageId instead of raw replyToMessageId - Add tests for DM skip, group topic preserve, and P2P thread preserve scenarios - All existing tests pass (85/85 in reply-dispatcher.test.ts, 87/87 in bot.test.ts) Fixes openclaw#94922
|
Codex review: needs real behavior proof before merge. Reviewed June 20, 2026, 1:25 PM ET / 17:25 UTC. Summary PR surface: Source 0, Tests +125. Total +125 across 2 files. Reproducibility: yes. from source: ordinary Feishu DMs set skipReplyToInMessages, but current main still passes raw replyToMessageId into streaming-card start, which selects reply mode. I did not run a live Feishu tenant reproduction in this read-only review. 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: Land one canonical narrow Feishu dispatcher fix after the tests use supported dispatcher parameters and redacted live Feishu proof or a maintainer override confirms ordinary DMs lose the Reply-to label while direct-thread and group/topic replies remain routed. Do we have a high-confidence way to reproduce the issue? Yes, from source: ordinary Feishu DMs set skipReplyToInMessages, but current main still passes raw replyToMessageId into streaming-card start, which selects reply mode. I did not run a live Feishu tenant reproduction in this read-only review. Is this the best way to solve the issue? No, not as submitted. Reusing sendReplyToMessageId is the right narrow runtime fix, but the added tests use unsupported parameters and the PR still needs real Feishu proof or maintainer override. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against ad5d2cbc1bcb. Label changesLabel justifications:
Evidence reviewedPR surface: Source 0, Tests +125. Total +125 across 2 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
|
Summary
Fix Feishu streaming cards incorrectly using reply mode for ordinary direct messages, causing "Reply to [User]" labels and slower message delivery.
Fixes #94922
Real behavior proof (required for external PRs)
Behavior addressed:
Feishu DM replies were showing "Reply to [User]" labels due to streaming path not respecting the
skipReplyToInMessagesdecision that was already correctly applied to non-streaming path.Real setup tested:
Exact steps or command run after fix:
After-fix evidence:
Observed result after the fix:
All unit tests pass including 3 new tests specifically covering the reported bug scenario and regression prevention.
What was not tested:
Live Feishu tenant validation - requires maintainer access to Feishu environment to verify the visual "Reply to" label is removed in actual DM conversations.
Tests and validation
Added 3 new test cases in
reply-dispatcher.test.ts:All existing tests pass: 85/85 in reply-dispatcher.test.ts, 87/87 in bot.test.ts
No breaking changes to existing functionality
Risk checklist
Did user-visible behavior change? (
Yes/No)Yes - Intentional fix: Feishu DM replies will no longer show "Reply to [User]" labels when streaming is enabled (default behavior). This restores the correct behavior that existed before the streaming feature was added.
Did config, environment, or migration behavior change? (
Yes/No)No - No configuration changes required. The fix uses existing
skipReplyToInMessageslogic that was already calculated but not applied to streaming path.Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)No - Only affects message routing mode (reply vs create), no security implications.
What is the highest-risk area?
How is that risk mitigated?
Current review state
What is the next action?