memorydetective 1.13.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/README.md +8 -2
- package/USAGE.md +29 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -1
- package/dist/parsers/schemaDiscovery.d.ts +88 -0
- package/dist/parsers/schemaDiscovery.js +144 -0
- package/dist/parsers/schemaDiscovery.js.map +1 -0
- package/dist/parsers/xctraceXml.d.ts +5 -0
- package/dist/parsers/xctraceXml.js +3 -0
- package/dist/parsers/xctraceXml.js.map +1 -1
- package/dist/tools/analyzeAllocations.d.ts +5 -1
- package/dist/tools/analyzeAllocations.js +17 -1
- package/dist/tools/analyzeAllocations.js.map +1 -1
- package/dist/tools/analyzeAnimationHitches.d.ts +5 -1
- package/dist/tools/analyzeAnimationHitches.js +17 -1
- package/dist/tools/analyzeAnimationHitches.js.map +1 -1
- package/dist/tools/analyzeAppLaunch.d.ts +3 -0
- package/dist/tools/analyzeAppLaunch.js +17 -1
- package/dist/tools/analyzeAppLaunch.js.map +1 -1
- package/dist/tools/analyzeEnergyImpact.d.ts +69 -0
- package/dist/tools/analyzeEnergyImpact.js +239 -0
- package/dist/tools/analyzeEnergyImpact.js.map +1 -0
- package/dist/tools/analyzeHangs.d.ts +63 -3
- package/dist/tools/analyzeHangs.js +143 -19
- package/dist/tools/analyzeHangs.js.map +1 -1
- package/dist/tools/analyzeLeakTimeline.d.ts +75 -0
- package/dist/tools/analyzeLeakTimeline.js +213 -0
- package/dist/tools/analyzeLeakTimeline.js.map +1 -0
- package/dist/tools/analyzeMemoryFootprint.d.ts +72 -0
- package/dist/tools/analyzeMemoryFootprint.js +234 -0
- package/dist/tools/analyzeMemoryFootprint.js.map +1 -0
- package/dist/tools/analyzeNetworkActivity.d.ts +99 -0
- package/dist/tools/analyzeNetworkActivity.js +312 -0
- package/dist/tools/analyzeNetworkActivity.js.map +1 -0
- package/dist/tools/analyzeTimeProfile.d.ts +10 -1
- package/dist/tools/analyzeTimeProfile.js +63 -8
- package/dist/tools/analyzeTimeProfile.js.map +1 -1
- package/dist/tools/countAlive.d.ts +35 -1
- package/dist/tools/countAlive.js +124 -29
- package/dist/tools/countAlive.js.map +1 -1
- package/dist/tools/inspectTrace.js +124 -18
- package/dist/tools/inspectTrace.js.map +1 -1
- package/dist/tools/recordTimeProfile.d.ts +83 -0
- package/dist/tools/recordTimeProfile.js +135 -0
- package/dist/tools/recordTimeProfile.js.map +1 -1
- package/dist/tools/replayScenario.d.ts +20 -4
- package/dist/tools/replayScenario.js +66 -0
- package/dist/tools/replayScenario.js.map +1 -1
- package/dist/tools/summarizeTrace.d.ts +6 -3
- package/dist/tools/summarizeTrace.js +49 -2
- package/dist/tools/summarizeTrace.js.map +1 -1
- package/dist/tools/verifyFix.d.ts +27 -0
- package/dist/tools/verifyFix.js +78 -4
- package/dist/tools/verifyFix.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,52 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.15.0] - 2026-05-15
|
|
10
|
+
|
|
11
|
+
Schema coverage + verify-fix UX release. v1.14 fixed the trace-side pipeline and shipped network coverage. v1.15 closes the remaining trace schemas the analyzer pipeline didn't cover (memory-footprint, energy-impact, xctrace leaks-as-time-series), folds network into summarizeTrace's synthesis chain, and gives replayScenario the screenshot-per-step capability DebugSwift inspired. 5 items landed across the same day. Suite 626 -> 666 (+40). 40 MCP tools.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **`analyzeMemoryFootprint` MCP tool (38th, `[mg.trace]`).** Parses the `memory-footprint` schema. Returns peak resident bytes (RAM in use), peak dirty bytes (the OOM-kill discriminator on iOS), peak virtual bytes, per-sample timeline. Distinct from `analyzeAllocations` (cumulative malloc bytes by category): this is process-level VM state. The "why is my app getting jetsam-killed?" investigation. Flags peak dirty above 200 MB as approaching jetsam territory on smaller devices. Resilient to column-name drift (resident / resident-bytes / phys / phys-footprint, dirty / private-dirty, etc.). `formatBytes` helper exported.
|
|
16
|
+
- **`analyzeEnergyImpact` MCP tool (39th, `[mg.trace]`).** Parses the `energy-impact` schema. Returns per-sample bucket classification (idle / passive / active / high), aggregate wakeup count, active-state ratio, top-N by energy cost. Distinct from `analyzeTimeProfile` (CPU sampling): this reads the OS power-management subsystem directly. The "why is my app draining battery?" investigation. `normalizeBucket` helper handles xctrace's varying string conventions (idle / Passive / active / HIGH / foreground / background) plus an `unknown` fallback.
|
|
17
|
+
- **`analyzeLeakTimeline` MCP tool (40th, `[mg.trace]`).** Parses the xctrace `leaks` schema (the instrument, distinct from `leaks(1)` CLI snapshot). Returns per-class first-seen-at timestamp, peak instance count, peak bytes, event count. Time-series view that answers "when in the recording did the leak first appear?" which a snapshot cannot. Flags multiple leaking classes as "suggests a shared cause" to nudge the agent toward investigating shared retainers (notification center, KVO global, etc.).
|
|
18
|
+
- **`summarizeTrace` now chains `analyzeNetworkActivity`.** Sixth `buildAreaSummary` runs the new network analyzer in parallel. Markdown card gains a Network section between App launch and Cross-correlations, with a duration / method / status / bytes / URL table plus a top-hosts-by-request-count bullet list. Section is omitted when schema-absent. `buildHeadline` surfaces a slow network request (>= 3000ms) as the headline only when hangs, launch, and hitches are quiet. `focus: "network"` is a new valid enum value on the input.
|
|
19
|
+
- **`replayScenario` captures simulator screenshots per step.** New `screenshotDir?: string` input. When provided, each scenario step writes a PNG to `<screenshotDir>/iteration-{N}_step-{M}.png` via `xcrun simctl io <udid> screenshot`. No `axe` dependency for screenshots. DebugSwift-inspired: their leak detector shows the leaked view, this gives the same context to verify-fix loops. `captureSimulatorScreenshot` helper exported. Failures non-fatal (surfaced on `failures[]`, scenario continues).
|
|
20
|
+
- **`SupportStatusKind` enum extended** with `memory-footprint`, `energy-impact`, `leak-events` to back the three new analyzers.
|
|
21
|
+
|
|
22
|
+
## [1.14.0] - 2026-05-15
|
|
23
|
+
|
|
24
|
+
Trace-side reliability + breadth release. v1.13 shipped `summarizeTrace`, the trace-to-summary-card-in-one-call play. v1.14 fixes two parser bugs that were causing it to return empty results against real Apple-produced traces, expands schema coverage to include hang risks + network activity, robustens the analyzer pipeline against future xctrace schema renames, and adds three opt-in UX paths around the macOS 26.x xctrace wedge regression (pre-flight probe, auto-open Instruments, README callout). Plus FLEX-inspired memgraph size view on `countAlive` and an MLeaksFinder + DebugSwift-inspired whitelist on `verifyFix`. 11 changes landed across one day. Suite 546 -> 626 (+80 tests). 37 MCP tools.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **`inspectTrace` + `summarizeTrace` now work against real Apple-produced `.trace` bundles.** The previous implementation ran `xctrace export --xpath '/trace-toc/run'`, which returns "This node has no content to export." against bundles produced by `xcrun xctrace record` (and by Instruments.app GUI saves). Cascaded into `summarizeTrace` reporting "No user-perceptible perf events detected" even when the trace had 35 hangs and 44k time-profile samples. Fix switches discovery to `xctrace export --toc` and adds async parallel xpath row-count queries for the 5 known analyzer schemas. `parseTraceToc` also now accepts self-closing `<table schema=X/>` (Apple's TOC shape) in addition to the open-close form (test fixtures), extracts device/OS from `<device>` attributes, and reads `<start-date>` for the recording timestamp. Validated end-to-end against a Time Profiler trace from a physical iPhone 17 Pro Max: 40 schemas detected, summarizeTrace headline becomes "1164ms hang at t=89.01s. Likely user-visible freeze." 8 new tests against the real Apple TOC fixture.
|
|
29
|
+
- **`analyzeTimeProfile` now returns real symbol names instead of the weight column.** Two cascading bugs: (1) the parser keyed cells by schema mnemonic, so the backtrace cell was at `row.stack`, not `row.backtrace`; (2) `XctraceValue` only captured `@_fmt`, dropping `@_name` from `<frame>` and `<binary>` elements where the symbol identity lives. Added an `XctraceValue.name` field and rewrote `analyzeTimeProfile` to walk `row.stack.nested.frame.name` with fallback to the leaf frame's binary name for unsymbolicated hex addresses. Validated end-to-end against the same Time Profiler trace: top symbol becomes `CFStringHashCString` (2429 samples), followed by `-[CoreTelephonyClientMux _computeNotificationSet_sync:completion:]` (2214). Unsymbolicated frames cluster by binary as `libsystem_kernel.dylib (0x24c0aacd5)` etc. 2 new tests.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **`analyzeNetworkActivity` MCP tool (37th, `[mg.trace]`).** Parses the `network-connections` schema from a `.trace` recorded with a Network template. Returns per-request URL / host / method / status code / response time / bytes in / bytes out, plus aggregates: total bytes in/out, longest + average response time, status-code buckets (2xx / 3xx / 4xx / 5xx / n/a), top-N by duration (which calls blocked the user), top-N by bytes (which calls bloated the budget), and per-host aggregates (which SDKs are chatty). The pure helper `analyzeNetworkActivityFromXml` accepts multiple plausible mnemonic names per field (time / event-time / start / connect-time, url / host / endpoint, bytes-in / response-bytes / received-bytes, etc.) so it survives xctrace column-name drift across iOS versions. Registered in `inspectTrace.SCHEMA_TO_ANALYZER` so the discovery path auto-suggests it when the trace has a Network schema. 15 new tests on the parser plus 4 on the host-extraction helper. Closes the "network is slow" / "chatty SDK" / "slow launch from one API call" coverage gap in the trace family.
|
|
34
|
+
|
|
35
|
+
### `supportStatus[]` unified status surface (v1.14 item I)
|
|
36
|
+
|
|
37
|
+
- **New `SupportStatus` type in `src/types.ts`** with `kind` (one of `potential-hangs`, `hang-risks`, `animation-hitches`, `time-profile`, `allocations`, `app-launch`, `network-connections`), `status` (`available` / `partial` / `not_exportable` / `not_present` / `failed`), optional `reason`, optional `sourceSchemas`. Mirrors XcodeTraceMCP's surface shape so cross-tool LLM drivers can branch consistently. All 6 trace-side analyzers (`analyzeHangs`, `analyzeAnimationHitches`, `analyzeTimeProfile`, `analyzeAllocations`, `analyzeAppLaunch`, `analyzeNetworkActivity`) now return a populated `supportStatus[]` array. `analyzeHangs` returns 1 entry by default and 2 when hang-risks XML is also provided (one per schema). `analyzeTimeProfile`'s SIGSEGV path surfaces the workaround tip in `supportStatus[0].reason`. Old `status: DataStatus` and `notice?: string` aliases stay on each result with `@deprecated` JSDoc for backwards compatibility with v1.13 callers; both alias and new field always agree on the status value. 10 new cross-analyzer tests verifying the kind / status / reason / sourceSchemas surfacing per analyzer.
|
|
38
|
+
|
|
39
|
+
### Pattern-matching schema discovery refactor (v1.14 item B)
|
|
40
|
+
|
|
41
|
+
- **New `src/parsers/schemaDiscovery.ts` module** with SCHEMA_FAMILIES (11 families: hangs, hang-risks, animation-hitches, time-profile, time-sample, allocations, app-launch, memory, network, energy, leaks), CANONICAL_SCHEMA_NAME fallbacks, and `discoverSchema` / `discoverSchemas` / `fetchDiscoveredSchemas` helpers. Each family maps to a list of case-insensitive RegExp patterns deliberately conservative so they don't false-positive on unrelated schemas. The async `fetchDiscoveredSchemas` runs `xctrace export --toc` once and bulk-resolves multiple families in one pass. Inspired by XcodeTraceMCP's pattern-matching approach.
|
|
42
|
+
- **All 5 trace-side analyzers refactored** (`analyzeAllocations`, `analyzeAnimationHitches`, `analyzeAppLaunch`, `analyzeTimeProfile`, `analyzeHangs`) to call `fetchDiscoveredSchemas` before their xpath query. Survives future Apple renames: when the trace uses a renamed schema name, discovery picks it up; when nothing matches, falls back to the canonical pre-v1.14 hardcoded name (preserves backwards compat). `analyzeHangs` bulk-discovers all three schemas it consumes (hangs + hang-risks + time-profile) in a single TOC pass.
|
|
43
|
+
- Cost: one extra `xctrace --toc` invocation per analyze call (~100-500ms on real traces).
|
|
44
|
+
|
|
45
|
+
- **`recordTimeProfile` auto-opens Instruments.app on timeout (opt-in).** Set `MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS=1` to make a timed-out recording fire-and-forget invoke `open -a Instruments <tracePath>` so the partial `.trace` opens in the GUI. Instruments.app on macOS 26.x can still symbolicate and display traces the `xctrace export` CLI path rejects, giving a manual escape hatch. The response gains an `openedInInstrumentsApp: boolean` field reporting whether the open was invoked. Off by default to avoid spamming agent / CI runs. XcodeTraceMCP-inspired UX pattern. 4 new tests on the env-gated helper.
|
|
46
|
+
- **`recordTimeProfile` pre-flights the xctrace wedge on macOS 26.x simulator attach.** New 2-second probe runs before the user's actual recording. When the probe times out, recordTimeProfile bails fast with the same `workaroundNotice` instead of waiting the full `durationSec + 30s grace` on a wedge. Cuts user-visible failure latency from `~70s` (a 30s recording with the timeout wrapper firing) to `~8s` (probe wrapper window). Gated to the known-broken combo by default: macOS 26.x host + simulator target + attach mode. `--launch` mode is excluded so we never double-launch the app. New `MEMORYDETECTIVE_PREFLIGHT_XCTRACE=1` forces on; `0` forces off. 7 new tests covering the env-flag overrides, platform detection, target/mode gating, and `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1` propagation.
|
|
47
|
+
- **`countAlive` returns per-class `instanceSizeBytes` + `totalBytes` and accepts `sortBy: "count" | "totalBytes"`.** Inspired by FLEX's Live Objects "Size" sort column. The `.memgraph` format already carried per-class size data (cycle-side `[N]` annotations + reference-tree per-class totals); we just were not surfacing it. New `countByClassWithBytes` pure helper aggregates both. `sortBy: "totalBytes"` is FLEX-equivalent memory-budget rank; default `"count"` preserves v1.13 ranking. Per-instance size is the first non-null observed (cycle-side) or `round(totalBytes / count)` (reference-tree fallback). Validated against a real abandoned-memory memgraph: top by totalBytes surfaces 2 MB NSMutableDictionary, 1.3 MB CFString; `actionableCounts[]` (framework-noise filtered) leads with 800 KB Kernel Pointers, 460 KB CGDataProvider. 5 new tests.
|
|
48
|
+
- **`verifyFix` accepts `expectedAliveClasses[]` whitelist + curated default list.** Singletons, framework registrars, and persistent caches legitimately stay alive across before/after snapshots. Pre-v1.14 they landed in `regressionClasses[]` and could flip the verdict to FAIL on otherwise-clean fixes. New `expectedAliveClasses?: string[]` schema input (substring patterns, case-insensitive) + `disableDefaultWhitelist: boolean` (default false). Exported `DEFAULT_EXPECTED_ALIVE_CLASSES` constant: 11 entries sourced from DebugSwift's `Performance.LeakDetector.swift` curation (system VCs like `UICompatibilityInputViewController` + `UIPredictionViewController`, internal views like `PLTileContainerView`, OS-retained windows like `UIRemoteKeyboardWindow`). Whitelist hits are moved out of `regressionClasses[]` into a new `expectedAlive: string[]` field on the response for transparency, without affecting magnitude / verdict computation. MLeaksFinder + DebugSwift-inspired UX pattern. Validated against real notelet memgraphs: user whitelist of `[pthread_mutex_t, SwiftUI.ObjectCache, NSCache]` filtered 5 entries (including substring matches for both Font and Color ObjectCaches). 5 new tests.
|
|
49
|
+
- **`analyzeHangs` now reads the `hang-risks` schema alongside `potential-hangs`.** xctrace emits two complementary hang-related schemas in Time Profiler / Hangs templates: `potential-hangs` (measured durations) and `hang-risks` (runtime risk annotations like "Hang Risk" / "Severe Hang Risk" narrative events with backtraces). Pre-v1.14 we only read the former. The result schema gains optional `risks: HangRiskEntry[]` and `risksTotals: { rows, bySeverity }` populated when the second schema is exported, absent otherwise. New pure `analyzeHangRisksFromXml` helper. The async wrapper fires both exports in parallel via Promise.all; hang-risks failure is non-fatal. Diagnosis appends "N hang risk annotations from the iOS runtime" with severe count when the bySeverity bucket has any "Severe ..." entries. XcodeTraceMCP-inspired schema discovery extension. 9 new tests.
|
|
50
|
+
|
|
51
|
+
### Documentation
|
|
52
|
+
|
|
53
|
+
- **README + USAGE.md gained a `macOS 26.x xctrace record` callout.** `xcrun xctrace record --time-limit Ns` against iOS simulator targets is broken on macOS 26.x. The recording wedges past the requested time limit, exits when SIGKILL fires, and produces a `.trace` bundle that fails template export. Apple-side regression; survives Xcode 26.5 (build 17F42, xctrace 16.0) per the 2026-05-15 re-validation. Hits every `xctrace`-based tool the same way. README highlights the issue near the top with `task_for_pid` callout; USAGE.md Troubleshooting gains a ranked recovery list (older macOS host, Instruments.app GUI, physical device, wait for Apple). Trace-side analyzers (`inspectTrace`, `summarizeTrace`, `analyzeHangs`, `analyzeTimeProfile`, `analyzeAnimationHitches`, `compareTracesByPattern`) all work normally against Instruments-recorded `.trace` bundles, so the workaround path stays automatable end-to-end after the recording step.
|
|
54
|
+
|
|
9
55
|
## [1.13.0] - 2026-05-14
|
|
10
56
|
|
|
11
57
|
Trace-depth synthesis differentiator. v1.11 added `inspectTrace` (discovery), v1.12 added cross-schema correlation inside `analyzeHangs`. v1.13 ties everything together: one call returns a cross-schema summary card tuned for direct presentation to the user, instead of chaining 5-6 analyzers manually and reasoning over the JSON.
|
package/README.md
CHANGED
|
@@ -17,12 +17,16 @@
|
|
|
17
17
|
- **MCP-native.** Plugs into Claude Code, Claude Desktop, Cursor, Cline, and any other MCP client. The agent drives the full investigate → classify → suggest-fix loop without you opening Instruments.
|
|
18
18
|
- **Honest about its limits.** No mocked outputs, no over-promises. Hangs analysis works clean from `xctrace`; sample-level Time Profile is parsed when `xctrace` symbolicates the trace and returns a structured workaround notice when it can't (the underlying `xctrace` SIGSEGV on heavy unsymbolicated traces is an Apple-side limitation we surface explicitly). Memory Graph capture works on Mac apps and iOS simulator; physical iOS devices still need Xcode.
|
|
19
19
|
|
|
20
|
-
> **What's new in v1.
|
|
20
|
+
> **What's new in v1.15** (2026-05-15): schema coverage + verify-fix UX release. Three new MCP trace tools fill the remaining schema gap: `analyzeMemoryFootprint` (38th, VM resident / dirty / virtual + jetsam diagnosis), `analyzeEnergyImpact` (39th, battery drain investigation via the energy-impact schema), `analyzeLeakTimeline` (40th, xctrace's leaks instrument as a time series with per-class first-seen-at + peakCount). `summarizeTrace` now chains `analyzeNetworkActivity` so the trace-to-summary-card-in-one-call play covers network alongside hangs / hitches / time-profile / allocations / launch. `replayScenario` captures simulator screenshots per step into a configurable directory (DebugSwift-inspired "what was on screen when this happened?" for verify-fix loops). 626 → 666 tests. 40 MCP tools.
|
|
21
21
|
>
|
|
22
|
-
> **Also recent
|
|
22
|
+
> **Also recent (v1.14)**: trace-side reliability release. Fixed two parser bugs against real Apple traces (`inspectTrace` --toc switch, `analyzeTimeProfile` symbol extraction). Added `analyzeNetworkActivity` (37th tool). Extended `analyzeHangs` to read the `hang-risks` schema. Pattern-matching schema discovery refactor across all 5 trace analyzers. Unified `supportStatus[]` surface. Three opt-in UX paths around the macOS 26.x xctrace `--time-limit` regression: 2-second pre-flight probe, auto-open Instruments.app, README + USAGE callout. FLEX-inspired `countAlive` size view. MLeaksFinder + DebugSwift-inspired `verifyFix` whitelist with curated default list.
|
|
23
|
+
>
|
|
24
|
+
> **Earlier**: v1.13 shipped `summarizeTrace` + `/summarize-trace` MCP prompt. v1.12 completed reference-tree propagation across countAlive / findRetainers / verifyFix and added auto cross-schema correlation in analyzeHangs. v1.11 added inspectTrace, diffMemgraphs reference-tree, and CLI abandoned-memory mini-table. v1.10 closed the notelet retro feedback loop. v1.9 shipped analyzeAbandonedMemory, detectLeaksInXCTest, cleanupTraces, mainThreadViolations. Full notes in [CHANGELOG](./CHANGELOG.md).
|
|
23
25
|
|
|
24
26
|
> **Heads up for macOS 26.x users:** Apple shipped a `task_for_pid` kernel regression on macOS 26.x that blocks `leaks --outputGraph`, `heap`, AND `xctrace --template Allocations` against iOS simulator processes regardless of `MallocStackLogging`. Even Xcode's "View Memory Graph Hierarchy" hits it unless `Malloc Stack Logging` is enabled in the scheme's Diagnostics tab. memorydetective surfaces this as a proactive `platformAdvisory` on the first capture-class tool call, plus a `workaroundNotice` with `issue: "macos-26-task-for-pid-broken"` if `leaks` is invoked. **The most reliable workaround today is to target an iOS 18 simulator runtime** (install via Xcode > Settings > Platforms > +iOS 18.x). Empirically validated in the [notelet investigation](https://github.com/carloshpdoc/memorydetective/blob/main/CHANGELOG.md#unreleased) 2026-05-12 where three independent CLI memory-introspection paths all failed before iOS 18 was identified as the working escape hatch. Set `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1` to silence the notice once you have settled on a workaround.
|
|
25
27
|
|
|
28
|
+
> **Also on macOS 26.x: `xctrace record` is broken for simulator targets.** Independent from the `task_for_pid` regression above, `xcrun xctrace record --time-limit Ns` against iOS simulator processes wedges past the time limit, eventually exits when killed, and the resulting `.trace` bundle is missing template metadata. `xctrace export --toc` then fails with `Document Missing Template Error`. Re-validated against Xcode 26.5 (build 17F42, xctrace 16.0) 2026-05-15: regression survives the update. This hits the entire `xctrace`-based ecosystem the same way (`memorydetective.recordTimeProfile`, XcodeTraceMCP, and naked `xcrun xctrace record` calls all fail identically). **Workarounds:** (1) record from an older macOS host with Xcode 26.0 if you have one; (2) record via Instruments.app GUI which still works on macOS 26.x and produces a valid `.trace` that memorydetective's trace-side analyzers (`inspectTrace`, `summarizeTrace`, `analyzeHangs`, `analyzeTimeProfile`, `analyzeAnimationHitches`, `compareTracesByPattern`) read cleanly; (3) record against a physical device (the regression appears to be simulator-specific). USAGE.md > Troubleshooting has a step-by-step.
|
|
29
|
+
|
|
26
30
|
## Quickstart
|
|
27
31
|
|
|
28
32
|
```bash
|
|
@@ -290,6 +294,8 @@ Copilot's MCP integration moves fast. If this snippet is stale, see the [VS Code
|
|
|
290
294
|
| `MEMORYDETECTIVE_TRACE_ROOT` | `~/Library/Application Support/memorydetective/traces` | Directory used when `recordTimeProfile.output` is a relative path. Absolute paths bypass this default for v1.8 backwards-compat. Also the default scan path for `cleanupTraces`. The directory is auto-created on first write. |
|
|
291
295
|
| `MEMORYDETECTIVE_ALLOW_EXTERNAL_CLEANUP` | unset | Set to `1` to allow `cleanupTraces` to scan and delete `.trace` bundles OUTSIDE `MEMORYDETECTIVE_TRACE_ROOT`. Without it, requests that resolve outside the configured root return `ok: false` with the failure reason and delete nothing. Default-deny on destructive disk operations outside the configured boundary. |
|
|
292
296
|
| `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY` | unset | Set to `1` to silence the macOS 26.x platform advisory that captureMemgraph, captureScenarioState, and bootAndLaunchForLeakInvestigation emit on first use. Useful once you have an iOS 18 sim runtime installed and do not need the reminder. |
|
|
297
|
+
| `MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS` | unset | Set to `1` to make `recordTimeProfile` invoke `open -a Instruments <tracePath>` as a fire-and-forget escape hatch when xctrace times out (the macOS 26.x regression). The partial `.trace` opens in Instruments.app, which can still symbolicate + display traces the CLI export path rejects. Off by default so unattended agent runs and CI do not spam the user's GUI. The response's `openedInInstrumentsApp` field reports whether the open was invoked. |
|
|
298
|
+
| `MEMORYDETECTIVE_PREFLIGHT_XCTRACE` | unset (auto) | Controls the pre-flight probe in `recordTimeProfile` that detects the macOS 26.x xctrace wedge in ~3-5 seconds instead of paying the user's full `durationSec` plus 30s grace. `1` forces on regardless of platform / target. `0` forces off. When unset, the probe auto-enables on macOS 26.x simulator attach (the known-broken combo) and stays off elsewhere. Pre-flight is skipped for `--launch` mode to avoid double-launching the app. Side-effect of auto-enable: 2-second probe runs before the full recording starts. Set to `0` if you have already settled on a workaround and want maximum recording-start latency. |
|
|
293
299
|
|
|
294
300
|
---
|
|
295
301
|
|
package/USAGE.md
CHANGED
|
@@ -398,6 +398,35 @@ Set `MEMORYDETECTIVE_SUPPRESS_PLATFORM_ADVISORY=1` to silence the proactive stde
|
|
|
398
398
|
|
|
399
399
|
The `getInvestigationPlaybook({ kind: "memgraph-leak" })` response carries a `troubleshooting` field with these recovery paths inline so an LLM agent can branch deterministically.
|
|
400
400
|
|
|
401
|
+
### `recordTimeProfile` times out / produces a 52K bundle that fails to export
|
|
402
|
+
|
|
403
|
+
`xcrun xctrace record --time-limit Ns` is broken on macOS 26.x for simulator targets. The recording wedges past the requested time limit, exits when SIGKILL fires, and produces a `.trace` bundle that contains only `Trace1.run/RunIssues.storedata` (no actual schema data). `xctrace export --toc` against the resulting bundle returns `Document Missing Template Error`. The bug is upstream (Apple) and survives Xcode 26.5 (build 17F42, xctrace 16.0) per the 2026-05-15 re-validation.
|
|
404
|
+
|
|
405
|
+
The symptom in memorydetective:
|
|
406
|
+
|
|
407
|
+
```jsonc
|
|
408
|
+
{
|
|
409
|
+
"ok": false,
|
|
410
|
+
"recordingTimedOut": true,
|
|
411
|
+
"tracePath": "/tmp/x.trace",
|
|
412
|
+
"workaroundNotice": {
|
|
413
|
+
"issue": "macos-26-xctrace-record-broken",
|
|
414
|
+
"...": "..."
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
It hits every `xctrace`-based tool the same way (this MCP, XcodeTraceMCP, raw `xcrun xctrace record` calls in a shell, third-party scripts wrapping the CLI). Not a memorydetective bug.
|
|
420
|
+
|
|
421
|
+
Recovery options, ranked by automation cost:
|
|
422
|
+
|
|
423
|
+
1. **Record on an older macOS host with Xcode 26.0 if you have one available.** Pre-regression `xctrace record` produces clean traces. The 2026-05-15 validation used `~/Desktop/wishlist-tti-device.trace`, a Time Profiler trace captured this way: 91s recording, 35 hangs detected, 44 418 time-profile samples, fully analyzable by memorydetective's trace-side tools.
|
|
424
|
+
2. **Record via Instruments.app GUI.** Instruments.app on macOS 26.x still produces valid `.trace` bundles. Open Instruments, pick a template, choose the simulator + app, hit Record, drive the scenario, Stop, Save. Then point `inspectTrace` / `summarizeTrace` / `analyzeHangs` / `analyzeTimeProfile` / `compareTracesByPattern` at the saved bundle. All trace-side analyzers work normally on Instruments-recorded `.trace` bundles.
|
|
425
|
+
3. **Record against a physical device (USB or wireless).** The regression appears to be simulator-specific. `xctrace record --device <UUID> --launch <app>` against a real iPhone / iPad does NOT exhibit the same wedge. Use this when you have a physical target available.
|
|
426
|
+
4. **Wait for Apple.** The Feedback assistant is the right escalation path. The regression has shipped through Xcode 26.4 + 26.5; expect a fix in 26.6 or later.
|
|
427
|
+
|
|
428
|
+
memorydetective's roadmap items `recordViaInstrumentsApp` (Group II-G) and the pre-flight probe (Group II-H) will narrow the manual-step surface as they land.
|
|
429
|
+
|
|
401
430
|
### `replayScenario` returns `workaroundNotice: { issue: "axe-not-found" }`
|
|
402
431
|
|
|
403
432
|
The `axe` CLI is not on your `$PATH`. Install with:
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,10 @@ import { captureScenarioState, captureScenarioStateShape, } from "./tools/captur
|
|
|
22
22
|
import { analyzeAnimationHitches, analyzeAnimationHitchesSchema, } from "./tools/analyzeAnimationHitches.js";
|
|
23
23
|
import { analyzeAllocations, analyzeAllocationsSchema, } from "./tools/analyzeAllocations.js";
|
|
24
24
|
import { analyzeAppLaunch, analyzeAppLaunchSchema, } from "./tools/analyzeAppLaunch.js";
|
|
25
|
+
import { analyzeNetworkActivity, analyzeNetworkActivitySchema, } from "./tools/analyzeNetworkActivity.js";
|
|
26
|
+
import { analyzeMemoryFootprint, analyzeMemoryFootprintSchema, } from "./tools/analyzeMemoryFootprint.js";
|
|
27
|
+
import { analyzeEnergyImpact, analyzeEnergyImpactSchema, } from "./tools/analyzeEnergyImpact.js";
|
|
28
|
+
import { analyzeLeakTimeline, analyzeLeakTimelineSchema, } from "./tools/analyzeLeakTimeline.js";
|
|
25
29
|
import { renderCycleGraph, renderCycleGraphSchema, } from "./tools/renderCycleGraph.js";
|
|
26
30
|
import { logShow, logShowSchema, logStream, logStreamSchema, } from "./tools/logShow.js";
|
|
27
31
|
import { detectLeaksInXCUITest, detectLeaksInXCUITestSchema, } from "./tools/detectLeaksInXCUITest.js";
|
|
@@ -250,6 +254,38 @@ server.registerTool("analyzeAppLaunch", {
|
|
|
250
254
|
const result = await analyzeAppLaunch(input);
|
|
251
255
|
return formatMcpResponse(result, "analyzeAppLaunch", input.outputFormat);
|
|
252
256
|
});
|
|
257
|
+
server.registerTool("analyzeNetworkActivity", {
|
|
258
|
+
title: "Analyze HTTP / connection activity from a Network trace",
|
|
259
|
+
description: "[mg.trace] Parse the `network-connections` schema from a `.trace` recorded with a Network template. Returns per-request URL/host, method, status code, response time, bytes in/out. Top-N rankings by duration (which calls blocked the user) and by bytes (which calls bloat the budget) plus per-host aggregates surfacing chatty SDKs. v1.14+.",
|
|
260
|
+
inputSchema: analyzeNetworkActivitySchema.shape,
|
|
261
|
+
}, async (input) => {
|
|
262
|
+
const result = await analyzeNetworkActivity(input);
|
|
263
|
+
return formatMcpResponse(result, "analyzeNetworkActivity", input.outputFormat);
|
|
264
|
+
});
|
|
265
|
+
server.registerTool("analyzeMemoryFootprint", {
|
|
266
|
+
title: "Analyze process VM footprint (resident / dirty / virtual)",
|
|
267
|
+
description: "[mg.trace] Parse the `memory-footprint` schema from a `.trace` recorded with Allocations or System Trace template. Returns peak resident bytes (RAM in use), peak dirty bytes (the OOM-kill discriminator on iOS), peak VM regions, per-sample timeline. Distinct from analyzeAllocations (cumulative malloc bytes by category). Use when investigating 'why is my app getting jetsam-killed?'. v1.15+.",
|
|
268
|
+
inputSchema: analyzeMemoryFootprintSchema.shape,
|
|
269
|
+
}, async (input) => {
|
|
270
|
+
const result = await analyzeMemoryFootprint(input);
|
|
271
|
+
return formatMcpResponse(result, "analyzeMemoryFootprint", input.outputFormat);
|
|
272
|
+
});
|
|
273
|
+
server.registerTool("analyzeEnergyImpact", {
|
|
274
|
+
title: "Analyze energy use / battery drain from an Energy Log trace",
|
|
275
|
+
description: "[mg.trace] Parse the `energy-impact` schema from a `.trace` recorded with an Energy Log template. Returns per-sample bucket classification (idle / passive / active / high), aggregate wakeup count, active-state ratio, top-N samples by energy cost. The 'why is my app draining battery?' investigation. Distinct from analyzeTimeProfile (CPU sampling); reads the OS power-management subsystem directly. v1.15+.",
|
|
276
|
+
inputSchema: analyzeEnergyImpactSchema.shape,
|
|
277
|
+
}, async (input) => {
|
|
278
|
+
const result = await analyzeEnergyImpact(input);
|
|
279
|
+
return formatMcpResponse(result, "analyzeEnergyImpact", input.outputFormat);
|
|
280
|
+
});
|
|
281
|
+
server.registerTool("analyzeLeakTimeline", {
|
|
282
|
+
title: "Analyze leaks as a time series (xctrace Leaks instrument)",
|
|
283
|
+
description: "[mg.trace] Parse the `leaks` schema from a `.trace` recorded with a Leaks template. Distinct from leaks(1) CLI (snapshot): this is a time series of leak events captured throughout the recording. Returns per-class first-seen-at timestamp, peak instance count, peak bytes, event count. Useful for answering 'when in the timeline did the leak appear?' which the snapshot CLI cannot. v1.15+.",
|
|
284
|
+
inputSchema: analyzeLeakTimelineSchema.shape,
|
|
285
|
+
}, async (input) => {
|
|
286
|
+
const result = await analyzeLeakTimeline(input);
|
|
287
|
+
return formatMcpResponse(result, "analyzeLeakTimeline", input.outputFormat);
|
|
288
|
+
});
|
|
253
289
|
server.registerTool("renderCycleGraph", {
|
|
254
290
|
title: "Render a retain cycle as Mermaid or DOT graph",
|
|
255
291
|
description: "[mg.render] Read a `.memgraph`, pick a ROOT CYCLE by index, and emit the chain as a Mermaid graph definition (default — embeddable in markdown / GitHub) or a Graphviz DOT file. App-level classes are highlighted; CYCLE BACK terminators are styled distinctly. Use `cycleIndex` to render cycles other than the first.",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern-matching schema discovery for `.trace` bundles. v1.14 item B.
|
|
3
|
+
*
|
|
4
|
+
* Pre-v1.14 the trace-side analyzers hardcoded their schema names
|
|
5
|
+
* (`potential-hangs`, `time-profile`, etc.) into the xpath queries
|
|
6
|
+
* (`/trace-toc/run/data/table[@schema="X"]`). Robust as long as Apple
|
|
7
|
+
* never renames a schema. When they DO rename one (or split into
|
|
8
|
+
* `hang-risks` alongside `potential-hangs`, see item F), the analyzer
|
|
9
|
+
* silently returns "schema absent" against a trace that has the data
|
|
10
|
+
* just under a different name.
|
|
11
|
+
*
|
|
12
|
+
* XcodeTraceMCP solves this with a regex-pattern lookup: each schema
|
|
13
|
+
* "family" maps to a list of regex patterns; discovery walks the TOC,
|
|
14
|
+
* matches schema names against the patterns, returns the first hit.
|
|
15
|
+
* Falls through gracefully when nothing matches (callers fall back to
|
|
16
|
+
* the hardcoded canonical name).
|
|
17
|
+
*
|
|
18
|
+
* The patterns mirror XcodeTraceMCP's `SCHEMA_PATTERNS` plus the
|
|
19
|
+
* families memorydetective already analyzes:
|
|
20
|
+
* `hangs`, `animation-hitches`, `time-profile`, `allocations`,
|
|
21
|
+
* `app-launch`, `memory`, `network`, `energy`, `leaks`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SCHEMA_FAMILIES: {
|
|
24
|
+
readonly hangs: [RegExp];
|
|
25
|
+
readonly "hang-risks": [RegExp];
|
|
26
|
+
readonly "animation-hitches": [RegExp, RegExp];
|
|
27
|
+
readonly "time-profile": [RegExp];
|
|
28
|
+
readonly "time-sample": [RegExp];
|
|
29
|
+
readonly allocations: [RegExp, RegExp, RegExp];
|
|
30
|
+
readonly "app-launch": [RegExp, RegExp];
|
|
31
|
+
readonly memory: [RegExp, RegExp, RegExp];
|
|
32
|
+
readonly network: [RegExp, RegExp, RegExp];
|
|
33
|
+
readonly energy: [RegExp, RegExp, RegExp, RegExp];
|
|
34
|
+
readonly leaks: [RegExp, RegExp];
|
|
35
|
+
};
|
|
36
|
+
export type SchemaFamily = keyof typeof SCHEMA_FAMILIES;
|
|
37
|
+
/** Canonical schema name we hardcoded before v1.14. Used as the fallback
|
|
38
|
+
* when discovery does not match anything in the TOC. */
|
|
39
|
+
export declare const CANONICAL_SCHEMA_NAME: Record<SchemaFamily, string>;
|
|
40
|
+
/**
|
|
41
|
+
* Pure: extract all `<table schema="X" .../>` names from a TOC XML
|
|
42
|
+
* string. Returns the names in document order, including duplicates
|
|
43
|
+
* (a trace can have the same schema appear with different filter
|
|
44
|
+
* attributes; the caller decides what to do with duplicates).
|
|
45
|
+
*
|
|
46
|
+
* Accepts both self-closing `<table schema="X"/>` (Apple's --toc shape)
|
|
47
|
+
* and open-close `<table schema="X">...</table>` (test fixtures).
|
|
48
|
+
*/
|
|
49
|
+
export declare function extractSchemaNamesFromToc(tocXml: string): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Pure: find the schema name in the TOC that matches the requested
|
|
52
|
+
* family. Returns the FIRST match in document order so deterministic
|
|
53
|
+
* across runs. Falls back to the canonical hardcoded name when no
|
|
54
|
+
* pattern matches; never returns null so callers can plug the result
|
|
55
|
+
* straight into an xpath query.
|
|
56
|
+
*
|
|
57
|
+
* The hardcoded fallback preserves pre-v1.14 behavior: if the trace
|
|
58
|
+
* uses the canonical name, the xpath still works because the canonical
|
|
59
|
+
* name itself matches its own family pattern.
|
|
60
|
+
*/
|
|
61
|
+
export declare function discoverSchema(tocXml: string, family: SchemaFamily): string;
|
|
62
|
+
/**
|
|
63
|
+
* Pure: bulk variant. Resolves multiple families against the same TOC
|
|
64
|
+
* in one pass. Useful when an analyzer needs more than one schema
|
|
65
|
+
* (e.g. `analyzeHangs` reading both `hangs` and `hang-risks`).
|
|
66
|
+
*/
|
|
67
|
+
export declare function discoverSchemas<F extends SchemaFamily>(tocXml: string, families: readonly F[]): Record<F, string>;
|
|
68
|
+
/**
|
|
69
|
+
* Async wrapper for the trace-side analyzers. Runs `xcrun xctrace
|
|
70
|
+
* export --input <trace> --toc` once and applies {@link discoverSchemas}
|
|
71
|
+
* to the result. Failures (xctrace error, parse glitch, missing trace)
|
|
72
|
+
* fall back to the canonical hardcoded names so the analyzer pipeline
|
|
73
|
+
* still works at pre-v1.14 behavior. v1.14 item B.
|
|
74
|
+
*
|
|
75
|
+
* `runCommand` is injected (not imported from runtime/exec) to keep
|
|
76
|
+
* this module dependency-free and unit-testable without spawning
|
|
77
|
+
* processes.
|
|
78
|
+
*/
|
|
79
|
+
export interface SchemaDiscoveryRunner {
|
|
80
|
+
(cmd: string, args: string[], options: {
|
|
81
|
+
timeoutMs: number;
|
|
82
|
+
}): Promise<{
|
|
83
|
+
code: number;
|
|
84
|
+
stdout: string;
|
|
85
|
+
stderr: string;
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
export declare function fetchDiscoveredSchemas<F extends SchemaFamily>(runCommand: SchemaDiscoveryRunner, tracePath: string, families: readonly F[]): Promise<Record<F, string>>;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern-matching schema discovery for `.trace` bundles. v1.14 item B.
|
|
3
|
+
*
|
|
4
|
+
* Pre-v1.14 the trace-side analyzers hardcoded their schema names
|
|
5
|
+
* (`potential-hangs`, `time-profile`, etc.) into the xpath queries
|
|
6
|
+
* (`/trace-toc/run/data/table[@schema="X"]`). Robust as long as Apple
|
|
7
|
+
* never renames a schema. When they DO rename one (or split into
|
|
8
|
+
* `hang-risks` alongside `potential-hangs`, see item F), the analyzer
|
|
9
|
+
* silently returns "schema absent" against a trace that has the data
|
|
10
|
+
* just under a different name.
|
|
11
|
+
*
|
|
12
|
+
* XcodeTraceMCP solves this with a regex-pattern lookup: each schema
|
|
13
|
+
* "family" maps to a list of regex patterns; discovery walks the TOC,
|
|
14
|
+
* matches schema names against the patterns, returns the first hit.
|
|
15
|
+
* Falls through gracefully when nothing matches (callers fall back to
|
|
16
|
+
* the hardcoded canonical name).
|
|
17
|
+
*
|
|
18
|
+
* The patterns mirror XcodeTraceMCP's `SCHEMA_PATTERNS` plus the
|
|
19
|
+
* families memorydetective already analyzes:
|
|
20
|
+
* `hangs`, `animation-hitches`, `time-profile`, `allocations`,
|
|
21
|
+
* `app-launch`, `memory`, `network`, `energy`, `leaks`.
|
|
22
|
+
*/
|
|
23
|
+
export const SCHEMA_FAMILIES = {
|
|
24
|
+
hangs: [/potential-hangs/i],
|
|
25
|
+
"hang-risks": [/hang-risks?/i],
|
|
26
|
+
"animation-hitches": [/animation-hitches?/i, /hitches?/i],
|
|
27
|
+
"time-profile": [/^time-profile$/i],
|
|
28
|
+
"time-sample": [/^time-samples?$/i],
|
|
29
|
+
allocations: [/^allocations?$/i, /\balloc\b/i, /\bmalloc\b/i],
|
|
30
|
+
"app-launch": [/app-launch/i, /launch-period/i],
|
|
31
|
+
memory: [/memory-footprint/i, /resident-memory/i, /\bvm-regions?\b/i],
|
|
32
|
+
network: [/network-connections?/i, /\bnetwork\b/i, /\bhttp\b/i],
|
|
33
|
+
energy: [/energy-impact/i, /power-draw/i, /\bwakeups?\b/i, /\bbattery\b/i],
|
|
34
|
+
leaks: [/^leaks?$/i, /leak-events?/i],
|
|
35
|
+
};
|
|
36
|
+
/** Canonical schema name we hardcoded before v1.14. Used as the fallback
|
|
37
|
+
* when discovery does not match anything in the TOC. */
|
|
38
|
+
export const CANONICAL_SCHEMA_NAME = {
|
|
39
|
+
hangs: "potential-hangs",
|
|
40
|
+
"hang-risks": "hang-risks",
|
|
41
|
+
"animation-hitches": "animation-hitches",
|
|
42
|
+
"time-profile": "time-profile",
|
|
43
|
+
"time-sample": "time-sample",
|
|
44
|
+
allocations: "allocations",
|
|
45
|
+
"app-launch": "app-launch",
|
|
46
|
+
memory: "memory-footprint",
|
|
47
|
+
network: "network-connections",
|
|
48
|
+
energy: "energy-impact",
|
|
49
|
+
leaks: "leaks",
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Pure: extract all `<table schema="X" .../>` names from a TOC XML
|
|
53
|
+
* string. Returns the names in document order, including duplicates
|
|
54
|
+
* (a trace can have the same schema appear with different filter
|
|
55
|
+
* attributes; the caller decides what to do with duplicates).
|
|
56
|
+
*
|
|
57
|
+
* Accepts both self-closing `<table schema="X"/>` (Apple's --toc shape)
|
|
58
|
+
* and open-close `<table schema="X">...</table>` (test fixtures).
|
|
59
|
+
*/
|
|
60
|
+
export function extractSchemaNamesFromToc(tocXml) {
|
|
61
|
+
const out = [];
|
|
62
|
+
// Self-closing form.
|
|
63
|
+
const selfClose = /<table\b[^>]*\bschema="([^"]+)"[^>]*\/>/g;
|
|
64
|
+
let m;
|
|
65
|
+
while ((m = selfClose.exec(tocXml)) !== null)
|
|
66
|
+
out.push(m[1]);
|
|
67
|
+
// Open-close form. Walk separately; the two regex passes can
|
|
68
|
+
// double-count if the same `<table>` is matched twice, but the
|
|
69
|
+
// patterns are mutually exclusive (`/>` vs `>...</table>`) so this is
|
|
70
|
+
// safe in practice.
|
|
71
|
+
const openClose = /<table\b[^>]*\bschema="([^"]+)"[^>]*>[\s\S]*?<\/table>/g;
|
|
72
|
+
while ((m = openClose.exec(tocXml)) !== null) {
|
|
73
|
+
if (!out.includes(m[1]))
|
|
74
|
+
out.push(m[1]);
|
|
75
|
+
}
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Pure: find the schema name in the TOC that matches the requested
|
|
80
|
+
* family. Returns the FIRST match in document order so deterministic
|
|
81
|
+
* across runs. Falls back to the canonical hardcoded name when no
|
|
82
|
+
* pattern matches; never returns null so callers can plug the result
|
|
83
|
+
* straight into an xpath query.
|
|
84
|
+
*
|
|
85
|
+
* The hardcoded fallback preserves pre-v1.14 behavior: if the trace
|
|
86
|
+
* uses the canonical name, the xpath still works because the canonical
|
|
87
|
+
* name itself matches its own family pattern.
|
|
88
|
+
*/
|
|
89
|
+
export function discoverSchema(tocXml, family) {
|
|
90
|
+
const names = extractSchemaNamesFromToc(tocXml);
|
|
91
|
+
const patterns = SCHEMA_FAMILIES[family];
|
|
92
|
+
for (const name of names) {
|
|
93
|
+
for (const pat of patterns) {
|
|
94
|
+
if (pat.test(name))
|
|
95
|
+
return name;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return CANONICAL_SCHEMA_NAME[family];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Pure: bulk variant. Resolves multiple families against the same TOC
|
|
102
|
+
* in one pass. Useful when an analyzer needs more than one schema
|
|
103
|
+
* (e.g. `analyzeHangs` reading both `hangs` and `hang-risks`).
|
|
104
|
+
*/
|
|
105
|
+
export function discoverSchemas(tocXml, families) {
|
|
106
|
+
const out = {};
|
|
107
|
+
const names = extractSchemaNamesFromToc(tocXml);
|
|
108
|
+
for (const family of families) {
|
|
109
|
+
const patterns = SCHEMA_FAMILIES[family];
|
|
110
|
+
let matched = null;
|
|
111
|
+
for (const name of names) {
|
|
112
|
+
for (const pat of patterns) {
|
|
113
|
+
if (pat.test(name)) {
|
|
114
|
+
matched = name;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (matched)
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
out[family] = matched ?? CANONICAL_SCHEMA_NAME[family];
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
export async function fetchDiscoveredSchemas(runCommand, tracePath, families) {
|
|
126
|
+
try {
|
|
127
|
+
const result = await runCommand("xcrun", ["xctrace", "export", "--input", tracePath, "--toc"], { timeoutMs: 60_000 });
|
|
128
|
+
if (result.code !== 0) {
|
|
129
|
+
// TOC fetch failed; return canonical fallback.
|
|
130
|
+
const out = {};
|
|
131
|
+
for (const f of families)
|
|
132
|
+
out[f] = CANONICAL_SCHEMA_NAME[f];
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
return discoverSchemas(result.stdout, families);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
const out = {};
|
|
139
|
+
for (const f of families)
|
|
140
|
+
out[f] = CANONICAL_SCHEMA_NAME[f];
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=schemaDiscovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaDiscovery.js","sourceRoot":"","sources":["../../src/parsers/schemaDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,15 @@ export interface XctraceTable {
|
|
|
15
15
|
* `raw` is the underlying value (timestamp in ns, duration in ns, etc.).
|
|
16
16
|
* `nested` is present when the value contains structured sub-elements
|
|
17
17
|
* (e.g. a thread cell containing tid + process + pid).
|
|
18
|
+
*
|
|
19
|
+
* The `name` field carries the `@_name` attribute used by xctrace for
|
|
20
|
+
* `<frame name="..." />` and `<binary name="..." />` elements in stack
|
|
21
|
+
* backtraces. Without it, time-profile rows lose their symbol metadata.
|
|
18
22
|
*/
|
|
19
23
|
export interface XctraceValue {
|
|
20
24
|
raw?: string;
|
|
21
25
|
fmt?: string;
|
|
26
|
+
name?: string;
|
|
22
27
|
nested?: Record<string, XctraceValue>;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
@@ -49,6 +49,9 @@ function nodeToValue(node, byId, depth = 0) {
|
|
|
49
49
|
const value = {};
|
|
50
50
|
if (typeof resolved["@_fmt"] === "string")
|
|
51
51
|
value.fmt = resolved["@_fmt"];
|
|
52
|
+
// Frame/binary elements carry the symbol/library name in @_name.
|
|
53
|
+
if (typeof resolved["@_name"] === "string")
|
|
54
|
+
value.name = resolved["@_name"];
|
|
52
55
|
// Body text — appears as #text after parsing.
|
|
53
56
|
const text = resolved["#text"];
|
|
54
57
|
if (typeof text === "string" && text.trim())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xctraceXml.js","sourceRoot":"","sources":["../../src/parsers/xctraceXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"xctraceXml.js","sourceRoot":"","sources":["../../src/parsers/xctraceXml.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { DataStatus } from "../types.js";
|
|
2
|
+
import type { DataStatus, SupportStatus } from "../types.js";
|
|
3
3
|
export declare const analyzeAllocationsSchema: z.ZodObject<{
|
|
4
4
|
tracePath: z.ZodString;
|
|
5
5
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
@@ -48,8 +48,12 @@ export interface AnalyzeAllocationsResult {
|
|
|
48
48
|
/**
|
|
49
49
|
* Disambiguates empty arrays into "no data in the trace" vs "trace could
|
|
50
50
|
* not be exported" vs "data was exported partially". See {@link DataStatus}.
|
|
51
|
+
*
|
|
52
|
+
* @deprecated v1.14 item I. Use `supportStatus[]` instead.
|
|
51
53
|
*/
|
|
52
54
|
status: DataStatus;
|
|
55
|
+
/** v1.14+. Unified per-area status. See {@link SupportStatus}. */
|
|
56
|
+
supportStatus: SupportStatus[];
|
|
53
57
|
}
|
|
54
58
|
/** Pure: turn parsed XML into the analyzed result. */
|
|
55
59
|
export declare function analyzeAllocationsFromXml(xml: string, tracePath: string, topN?: number, minBytes?: number): AnalyzeAllocationsResult;
|