Skip to content

[Feat] Canonical @roomote mention alias on GitHub#239

Draft
mrubens wants to merge 3 commits into
developfrom
feat/roomote-mention-alias
Draft

[Feat] Canonical @roomote mention alias on GitHub#239
mrubens wants to merge 3 commits into
developfrom
feat/roomote-mention-alias

Conversation

@mrubens

@mrubens mrubens commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Product decision: user-facing copy always advertises @roomote, and every deployment listens for both @roomote and its own configured GitHub App slug. Roo Code owns the roomote GitHub App and user, so the alias cannot be claimed by a third party.

  • isMention matches the canonical alias or the effective slug, keeping the word-boundary semantics from [Fix] Require word boundaries when matching GitHub app mentions #238.
  • PR provenance footers now advertise @roomote (new ROOMOTE_CANONICAL_GITHUB_MENTION constant) instead of the deployment slug.
  • R_GITHUB_DISABLE_CANONICAL_MENTION=true opts a deployment out: it stops answering bare @roomote and its footers advertise its own slug again. For fleets where several deployments share the same repositories (e.g. nightly + preview on one org) so a bare @roomote doesn't make all of them respond. Documented on the GitHub provider docs page.
  • With the footer canonical by construction, the write-time attribution rewriter (normalizePrBodyAttributionAppMention) and its slug-resolution helper (resolveConfiguredGitHubAppSlugIfConfigured) are obsolete and removed, along with their tests and the sdk call site.
  • about-me prompt and GitHub provider docs updated; stale "hosted-product" wording on ROOMOTE_GITHUB_HOSTED_APP_SLUGS freshened.

Setup flow is untouched: it already suggests roomote-<host> at app creation and shows the deployment's real handle in invoke-method copy, which stays correct alongside the alias.

Validation: targeted suites green across env (65), github (31), api, sdk, and the full cloud-agents workflow suite; check-types clean on all affected packages; prettier and knip clean.

@roomote-roomote

roomote-roomote Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

No new code issues found. See task

Re-reviewed the only new commit since the last review (fix: cast mocked env through unknown in mention-alias tests). The delta is test-only: it widens the Env cast in two mention-alias test files from Env as Record<string, string | undefined> to Env as unknown as Record<string, string | undefined> so the mocked env can be mutated without tripping the compiler's insufficient-overlap error. This is the standard double-cast pattern, matches the surrounding test setup (per-test beforeEach/afterEach cleanup already restores R_GITHUB_DISABLE_CANONICAL_MENTION), and touches no production code or behavior. Both files are within the PR's changed-files set.

Reviewed 41313c5

@mrubens mrubens marked this pull request as draft July 12, 2026 05:39
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.

2 participants