Skip to content

PR #420

PR #420 #1270

Triggered via dynamic May 16, 2026 23:07
Status Success
Total duration 1m 40s
Artifacts

codeql

on: dynamic
Matrix: analyze
Fit to window
Zoom out
Zoom in

Annotations

5 errors and 14 warnings
MAC_OS_X_PRODUCT_BUILD_VERSION and MAC_OS_X_VERSION_* hardcoded instead of normalized: src/snapshot-tests/__fixtures__/mcp/json/project-discovery/show-build-settings--success.json#L1401
The four `MAC_OS_X_*` host-OS build-settings keys (`MAC_OS_X_PRODUCT_BUILD_VERSION`, `MAC_OS_X_VERSION_ACTUAL`, `MAC_OS_X_VERSION_MAJOR`, `MAC_OS_X_VERSION_MINOR`) are hardcoded with runtime-specific values (`25D2128`, `260301`, `260000`, `260300`) in the fixture instead of being normalized in code — any macOS update on the CI runner will break these snapshots. Add them to `normalizeBuildSettingsEntryValue` in `json-normalize.ts` (parallel to `SDK_PRODUCT_BUILD_VERSION`→`<SDK_BUILD_VERSION>` / `SDK_VERSION_*`→`<SDK_VERSION>`) and add the corresponding regex to `normalize.ts` for text fixtures, then regenerate all four affected surfaces.
[TNG-GZN] MAC_OS_X_PRODUCT_BUILD_VERSION and MAC_OS_X_VERSION_* hardcoded instead of normalized (additional location): src/snapshot-tests/__fixtures__/mcp/json/project-discovery/show-build-settings--success.json#L133
The four `MAC_OS_X_*` host-OS build-settings keys (`MAC_OS_X_PRODUCT_BUILD_VERSION`, `MAC_OS_X_VERSION_ACTUAL`, `MAC_OS_X_VERSION_MAJOR`, `MAC_OS_X_VERSION_MINOR`) are hardcoded with runtime-specific values (`25D2128`, `260301`, `260000`, `260300`) in the fixture instead of being normalized in code — any macOS update on the CI runner will break these snapshots. Add them to `normalizeBuildSettingsEntryValue` in `json-normalize.ts` (parallel to `SDK_PRODUCT_BUILD_VERSION`→`<SDK_BUILD_VERSION>` / `SDK_VERSION_*`→`<SDK_VERSION>`) and add the corresponding regex to `normalize.ts` for text fixtures, then regenerate all four affected surfaces.
[TNG-GZN] MAC_OS_X_PRODUCT_BUILD_VERSION and MAC_OS_X_VERSION_* hardcoded instead of normalized (additional location): src/snapshot-tests/__fixtures__/mcp/json/project-discovery/show-build-settings--success.json#L549
The four `MAC_OS_X_*` host-OS build-settings keys (`MAC_OS_X_PRODUCT_BUILD_VERSION`, `MAC_OS_X_VERSION_ACTUAL`, `MAC_OS_X_VERSION_MAJOR`, `MAC_OS_X_VERSION_MINOR`) are hardcoded with runtime-specific values (`25D2128`, `260301`, `260000`, `260300`) in the fixture instead of being normalized in code — any macOS update on the CI runner will break these snapshots. Add them to `normalizeBuildSettingsEntryValue` in `json-normalize.ts` (parallel to `SDK_PRODUCT_BUILD_VERSION`→`<SDK_BUILD_VERSION>` / `SDK_VERSION_*`→`<SDK_VERSION>`) and add the corresponding regex to `normalize.ts` for text fixtures, then regenerate all four affected surfaces.
[TNG-GZN] MAC_OS_X_PRODUCT_BUILD_VERSION and MAC_OS_X_VERSION_* hardcoded instead of normalized (additional location): src/snapshot-tests/__fixtures__/mcp/json/project-discovery/show-build-settings--success.json#L1057
The four `MAC_OS_X_*` host-OS build-settings keys (`MAC_OS_X_PRODUCT_BUILD_VERSION`, `MAC_OS_X_VERSION_ACTUAL`, `MAC_OS_X_VERSION_MAJOR`, `MAC_OS_X_VERSION_MINOR`) are hardcoded with runtime-specific values (`25D2128`, `260301`, `260000`, `260300`) in the fixture instead of being normalized in code — any macOS update on the CI runner will break these snapshots. Add them to `normalizeBuildSettingsEntryValue` in `json-normalize.ts` (parallel to `SDK_PRODUCT_BUILD_VERSION`→`<SDK_BUILD_VERSION>` / `SDK_VERSION_*`→`<SDK_VERSION>`) and add the corresponding regex to `normalize.ts` for text fixtures, then regenerate all four affected surfaces.
[TNG-GZN] MAC_OS_X_PRODUCT_BUILD_VERSION and MAC_OS_X_VERSION_* hardcoded instead of normalized (additional location): src/snapshot-tests/__fixtures__/mcp/json/project-discovery/show-build-settings--success.json#L2341
The four `MAC_OS_X_*` host-OS build-settings keys (`MAC_OS_X_PRODUCT_BUILD_VERSION`, `MAC_OS_X_VERSION_ACTUAL`, `MAC_OS_X_VERSION_MAJOR`, `MAC_OS_X_VERSION_MINOR`) are hardcoded with runtime-specific values (`25D2128`, `260301`, `260000`, `260300`) in the fixture instead of being normalized in code — any macOS update on the CI runner will break these snapshots. Add them to `normalizeBuildSettingsEntryValue` in `json-normalize.ts` (parallel to `SDK_PRODUCT_BUILD_VERSION`→`<SDK_BUILD_VERSION>` / `SDK_VERSION_*`→`<SDK_VERSION>`) and add the corresponding regex to `normalize.ts` for text fixtures, then regenerate all four affected surfaces.
Analyze (actions)
Cannot retrieve the full diff because there are too many (300) changed files in the pull request.
Analyze (python)
Cannot retrieve the full diff because there are too many (300) changed files in the pull request.
Analyze (javascript-typescript)
Cannot retrieve the full diff because there are too many (300) changed files in the pull request.
compactFrameObjects regex expects x-first key order but runtime emits y-first, so frame objects are never compacted in UI fixtures: src/snapshot-tests/__fixtures__/cli/json/ui-automation/snapshot-ui--success.json#L21
The `frame` objects in this fixture (e.g. lines 21–26) appear in expanded multi-line form because `compactFrameObjects` in `json-normalize.ts` matches `"x"` before `"y"`, but `JSON.stringify` serialises the actual data with `"y"` first — the regex never fires, silently defeating the intended compact format.
MCP JSON swift-package run--success fixture missing `nextSteps` that the MCP text fixture and all peer build-and-run fixtures include: src/snapshot-tests/__fixtures__/mcp/json/swift-package/run--success.json#L37
The `nextSteps` array is absent from this MCP JSON fixture while the parallel MCP text fixture (`mcp/text/swift-package/run--success.txt`) explicitly records `"Stop Swift package run: swift_package_stop()"`, and every other MCP JSON build-run-result success fixture (`simulator/build-and-run`, `macos/build-and-run`, `device/build-and-run`) carries a `nextSteps` field at the envelope root. This misalignment leaves the JSON contract understating what the runtime actually emits.
[S2N-G2V] MCP JSON swift-package run--success fixture missing `nextSteps` that the MCP text fixture and all peer build-and-run fixtures include (additional location): src/snapshot-tests/__fixtures__/mcp/text/swift-package/run--success.txt#L13
The `nextSteps` array is absent from this MCP JSON fixture while the parallel MCP text fixture (`mcp/text/swift-package/run--success.txt`) explicitly records `"Stop Swift package run: swift_package_stop()"`, and every other MCP JSON build-run-result success fixture (`simulator/build-and-run`, `macos/build-and-run`, `device/build-and-run`) carries a `nextSteps` field at the envelope root. This misalignment leaves the JSON contract understating what the runtime actually emits.
[S2N-G2V] MCP JSON swift-package run--success fixture missing `nextSteps` that the MCP text fixture and all peer build-and-run fixtures include (additional location): src/snapshot-tests/__fixtures__/mcp/json/device/install--success.json#L3
The `nextSteps` array is absent from this MCP JSON fixture while the parallel MCP text fixture (`mcp/text/swift-package/run--success.txt`) explicitly records `"Stop Swift package run: swift_package_stop()"`, and every other MCP JSON build-run-result success fixture (`simulator/build-and-run`, `macos/build-and-run`, `device/build-and-run`) carries a `nextSteps` field at the envelope root. This misalignment leaves the JSON contract understating what the runtime actually emits.
MCP JSON clean fixture is identical to CLI JSON, inconsistent with surface differentiation pattern: src/snapshot-tests/__fixtures__/mcp/json/utilities/clean--success.json#L6
The new `mcp/json/utilities/clean--success.json` is byte-for-byte identical to `cli/json/utilities/clean--success.json`, but for all build operations the MCP JSON fixture omits `data.request` that the CLI JSON fixture includes — and the text fixtures for clean correctly show this same minimal-vs-normal split. If the runtime applies surface differentiation to clean's JSON output (as it does for builds), the MCP fixture should reflect that; if not, the envelope's `data.artifacts` is misclassifying input parameters (workspacePath, scheme, configuration, platform) as output artifacts rather than omitting them on the minimal (MCP) surface.
New snapshot fixture encodes `nextSteps` as a structured-output contract addition (schemaVersion bumped to "2"): src/snapshot-tests/__fixtures__/cli/json/simulator-management/list--success.json#L1
This new `cli/json` fixture locks in `nextSteps` as a required field of the `xcodebuildmcp.output.simulator-list` envelope and advances `schemaVersion` to `"2"`; any consumers parsing the structured envelope by schema or version must be updated, and the fixture itself must be deliberately regenerated when the next-step copy changes.
`stopAllRunningSwiftPackageProcesses` parses normalized fixture text for real process IDs, always getting 99999: src/snapshot-tests/suites/swift-package-suite.ts#L17
`JSON.parse(text)` on line 22 operates on `formatStructuredEnvelopeFixture` output, which replaces every `processId` with `99999` (see `json-normalize.ts` line 53). The loop will always try to stop PID 99999, fail silently (no such process), then loop forever since `activeProcesses` still holds the real PIDs. Use `structuredEnvelope.data.processes` instead — it carries the unnormalized envelope.
Schema version bump is a breaking API contract change for structured-output consumers: src/mcp/tools/simulator-management/set_sim_location.ts#L61
The `schemaVersion` change from `'1'` to `'2'` is a breaking change for any downstream consumer that validates or discriminates on the schema version field — they will now receive `"2"` where they expected `"1"`. Have you considered publishing a migration guide or changelog entry for integrators?
[JM4-DYC] Schema version bump is a breaking API contract change for structured-output consumers (additional location): src/mcp/tools/simulator/record_sim_video.ts#L96
The `schemaVersion` change from `'1'` to `'2'` is a breaking change for any downstream consumer that validates or discriminates on the schema version field — they will now receive `"2"` where they expected `"1"`. Have you considered publishing a migration guide or changelog entry for integrators?
[JM4-DYC] Schema version bump is a breaking API contract change for structured-output consumers (additional location): src/mcp/tools/swift-package/swift_package_list.ts#L27
The `schemaVersion` change from `'1'` to `'2'` is a breaking change for any downstream consumer that validates or discriminates on the schema version field — they will now receive `"2"` where they expected `"1"`. Have you considered publishing a migration guide or changelog entry for integrators?
[JM4-DYC] Schema version bump is a breaking API contract change for structured-output consumers (additional location): src/mcp/tools/debugging/debug_lldb_command.ts#L56
The `schemaVersion` change from `'1'` to `'2'` is a breaking change for any downstream consumer that validates or discriminates on the schema version field — they will now receive `"2"` where they expected `"1"`. Have you considered publishing a migration guide or changelog entry for integrators?