fix(message-tool): surface missing delivery results#44578
Conversation
Greptile SummaryThis PR surfaces missing message delivery results as explicit tool errors rather than silent successes. When a core Key changes:
Confidence Score: 4/5
Last reviewed commit: 9f00b90 |
|
Observed in production on a Feishu delivery path where the outbound action returned payload metadata but no confirmed delivery Before this patch, This patch intentionally treats "no concrete delivery result" as a tool error so the failure is surfaced instead of being mistaken for a successful send. |
|
This pull request has been automatically marked as stale due to inactivity. |
|
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded. Keep open. The underlying missing-delivery-result bug is credible, but this PR is not merge-ready because its receipt predicate is too strict for current accepted send-success shapes, the branch is currently conflicting, and no after-fix real behavior proof has been supplied. Canonical path: Close this stale PR. The latest review rated it F, the branch still lacks merge-ready proof, and there has been no human follow-up after the durable review. So I’m closing this here because the remaining work is already tracked in the canonical issue. Review detailsBest possible solution: Close this stale PR. The latest review rated it F, the branch still lacks merge-ready proof, and there has been no human follow-up after the durable review. Do we have a high-confidence way to reproduce the issue? Yes, at source level. Current main falls back to Is this the best way to solve the issue? No. The proposed nested- Security review: Security review cleared: The diff only changes message-tool result classification and focused tests; it does not touch dependencies, workflows, secrets, publishing, downloads, or other supply-chain surfaces. What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 5fbaf2a8a236. |
|
Status update on this PR: Added regression coverage for the two paths the Codex review flagged as missing (commit 4b01122c):
Local verification on the rebased branch:
On rebase: I attempted Would maintainers prefer:
Happy to take whichever route; just want to avoid blindly resolving the UI-tree conflicts without context. cc the production Feishu signal noted in the PR body — the silent-success fallback is still present in |
|
ClawSweeper PR egg 🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat. Where did the egg go?
|
|
ClawSweeper applied the proposed close for this PR.
|
Summary
sendaction finishes without a concrete deliverymessageIdRoot Cause
message-toolpreviously fell through tojsonResult(result.payload)whenevergetToolResult(result)returned nothing.That meant a
sendaction could look successful to the agent even when the underlying provider never produced a confirmed delivery result. In practice this can happen on best-effort / partial-failure paths, which then makes downstream logic more likely to suppress the fallback reply path or collapse intoNO_REPLY-looking behavior.Related
Test Plan
pnpm vitest run src/agents/tools/message-tool.test.tspnpm build