Skip to content

fix: mcp for acp issue#17

Merged
sirily11 merged 3 commits into
mainfrom
fix
May 16, 2026
Merged

fix: mcp for acp issue#17
sirily11 merged 3 commits into
mainfrom
fix

Conversation

@sirily11

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 16, 2026 07:27
@vercel

vercel Bot commented May 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rxcode Ready Ready Preview, Comment May 16, 2026 7:44am

Request Review

@autopilot-project-manager autopilot-project-manager Bot added the bug Something isn't working label May 16, 2026
@sirily11 sirily11 enabled auto-merge (squash) May 16, 2026 07:28
@sirily11 sirily11 disabled auto-merge May 16, 2026 07:28
@sirily11 sirily11 enabled auto-merge (squash) May 16, 2026 07:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses an ACP + MCP integration issue by emitting HTTP/SSE MCP server entries in ACP’s expected discriminated-union shape and then filtering those entries based on the agent’s advertised MCP transport capabilities after initialize. It also adds local AI UI acceptance coverage and supporting tooling (scripts + accessibility identifiers) to validate MCP/tooling flows end-to-end.

Changes:

  • Extend ACP MCP server payload building to include stdio/http/sse entries and add post-initialize capability-based filtering for unsupported transports.
  • Add local AI UI acceptance tests (Codex / Claude Code / ACP) plus a minimal MCP echo server and a helper script to run the suite locally.
  • Harden CI appcast generation and add UI accessibility identifiers used by the new UI tests.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
scripts/mcp_echo_server.py Adds a simple stdio MCP JSON-RPC echo server for UI acceptance testing.
scripts/local-ai-ui-tests.sh Adds a helper script to run the local AI UI acceptance test suite.
scripts/ci/generate-appcast.sh Hardens appcast generation and validates expected output URLs/signatures/min macOS version.
RxCodeUITests/LocalAIProviderAcceptanceTests.swift Introduces end-to-end UI acceptance tests that exercise plan mode, edits, and MCP tool calls.
RxCode/Views/Toolbar/TodoProgressToolbarItem.swift Adds accessibility identifiers for UI test automation.
RxCode/Views/Toolbar/RxCodeToolbar.swift Adds accessibility identifiers for UI test automation.
RxCode/Views/RunProfile/RunProfileToolbarGroup.swift Adds accessibility identifiers for UI test automation.
RxCode/Views/MainView.swift Adds accessibility identifiers for UI test automation across key menus/views.
RxCode/Services/ThreadStore.swift Switches thread store location to AppSupport.bundleScopedURL.
RxCode/Services/MCPService.swift Emits ACP MCP server entries for stdio/http/sse and adds debug logging of payloads.
RxCode/Services/ACPService.swift Filters MCP servers by agent-advertised MCP transport support and logs resulting payload.
RxCode/Info.plist Updates Sparkle public EdDSA key.
RxCode.xcodeproj/xcshareddata/xcschemes/RxCode.xcscheme Adds the UI test target to the shared scheme’s test action.
RxCode.xcodeproj/project.pbxproj Adds a new UI test target and updates build settings / deployment targets.
Packages/Sources/RxCodeCore/Utilities/AppSupport.swift Adds RXCODE_APP_SUPPORT_DIR override for Application Support (useful for UI tests).
Packages/Sources/RxCodeChatKit/PlanSheetView.swift Adds accessibility identifiers for plan decision buttons.
Packages/Sources/RxCodeChatKit/PlanCardView.swift Adds accessibility identifier for plan card button.
Packages/Sources/RxCodeChatKit/InputBarView.swift Adds accessibility identifiers for composer controls.
Packages/Sources/RxCodeChatKit/IMETextView.swift Adds a specific accessibility identifier to the underlying NSTextView used for chat input.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +179 to +184
// Dump the full JSON payload so a comparison against a known-good
// Python repro is one log line away.
if let data = try? JSONEncoder().encode(JSONValue.array(entries)),
let json = String(data: data, encoding: .utf8) {
logger.info("[ACP-MCP] payload=\(json, privacy: .public)")
}
Comment on lines +462 to +465
if let data = try? JSONEncoder().encode(JSONValue.array(filteredMCPServers)),
let json = String(data: data, encoding: .utf8) {
logger.info("[ACP-MCP] session/new mcpServers payload=\(json, privacy: .public)")
}
Comment on lines +356 to +360
.accessibilityIdentifier("plan-button-\(accessibilityIDComponent(from: title))")
}

private func accessibilityIDComponent(from title: String) -> String {
title
Comment on lines +9 to +11
if let override = ProcessInfo.processInfo.environment["RXCODE_APP_SUPPORT_DIR"],
!override.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
return URL(fileURLWithPath: override, isDirectory: true)

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

export RXCODE_RUN_LOCAL_AI_UI_TESTS="${RXCODE_RUN_LOCAL_AI_UI_TESTS:-1}"
@sirily11 sirily11 merged commit d4a462f into main May 16, 2026
6 checks passed
@sirily11 sirily11 deleted the fix branch May 16, 2026 07:48
@sirily11

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 1.3.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants