Skip to content

Add platform-aware setup wizard#1

Open
ichoosetoaccept wants to merge 1 commit intomainfrom
feat/setup-platform-selection
Open

Add platform-aware setup wizard#1
ichoosetoaccept wants to merge 1 commit intomainfrom
feat/setup-platform-selection

Conversation

@ichoosetoaccept
Copy link
Member

@ichoosetoaccept ichoosetoaccept commented Mar 17, 2026

Adds a platform selection step to the xcodebuildmcp setup wizard. Users now choose which platforms they are targeting (macOS, iOS, tvOS, watchOS, visionOS) before selecting workflows.

What this does

  • Platform selection prompt: Multi-select at the start of the wizard. Defaults to inferring from existing config or falling back to iOS.
  • Workflow pre-seeding: Wizard pre-selects the appropriate workflow set based on chosen platforms via PLATFORM_WORKFLOWS map.
  • Simulator skip for macOS-only: When macOS is the only platform, the simulator prompt is skipped entirely (macOS apps run natively).
  • Platform in config/env: When a single platform is selected, platform is written to sessionDefaults in config.yaml and XCODEBUILDMCP_PLATFORM is included in --format mcp-json output. Multi-platform omits it so the agent can choose per-command.
  • Remembers previous choices: Re-running the wizard pre-loads existing config.yaml values including the new platform field.

Integration with upstream device selection

This integrates cleanly with upstream's workflow-driven simulator/device gating (requiresSimulatorDefault, requiresDeviceDefault): platforms drive workflow pre-seeding, workflows drive whether simulator/device prompts appear. The platformFilter is passed to selectSimulator to filter available simulators by the selected platform when a single non-macOS platform is chosen.

Tests

Four new test cases in setup.test.ts:

  • macOS-only: skips simulator prompt, writes platform: macOS to config
  • macOS-only mcp-json: XCODEBUILDMCP_PLATFORM=macOS, no simulator fields
  • iOS-only mcp-json: XCODEBUILDMCP_PLATFORM=iOS Simulator + simulator fields
  • Multi-platform mcp-json: no XCODEBUILDMCP_PLATFORM, simulator fields present

All 1495 tests pass.


Open with Devin

devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from b23e798 to 4aa34d0 Compare March 17, 2026 17:12
devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from 4aa34d0 to ff45e36 Compare March 17, 2026 17:42
devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from ff45e36 to c53d449 Compare March 17, 2026 19:35
devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from c53d449 to 4386c25 Compare March 17, 2026 19:53
devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from 4386c25 to 73b4ceb Compare March 17, 2026 20:03
devin-ai-integration[bot]

This comment was marked as resolved.

@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from 73b4ceb to e12b50a Compare March 17, 2026 20:46
Introduce platform selection to the setup wizard, recommend workflows
per platform, and avoid prompting for a simulator when macOS is the only
platform selected. Add helpers and constants (SetupPlatform,
PLATFORM_WORKFLOWS, PLATFORM_OPTIONS, infer/derive/filter helpers), a
multi-select platform prompt, and make the setup flow platform-aware
(seed workflow defaults, filter simulators, preserve platform in
sessionDefaults). Add selectionToMcpConfigJson() and a --format mcp-json
option to print a ready-to-paste MCP client config JSON block
(runSetupWizard supports 'mcp-json' early-exit). Update tests
(createPlatformPrompter and four platform-aware cases) and CHANGELOG.md
to document the new behavior.
@ichoosetoaccept ichoosetoaccept force-pushed the feat/setup-platform-selection branch from e12b50a to 48129b4 Compare March 17, 2026 21:05
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