perf(xcode-ide): switch MCP to gateway tools and unblock handshake#223
Merged
cameroncooke merged 8 commits intomainfrom Feb 15, 2026
Merged
perf(xcode-ide): switch MCP to gateway tools and unblock handshake#223cameroncooke merged 8 commits intomainfrom
cameroncooke merged 8 commits intomainfrom
Conversation
commit: |
Add manifest-managed xcode_ide_list_tools and xcode_ide_call_tool for MCP xcode-ide access. Keep runtime manifest loading and CLI xcode-ide behavior unchanged. Remove handshake-time bridge tool sync from MCP startup and defer non-critical Xcode state and Sentry enrichment work until after connect to reduce startup latency. Include before/after profiling reports and startup stage instrumentation to measure handshake-path costs and validate improvements. Fixes #210 Co-Authored-By: Claude <noreply@anthropic.com>
Ignore the .claude directory and remove tracked .claude files from the repository index so local agent config is no longer versioned. Refs #210 Co-Authored-By: Claude <noreply@anthropic.com>
edc2527 to
cdd4141
Compare
De-duplicates nearly identical error classification logic from StandaloneXcodeToolsBridge and XcodeToolsBridgeManager into a single exported function in core.ts with an optional connected parameter.
Remove xcodeToolsActive/xcodeToolsAvailable from predicate context and remove the unused requiresXcodeTools/xcodeToolsAvailable predicates. This simplifies runtime visibility evaluation and avoids carrying bridge availability state in the core exposure path. Update tests and manifest docs to match the active predicate surface. Co-Authored-By: Claude <noreply@anthropic.com>
Serialize bridge tools through an explicit allowlist in standalone mode to match manager output and avoid leaking new enumerable SDK fields if the Tool type changes. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
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.
Extract shared bridge handler lookup so xcode-ide tools follow one path\nfor bridge availability and fallback behavior.\n\nExtract shared remote tool serialization used by both manager and\nstandalone bridge implementations to reduce duplication and drift.\n\nUpdate bridge tool tests/mocks to align with shared exports and keep\ncoverage around standalone fallback behavior. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switches MCP
xcode-ideintegration from startup-time proxied tool merging to manifest-managed gateway tools, so server initialization no longer blocks on Xcode bridge tool discovery.This change keeps runtime manifest loading intact, keeps CLI
xcode-idebehavior unchanged, and introduces two MCP tools in thexcode-ideworkflow:xcode_ide_list_toolsxcode_ide_call_toolBoth tools are predicate-gated with
xcodeToolsAvailable(same pattern as existing bridge debug tools), and execute bridge list/call at tool runtime with bounded timeout/error normalization instead of during MCP bootstrap.To reduce handshake latency further without feature loss, bootstrap also defers non-contract-critical work (Xcode state watcher/sync and Sentry shell-heavy enrichment) until after connect. Startup profiling instrumentation and before/after reports were added, with docs/changelog/test updates reflecting the new MCP contract.
Alternatives considered:
tools/listmerge: rejected because it can hang/fail handshake on Xcode approval/connect latency.Refs #210