CopilotKit / CopilotKit/outpost

Carry GitHub follow-up comments into the Slack mirror thread

Open
#268 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: integrations roadmap: next
Dominant language
TypeScript
Stars
7
Forks
3
Avg merge
7d 16h
Merged PRs (30d)
15

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/github-app/src/webhooks/issue-comment.ts:54 and compare its producer path with the existing InboundHandler and enqueueSlackMirror usage; inspect the three files under apps/github-app/src/webhooks/. Add coverage for a stored GitHub comment becoming a threaded Slack reply, and align docs/deployment.md and .env.example with the shipped scope; if included, cover the separate discussion_comment webhook too.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, typescript
Domain
backend, documentation
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.