Skip to content

Enable device workflow by default and unify physical device deploy#11

Merged
maatheusgois-dd merged 1 commit into
mainfrom
maatheusgois-dd/device-workflow-discoverability
Jun 5, 2026
Merged

Enable device workflow by default and unify physical device deploy#11
maatheusgois-dd merged 1 commit into
mainfrom
maatheusgois-dd/device-workflow-discoverability

Conversation

@maatheusgois-dd

Copy link
Copy Markdown
Contributor

Summary

  • Add device to default MCP workflows so agents see physical device tools without toggle-workflow device on
  • Extend bazel_ios_build_and_run with platform: device plus deviceId/deviceName, sharing deploy logic with bazel_ios_device_build_and_run
  • Add bazel_ios_device_get_app_path, session defaults for device fields, and structured install-failure responses with retry hints
  • Improve bazel_ios_health with devicectl connectivity, codesigning identity count, workspace env warnings, and both UDID formats in list_devices

Scope

  • MCP server/tools
  • CLI commands or parsers
  • Bazel build/test/discovery
  • Simulator workflows
  • Physical device workflows
  • UI automation, screenshots, video, logs, or deep links
  • LLDB debugging
  • macOS, tvOS, watchOS, or visionOS workflows
  • Swift Package Manager
  • Daemon, session defaults, config, doctor, or setup
  • Project scaffolding
  • Docs, examples, or agent skills
  • CI, release, packaging, or dependencies

Validation

  • npm run lint
  • npm run typecheck
  • npm test
  • npm run build
  • npx vitest --run --coverage
  • Manual MCP validation with Cursor or another MCP client
  • Manual CLI validation with xcodebazelmcp ...
  • Bazel workspace validation against a real Apple target
  • Simulator validation
  • Physical device validation

Compatibility

  • Adds, removes, or renames MCP tools
  • Changes CLI flags, command output, exit codes, or streaming behavior
  • Changes config files, environment variables, defaults, or profiles
  • Changes generated project scaffolding
  • Changes package contents, dependencies, Node support, or release behavior
  • Requires updates to docs, README, manifests, schemas, or skills
  • No compatibility impact

Notes For Reviewers

Default advertised tools increase from 38 → 52 (device workflow + bazel_ios_device_get_app_path).

New shared deploy path: src/core/device-deploy.ts (deployBuiltAppToDevice). On install failure after a successful build, tools return structured { build: "ok", appPath, bundleId, retryTools } plus mapped errors for locked/untrusted/signing cases.

Example device run after this lands:

bazel_ios_health
bazel_ios_build_and_run target=//app:MyApp platform=device deviceName="My iPhone" streaming=true

Follow-ups not in this PR: bazel_ios_device_preflight, Bazel server lock detection, rules_xcodeproj output path fixes, monorepo skill updates.

Made with Cursor

Agents could not discover device tools and build_and_run was simulator-only; this makes device deploy first-class with better doctor checks and install retry guidance.

Co-authored-by: Cursor <cursoragent@cursor.com>
@maatheusgois-dd maatheusgois-dd self-assigned this Jun 5, 2026
@codecov

codecov Bot commented Jun 5, 2026

Copy link
Copy Markdown

@maatheusgois-dd
maatheusgois-dd marked this pull request as ready for review June 5, 2026 21:43
@maatheusgois-dd
maatheusgois-dd merged commit 4018c72 into main Jun 5, 2026
6 of 7 checks passed
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