fix(slack): require delivery receipts for replies#80749
Conversation
|
Codex review: needs real behavior proof before merge. Summary Reproducibility: no. full end-to-end current-main reproduction was established in this review. The failure is source-reproducible: current main can turn missing Slack Real behavior proof Next step before merge Security Review detailsBest possible solution: Land a receipt-based Slack delivery fix after contributor-provided live or redacted runtime proof shows Slack timestamp correlation and no false delivered state; keep broader fallback/reconciliation policy in the related issues. Do we have a high-confidence way to reproduce the issue? No full end-to-end current-main reproduction was established in this review. The failure is source-reproducible: current main can turn missing Slack Is this the best way to solve the issue? Yes, the PR direction is the narrow maintainable fix for this path: require concrete Slack timestamps and carry delivery identities into dispatch and hooks. The remaining blocker is real Slack proof, not a different implementation direction found in this pass. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 0b5531749499. |
|
Live verification evidence from the PR checkout is now available. Tested branch/commit:
Live Slack evidence:
Important caveat:
@clawsweeper could you please re-review with this live evidence? We would really like to get this Slack delivery receipt fix merged. |
|
I added related production evidence to #80715 here: Flagging it here because it may matter for this PR’s acceptance criteria. The current live verification comment is useful, but it explicitly covers the Slack message-tool receipt path with I’m not claiming this PR is wrong; the receipt work still looks directionally right. The remaining gap is proof/coverage for unsuppressed normal final-answer delivery, especially where final generation completes before a durable Slack receipt exists. In that path, |
|
seeing this problem too |
Summary
unobservable sends as successful.
tscorrelation or failure signal when normal inboundreplies failed to appear in Slack.
chat.postMessagereplies now require a concrete timestamp,deliverRepliesreturnsdelivery identities, Slack dispatch marks delivery only after a real identity, and normal Slack replies emit
message_sentcorrelation.message_tool_onlyreplies, no new Slack API fetch-back/reconciliation.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Real behavior proof (required for external PRs)
Slack message identity; delivery correlation is emitted through
message_sent.locally.
pnpm test ...,pnpm build,pnpm check:changedSlack credentials.
tsnow fail as ambiguous; successful sends propagateSlack timestamps into dispatch and hooks.
conversations.replies/conversations.historymessages.Root Cause (if applicable)
chat.postMessageresults withouttscould fall through as"unknown", anddeliverRepliesreturnedvoid, so the dispatcher treated completed function calls as successful deliverywithout a concrete Slack receipt.
message_sentcorrelation, andmessage_tool_onlyfinal-text suppression had only verbose logging.platform receipt/correlation hard to distinguish from successful transcript completion.
Regression Test Plan (if applicable)
extensions/slack/src/send.blocks.test.ts,extensions/slack/src/monitor/ replies.test.ts,extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts,src/infra/ outbound/deliver.test.ts,src/auto-reply/reply/dispatch-from-config.test.tstsrejects; delivered Slack IDs flow through reply deliveryand
message_sent; no-identity results do not mark delivery complete.seams without requiring live Slack credentials.
receipt validation/correlation.
User-visible / Behavior Changes
Slack delivery ambiguity now surfaces instead of being treated as success. Plugins observing
message_sentcannow correlate normal Slack inbound replies with the delivered Slack timestamp.
Diagram (if applicable)
Security Impact (required)
Repro + Verification
Environment
Steps
Expected
Actual
Evidence
Attach at least one:
Human Verification (required)
What you personally verified (not just CI), and how:
correlation, message-tool-only suppression diagnostic, rapid same-session replies.
key correlation.
and no local Slack credential files were found.
Review Conversations
Compatibility / Migration
Risks and Mitigations
than marking an uncorrelated reply delivered.
Built with Codex