Skip to content

[Fix] Fast conversations receive duplicate canned PR status updates - #1739

Draft
roomote-roomote[bot] wants to merge 3 commits into
developfrom
fix/duplicate-pr-merge-notifications-27y3lsscwh5ns
Draft

[Fix] Fast conversations receive duplicate canned PR status updates#1739
roomote-roomote[bot] wants to merge 3 commits into
developfrom
fix/duplicate-pr-merge-notifications-27y3lsscwh5ns

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @mrubens. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Stop the terminal-status webhook fan-out from treating a Fast parent's Slack, Teams, Telegram, or Discord coordinates as an ordinary direct notification target.
  • Match exact destination coordinates so non-Fast conversations and distinct child-task threads keep their canned status notifications.
  • Preserve normal pull_request_status_changed platform-event delivery and Fast rendering, with a deterministic canned fallback only when Fast fails before posting any reply.
  • Keep source-control event policy explicit: opened and terminal events use normal Fast interpretation, while feedback and conflict events retain their visibility-required presentation-only behavior.

Why this change was made

Fast child payloads inherit their parent conversation coordinates. The terminal webhook fan-out read those fields as an ordinary direct destination and posted its fixed was merged/closed by text into the Fast conversation, independently of the structured platform event that Fast also received.

Impact

Fast conversations receive the structured event and report it conversationally in session-owned wording without a preceding canned duplicate. Ordinary task conversations and dedicated child threads retain automated terminal updates, and failed Fast turns still produce one deterministic fallback when no reply was posted.

@roomote-community

roomote-community Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

1 issue outstanding. See task

  • Terminal delivery is dropped when the Fast-parent relay fails.
  • Terminal notification is still lost when status-history recording fails before Fast delivery.

Reviewed eed7931

Comment thread apps/api/src/handlers/github/notifyPullRequestTerminalStatus.ts Outdated
@roomote-roomote

roomote-roomote Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Final revision: eed7931e stops notifyPullRequestTerminalStatus from posting canned status text when an inherited destination exactly matches the Fast parent conversation. Normal Fast pull_request_status_changed delivery and conversational rendering are preserved. Non-Fast targets and distinct child-task threads still receive direct automation, while a Fast-owned fallback posts only if inference fails before any reply.

Analogous event audit: PR feedback and conflicts already arbitrate Fast-parent delivery before direct fallback; PR opened, task-settled, child-message, artifact, and automation events have no parallel canned direct poster. CI failures flow through PR feedback and remain unchanged. Focused API/SDK suites, full lint/typechecking, and pre-push checks pass.

@roomote-roomote roomote-roomote Bot changed the title [Fix] Fast sessions post duplicate PR merge notifications [Fix] Fast sessions repeat automated PR status notifications Aug 27, 2026
@roomote-roomote roomote-roomote Bot changed the title [Fix] Fast sessions repeat automated PR status notifications [Fix] Fast conversations receive duplicate canned PR status updates Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant