Skip to content

feat(setup): platform-aware wizard with smart workflow pre-seeding and macOS-only skip#281

Open
ichoosetoaccept wants to merge 1 commit intogetsentry:mainfrom
detailobsessed:feat/setup-platform-selection
Open

feat(setup): platform-aware wizard with smart workflow pre-seeding and macOS-only skip#281
ichoosetoaccept wants to merge 1 commit intogetsentry:mainfrom
detailobsessed:feat/setup-platform-selection

Conversation

@ichoosetoaccept
Copy link

Closes #280

Builds on the env var session defaults and --format mcp-json foundation landed in #272 to add the platform-aware wizard described in #269.

What this adds

New selectPlatforms step — the first substantive wizard prompt asks which platforms the project targets (macOS, iOS, tvOS, watchOS, visionOS) via multi-select. Previous choices are recovered on re-run from sessionDefaults.platform, sessionDefaults.simulatorPlatform, or the existing workflow set via inferPlatformsFromExisting.

PLATFORM_WORKFLOWS mapping — each platform maps to its recommended workflow set. The workflow selection prompt is pre-seeded with the union of recommended workflows for all selected platforms. Users can still freely adjust.

macOS-only guard — when macOS is the only selected platform, both the simulator selection prompt and the device selection prompt are skipped entirely (isMacOsOnly guard in collectSetupSelection). Stale simulatorId, simulatorName, and deviceId session defaults are cleaned up from config on save.

platform session default — for single-platform selections, derivePlatformSessionDefault writes platform to sessionDefaults in config.yaml. For multi-platform the key is omitted and any existing platform value is deleted.

--format mcp-json includes XCODEBUILDMCP_PLATFORM — when a single platform is selected, XCODEBUILDMCP_PLATFORM is included in the output env block.

Changes

  • src/cli/commands/setup.ts — platform selection, PLATFORM_WORKFLOWS, inferPlatformsFromExisting, filterSimulatorsByPlatforms, derivePlatformSessionDefault, macOS-only guards, mcp-json platform output
  • src/cli/commands/__tests__/setup.test.ts — tests for macOS-only skip, platform env var in mcp-json output, multi-platform handling, platform inference from existing config
  • CHANGELOG.md — new entries under [Unreleased]

Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

@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.

feat(setup): platform-aware wizard — platform selection, smart workflow pre-seeding, macOS-only simulator/device skip

1 participant