Skip to content

v1.15.0: schema coverage + verify-fix UX

Choose a tag to compare

@carloshpdoc carloshpdoc released this 15 May 16:37
· 22 commits to main since this release

Schema coverage + verify-fix UX release. 5 items landed on a single day. Suite 626 -> 666 (+40). MCP tools 37 -> 40.

Trace schemas covered

  • `analyzeMemoryFootprint` MCP tool (38th). Parses the `memory-footprint` schema. Peak resident / dirty / virtual bytes plus per-sample timeline. The OOM-kill discriminator on iOS. Distinct from `analyzeAllocations` (cumulative malloc bytes by category). Flags peak dirty > 200 MB as approaching jetsam territory.
  • `analyzeEnergyImpact` MCP tool (39th). Parses the `energy-impact` schema. Per-sample bucket classification (idle / passive / active / high), aggregate wakeup count, active-state ratio, top-N by energy cost. Reads the OS power-management subsystem directly. Distinct from `analyzeTimeProfile` (CPU sampling).
  • `analyzeLeakTimeline` MCP tool (40th). Parses xctrace's leaks schema (the instrument, distinct from `leaks(1)` CLI snapshot). Per-class first-seen-at timestamp, peak instance count, peak bytes, event count. Answers "when in the recording did the leak appear?" which a snapshot cannot.

Synthesis chain

  • `summarizeTrace` chains `analyzeNetworkActivity`. Sixth `buildAreaSummary` runs network in parallel. Markdown card gains a Network section + per-host aggregates. `buildHeadline` falls back to the slowest network request (>= 3s) only when hangs / launch / hitches are quiet. `focus: "network"` is a new enum value.

Verify-fix UX

  • `replayScenario` captures simulator screenshots per step. New `screenshotDir?: string` input. Each step writes one PNG via `xcrun simctl io screenshot` (no `axe` dependency). DebugSwift-inspired: "what was on screen when this happened?" context for verify-fix loops. `captureSimulatorScreenshot` helper exported. Failures non-fatal.

Type system

  • `SupportStatusKind` enum extended with `memory-footprint`, `energy-impact`, `leak-events` to back the three new analyzers.

Deferred to v1.16+

  • `recordViaInstrumentsApp` (item G from v1.14 candidates, 8-12h big feature). The AppleScript-driven Instruments.app GUI wrapper. Still the only known reliable trace-recording path on macOS 26.x simulators.
  • Phase 8 v1.9: dSYM symbolication on `analyzeTimeProfile`.
  • Bet #4: `analyzeMetricKitPayload` (`.mxdiagnostic` ingest).

Full diff: `v1.14.0...v1.15.0`