feat(chat): Add configurable GitHub mention ingress#361
Conversation
Introduce the canonical delivery spec for GitHub mentions in Junior V1, detailing entry surfaces, one-turn delivery semantics, and markdown output expectations. This spec outlines the behavior for handling GitHub comments, including mention-only triggers and retry mechanisms, while clarifying non-goals and future extension points. Also, update the index to include the new GitHub agent delivery spec.
Add the GitHub agent delivery specification to the AGENTS.md index, detailing the contract for handling GitHub mentions and comment delivery. This update ensures comprehensive documentation of all agent specifications.
…nd webhook factories
Enhance documentation for GitHub integration by introducing a section on the optional GitHub mention webhook (V1). Include required environment variables, expected behavior, and configuration steps for setting up the webhook. Clarify that the V1 behavior is mention-only, requiring explicit `@<bot>` mentions in comments to trigger responses. Update related sections to reflect these changes.
|
@yezz123 is attempting to deploy a commit to the Sentry Team on Vercel. A member of the Team first needs to authorize it. |
Make Slack and GitHub ingress opt-in through createApp and juniorNitro instead of env-based or partial production-bot wiring. Disabled webhook platforms now return 404 before adapter initialization, and Slack-only callback routes are only registered when Slack ingress is enabled. Move Slack tool implementations under the Slack feature folder and keep the shared tool runtime contract platform-neutral. GitHub mention handling now normalizes configured bot handles and avoids parking GitHub turns into the Slack resume queue. Co-Authored-By: GPT-5 Codex <noreply@openai.com>
|
thanks for the push! i had been fighting some technical hurdles w/ the credentialing and serverless timeouts, but this was def next up on the list i will go ahead and take over the PR and get it to a point that feels safe/stable |
Great! Let me know if you need any help or further assistance with the PR. |
|
One thing of note, we'll not be able to pull off auth right now with GitHub. Not totally sure the answer for that one, but there's still a lot of power in GitHub even w/o auth. |
from my understanding is we’re not shipping user-auth flows on the GitHub entrypoint in V1 is that right? also even without that, this path is still useful: explicit-mention turns, repo-aware analysis, patch suggestions, CI/debug help, and final comment replies. |
Enable Slack and GitHub to receive separate plugin, skill, and default config allowlists from the app initializer and Nitro config. Filter turn prompts, sandbox egress, auth prompts, and App Home against the active platform. Move Slack webhook preprocessing out of the generic webhook handler and add GitHub mention coverage, including failure replies when Sentry does not return an event ID. Refs getsentryGH-311 Co-Authored-By: GPT-5 Codex <codex@openai.com>
Use the original platform config key for runtime map lookups after normalization. Keep GitHub mention target normalization owned by production config wiring instead of the adapter wrapper. Refs getsentryGH-311 Co-Authored-By: GPT-5 Codex <codex@openai.com>
Log startup discovery once per platform/plugin/skill configuration and cache static system prompts per assistant surface. Refs getsentryGH-311 Co-Authored-By: GPT-5 Codex <codex@openai.com>
Post a GitHub reply when an auth-pause retry reaches the GitHub executor so mention turns do not disappear without user-facing output. Refs getsentryGH-311 Co-Authored-By: GPT-5 Codex <codex@openai.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8f2954f. Configure here.
| import { describeEval } from "vitest-evals"; | ||
| import { githubMention, rubric, slackEvals } from "../helpers"; | ||
|
|
||
| describeEval("GitHub Surface Contract", slackEvals, (it) => { |
There was a problem hiding this comment.
GitHub eval test uses Slack-specific test configuration
Medium Severity
The GitHub surface contract eval uses slackEvals as its describeEval configuration fixture. This means the GitHub mention eval runs under a Slack-configured harness rather than a GitHub-appropriate one. The test is specifically validating that "a GitHub mention produces a normal GitHub comment reply without Slack-only side effects," yet the eval infrastructure itself is Slack-flavored, which could mask or misattribute surface-contract violations.
Reviewed by Cursor Bugbot for commit 8f2954f. Configure here.
| rehydrateAttachmentFetchers(message); | ||
| return runtimes.slack.handleNewMention(thread, message); | ||
| } | ||
| return; |
There was a problem hiding this comment.
Silent mention drop when adapter name is missing
Low Severity
The onNewMention handler in registerProductionHandlers silently returns without processing if getAdapterName(thread) is undefined or doesn't match "github" or "slack". If a thread arrives with an unexpected or missing adapter name, the mention is silently dropped with no logging, making debugging difficult.
Reviewed by Cursor Bugbot for commit 8f2954f. Configure here.


Add GitHub comment mention ingress and make platform ingress explicitly configurable through
createAppandjuniorNitro. Apps can now enable Slack, GitHub, or both without Slack-only routes or production bot wiring being initialized for disabled platforms.GitHub Mention Handling
GitHub issue comments that mention the configured bot handle are routed through a GitHub adapter and reply executor, then posted back as final GFM comments. Mention target normalization keeps bot-handle config consistent across runtime prompts and webhook validation.
Platform Enablement
Slack remains the default platform, but disabled webhooks now return 404 before adapter initialization and Slack-only callback/resume routes are only registered when Slack is enabled. GitHub turns also avoid Slack resume queue parking.
Slack Tool Organization
Slack tool implementations now live under
chat/slack/tools, with only platform-neutral tool contracts kept underchat/tools.Fixes #311