Harden MCP tooling: correctness fixes, validation, and new sim/device tools#12
Merged
Merged
Conversation
… tools A reliability/consistency pass across the MCP tools and CLI, plus new simulator/device tools (tool count 120 -> 125). All changes verified against a real Bazel iOS workspace. Highlights: - Fix combined stdout/stderr JSON parsing (simctl list, swift dump-package, idb accessibility snapshot) - Host-arch-aware iOS simulator CPU (BAZEL_IOS_SIMULATOR_CPU); quote-aware BAZEL_IOS_STARTUP_ARGS; env-overridable discover scope - LLDB: per-command output buffer (fixes >500KB deadlock), newline/quote injection guards, session cleanup on shutdown - Streaming tools return structured content; Bazel exit-code annotations - Scaffold: bundleId/minimumOs/rulesVersion validation, families & bazelVersion options, iOS Info.plist keys, absolute config path - New tools: bazel_ios_uninstall_app, bazel_ios_device_uninstall_app, bazel_ios_device_list_apps, bazel_ios_add_media, bazel_ios_get_app_container - Doctor reports idb/pymobiledevice3/maxOutput; README env-var section - Runtime smoke script + CI smoke step; +45 tests (575 -> 619 passing) Note: also snapshots in-progress xcode-native-mcp, command-log, and diagnostics modules already present in the working tree. Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
maatheusgois-dd
marked this pull request as ready for review
June 29, 2026 23:55
maatheusgois-dd
added a commit
that referenced
this pull request
Jul 17, 2026
Resolve conflicts keeping Bitrise auth stripping on top of main's hardening (PR #12). Fix duplicate expandTilde/resolvePath in config.ts. Generated-by: Cursor Co-authored-by: Cursor <cursoragent@cursor.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.
Summary
A reliability/consistency hardening pass across the MCP tools and CLI, plus new simulator/device tools. Tool count 120 → 125; test suite 575 → 619 passing. Every change was validated against a real Bazel iOS workspace (
~/projects/ios) and a booted simulator.simctl list,swift package dump-package, idb accessibility snapshot); host-arch-aware iOS simulator CPU (BAZEL_IOS_SIMULATOR_CPU); quote-awareBAZEL_IOS_STARTUP_ARGS; env-overridable discover scope; macOSreadBundleIdnow handlesContents/Info.plist.structuredContent; Bazel exit-code annotations; device launch/stop/screenshot now surface error hints + structured content; SPM flag parity (-c/--debug); config keeps string-typed keys as strings.bazel_ios_uninstall_app,bazel_ios_device_uninstall_app,bazel_ios_device_list_apps,bazel_ios_add_media,bazel_ios_get_app_container(+ CLI verbs).families&bazelVersionoptions, iOSInfo.plistkeys, absolute config path.doctorreports idb/pymobiledevice3/maxOutput; README env-var section; runtime smoke script + CI smoke step;--version/-hflags;device-app-pathCLI.Scope
Validation
Compatibility
--version/-h, streaming structured content, Bazel exit hints)Notes For Reviewers
set_content_sizetool was prototyped then removed after live testing showedsimctl ui content_sizehangs on Xcode 26.3.Made with Cursor