Skip to content

Carry GitHub follow-up comments into the Slack mirror thread #268

Open

Description

@NathanTarbert

The Slack ticket mirror opens a thread per ticket and posts the AI reply underneath it. Community follow-ups reach that thread from Discord. They do not reach it from GitHub.

apps/github-app/src/webhooks/issue-comment.ts:54 appends its Message row with a bare prisma.message.create and never constructs an InboundHandler, so it never reaches enqueueSlackMirror. And apps/github-app/src/webhooks/ holds exactly three files — discussion-created.ts, issue-comment.ts, issues-opened.ts — so GitHub Discussions have no comment webhook at all.

Concretely: issue #42 opens a ticket, the Slack thread opens, the AI reply threads under it. The reporter then comments "still repros on 1.62.3", "here's a stack trace", "this is blocking our launch". None of it reaches Slack, nothing logs the omission, and an engineer scanning the mirror channel sees a ticket with one AI answer and reads it as the reporter having gone quiet.

v1 ships with this stated rather than fixed — docs/deployment.md and .env.example now say the mirror carries ticket-opens from Discord and GitHub, AI replies on both, and community follow-ups from Discord only, with a note that a quiet mirror thread is not evidence about the reporter. This issue is the wiring.

Two parts, and they are not the same size

Issue comments are the straightforward half: enqueue the reply job in handleIssueComment behind the same isSlackMirrorEnabled + isMirrorableSource pair the other producers use, with a test that a stored comment reaches the mirror as a threaded reply rather than a new root.

Discussion comments need a webhook that does not exist yet — discussion_comment is a separate GitHub event from discussion, so this is new subscription plus a new handler, not a change to an existing one.

Worth doing the first half alone if the second is not wanted soon; the docs would then narrow from "GitHub follow-ups" to "GitHub discussion follow-ups". Whichever ships, the wording in docs/deployment.md and .env.example has to move with it — the point of stating the limit is that it stays true.

Depends on #150.

Activity

  1. added
    roadmap: nextRoadmap horizon: after launch path clears
    area: integrationsSlack, Teams, Linear, GitHub App, Postmark, Pathfinder, HubSpot
    on Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: integrationsSlack, Teams, Linear, GitHub App, Postmark, Pathfinder, HubSpotroadmap: nextRoadmap horizon: after launch path clears

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions