Skip to content

RT-151: wave-2 MCP tools (gate_ask, mr_comment_inline, mr_map) and gate_list cursor - #277

Merged
m4ttheweric merged 8 commits into
mainfrom
rt-151
Sep 15, 2026
Merged

m4ttheweric merged 8 commits into
mainfrom
rt-151

Conversation

@m4ttheweric

@m4ttheweric m4ttheweric commented Sep 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Grows the MCP tool roster from 12 to 15 and adds cursor support to gate_list.

  • gate_ask tool (RT-151): shared-presentation question over the daemon's gate:ask
  • mr_comment_inline tool: dedicated 30s client write timeout, tightened repair/retry language
  • mr_map tool (RT-154 re-parked): ships all-open-MR semantics; authors[me] filtering deferred to RT-154
  • gate_list cursor plus tightened gate_answer rejection sentences (RT-155)
  • Fixes mr_map repo-label ambiguity, adds a gate_ask env test, fixes a gate_list test fixture field name

Note: touches packages/rt-client/src/commands.ts (doc comment only, no shape change); rt-165 owns the 0.23.0 bump in that file, so this branch rebases over rt-165 once it lands.

Review

CodeRabbit was rate-limited (org cap: 1 review/hour) with zero comments posted; the usual fallback model (fable) was also out of usage credits, so this PR's substitute adversarial review ran on Claude Opus 5. No blocking findings. Fixed: three unguarded nested daemon-reply dereferences, gate_list's paging-end documentation, mr_comment_inline's missing GitLab-only note, an invalid test fixture value, and a gate_ask test that didn't actually cover the RT_GATE_SUBJECT-shadow contract it claimed (added the real C13 case; verified it fails without the fix). Two findings are ticketed separately rather than fixed here: a repo-identity heal-pair dedupe gap in resolveRepoIdentity (dormant today), and MCP tools returning raw daemon error codes instead of explainError prose.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 15 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 83 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: cefd5801-2f4a-424e-899a-1e5bea000edd

📥 Commits

Reviewing files that changed from the base of the PR and between 3b50b70 and 3f6a457.

📒 Files selected for processing (4)
  • e2e/tests/mcp-serve.test.ts
  • lib/mcp/__tests__/tools.test.ts
  • lib/mcp/tools.ts
  • packages/rt-client/src/commands.ts

Comment @coderabbitai help to get the list of available commands.

m4ttheweric and others added 8 commits September 15, 2026 17:09
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…e retry doc

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…_list test fixture field name

resolveRepoIdentity now refuses ambiguous repo labels instead of silently
picking the first match, naming all colliding identities in the error.
gate_ask's env-forwarding contract (sessionId/paneId from env, subject from
input only, RT_GATE_SUBJECT never read) now has a real behavioral test
instead of a shape-only placeholder. gate_list's cursor test fixture used
"next" instead of the real wire field "cursor".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ng end and mr_comment_inline's GitLab-only scope, fix invalid test fixture presentation value

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…T set)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@m4ttheweric
m4ttheweric merged commit 481f015 into main Sep 15, 2026
4 checks passed
@m4ttheweric
m4ttheweric deleted the rt-151 branch September 15, 2026 22:18
m4ttheweric added a commit that referenced this pull request Sep 17, 2026
…te_list cursor (#277)

* mcp: gate_ask tool (RT-151)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* mcp: mr_comment_inline tool with shared 30s write timeout; tighten the retry doc

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* mcp: mr_map tool (RT-154 re-parked: all open MRs)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* mcp: gate_list cursor + gate_answer rejection sentences (RT-155)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* mcp e2e: roster grows to 15

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* mcp: fix mr_map repo-label ambiguity, add gate_ask env test, fix gate_list test fixture field name

resolveRepoIdentity now refuses ambiguous repo labels instead of silently
picking the first match, naming all colliding identities in the error.
gate_ask's env-forwarding contract (sessionId/paneId from env, subject from
input only, RT_GATE_SUBJECT never read) now has a real behavioral test
instead of a shape-only placeholder. gate_list's cursor test fixture used
"next" instead of the real wire field "cursor".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* mcp tools: guard nested daemon-reply dereferences, doc gate_list paging end and mr_comment_inline's GitLab-only scope, fix invalid test fixture presentation value

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* mcp tools: add the real C13 case (no explicit subject, RT_GATE_SUBJECT set)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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