memorydetective 1.16.0 → 1.17.1
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 +44 -0
- package/README.md +18 -15
- package/USAGE.md +3 -2
- package/dist/parsers/schemaDiscovery.d.ts +26 -0
- package/dist/parsers/schemaDiscovery.js +40 -11
- package/dist/parsers/schemaDiscovery.js.map +1 -1
- package/dist/runtime/parseBooleanEnv.d.ts +22 -0
- package/dist/runtime/parseBooleanEnv.js +47 -0
- package/dist/runtime/parseBooleanEnv.js.map +1 -0
- package/dist/runtime/platformCheck.js +4 -1
- package/dist/runtime/platformCheck.js.map +1 -1
- package/dist/runtime/securityFlags.js +3 -1
- package/dist/runtime/securityFlags.js.map +1 -1
- package/dist/tools/analyzeEnergyImpact.d.ts +7 -1
- package/dist/tools/analyzeEnergyImpact.js +9 -3
- package/dist/tools/analyzeEnergyImpact.js.map +1 -1
- package/dist/tools/analyzeHangs.js +21 -12
- package/dist/tools/analyzeHangs.js.map +1 -1
- package/dist/tools/analyzeLeakTimeline.js +27 -10
- package/dist/tools/analyzeLeakTimeline.js.map +1 -1
- package/dist/tools/analyzeMemoryFootprint.js +1 -2
- package/dist/tools/analyzeMemoryFootprint.js.map +1 -1
- package/dist/tools/analyzeNetworkActivity.d.ts +6 -1
- package/dist/tools/analyzeNetworkActivity.js +13 -1
- package/dist/tools/analyzeNetworkActivity.js.map +1 -1
- package/dist/tools/cleanupTraces.js +2 -1
- package/dist/tools/cleanupTraces.js.map +1 -1
- package/dist/tools/countAlive.d.ts +51 -5
- package/dist/tools/countAlive.js +140 -11
- package/dist/tools/countAlive.js.map +1 -1
- package/dist/tools/inspectTrace.js +22 -1
- package/dist/tools/inspectTrace.js.map +1 -1
- package/dist/tools/recordTimeProfile.d.ts +24 -0
- package/dist/tools/recordTimeProfile.js +38 -5
- package/dist/tools/recordTimeProfile.js.map +1 -1
- package/dist/tools/recordViaInstrumentsApp.d.ts +25 -0
- package/dist/tools/recordViaInstrumentsApp.js +97 -23
- package/dist/tools/recordViaInstrumentsApp.js.map +1 -1
- package/dist/tools/verifyFix.d.ts +18 -3
- package/dist/tools/verifyFix.js +51 -31
- package/dist/tools/verifyFix.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/countAlive.js
CHANGED
|
@@ -23,6 +23,22 @@ export const countAliveSchema = z.object({
|
|
|
23
23
|
.enum(["count", "totalBytes"])
|
|
24
24
|
.default("count")
|
|
25
25
|
.describe("v1.14+. Ranks the topN by either instance count (default, preserves v1.13 behavior) or total bytes (FLEX's 'Size' sort). totalBytes is `count * instanceSizeBytes` and is the right rank for 'where is my memory going?' investigations vs 'how many instances are alive?'. Per-class instanceSizeBytes + totalBytes are returned regardless of sort key."),
|
|
26
|
+
excludeFrameworkNoise: z
|
|
27
|
+
.boolean()
|
|
28
|
+
.default(true)
|
|
29
|
+
.describe("v1.17 B-10. When `includeReferenceTree: true`, populates `actionableCounts[]` with the framework-noise classes filtered out (NSMutableDictionary, CFString, __DATA __bss, dispatch_queue_t, etc.). Set false to disable the filter and surface the raw counts only via `counts[]`. The curated noise list is calibrated for abandoned-memory investigations; combine with `additionalNoisePatterns` / `unsuppressClassPatterns` to tune."),
|
|
30
|
+
additionalNoisePatterns: z
|
|
31
|
+
.array(z.string().min(1))
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("v1.17 B-10. Extra regex patterns (one per string) added to the noise filter. Useful when your app's noise classes are not in the curated list (e.g. third-party SDK collection storage that scales with app activity). Patterns are matched case-sensitively against the class name."),
|
|
34
|
+
unsuppressClassPatterns: z
|
|
35
|
+
.array(z.string().min(1))
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("v1.17 B-10. Regex patterns that override the noise filter. Use when the default filter false-positives an actionable class (e.g. your app's `NSMutableDictionary` subclass is the actual leak site, or you want CFString back on the actionable list for a string-budget investigation)."),
|
|
38
|
+
noiseAuditMode: z
|
|
39
|
+
.boolean()
|
|
40
|
+
.default(false)
|
|
41
|
+
.describe("v1.17 B-10. When true, returns an extra `noiseAudit[]` field listing each class that was filtered out, with the matching reason ('default-list', 'additional-pattern', or 'kept-by-unsuppress'). Lets the caller verify the filter is calibrated for their app before trusting `actionableCounts[]`."),
|
|
26
42
|
});
|
|
27
43
|
/** Pure: count node occurrences by exact className across the cycle forest.
|
|
28
44
|
* Backwards-compatible API; for v1.14 byte aggregation use
|
|
@@ -38,27 +54,61 @@ export function countByClass(report) {
|
|
|
38
54
|
}
|
|
39
55
|
/**
|
|
40
56
|
* Pure: aggregate occurrences AND bytes by exact className across the
|
|
41
|
-
* cycle forest. Each node's `instanceSize` is summed into `totalBytes
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
57
|
+
* cycle forest. Each node's `instanceSize` is summed into `totalBytes`.
|
|
58
|
+
*
|
|
59
|
+
* v1.17 B-07: pre-v1.17 we recorded the first-non-zero observed size as
|
|
60
|
+
* `instanceSizeBytes` and called it canonical. That misleads the caller
|
|
61
|
+
* for variable-size classes (NSData, NSString, CFData) where each
|
|
62
|
+
* instance has a payload-dependent size. Now: collect all observed
|
|
63
|
+
* sizes; if they are uniform we report the single value; if they vary
|
|
64
|
+
* we report the median in `instanceSizeBytes` AND surface the spread
|
|
65
|
+
* via `instanceSizeBytesMin / max / median`.
|
|
46
66
|
*/
|
|
47
67
|
export function countByClassWithBytes(report) {
|
|
48
68
|
const acc = new Map();
|
|
49
69
|
for (const { node } of walkCycles(report.cycles)) {
|
|
50
70
|
if (!node.className)
|
|
51
71
|
continue;
|
|
52
|
-
const cur = acc.get(node.className) ?? { count: 0, totalBytes: 0 };
|
|
72
|
+
const cur = acc.get(node.className) ?? { count: 0, totalBytes: 0, sizes: [] };
|
|
53
73
|
cur.count += 1;
|
|
54
74
|
if (node.instanceSize != null) {
|
|
55
75
|
cur.totalBytes += node.instanceSize;
|
|
56
|
-
|
|
57
|
-
cur.instanceSizeBytes = node.instanceSize;
|
|
76
|
+
cur.sizes.push(node.instanceSize);
|
|
58
77
|
}
|
|
59
78
|
acc.set(node.className, cur);
|
|
60
79
|
}
|
|
61
|
-
|
|
80
|
+
const out = new Map();
|
|
81
|
+
for (const [name, v] of acc.entries()) {
|
|
82
|
+
if (v.sizes.length === 0) {
|
|
83
|
+
out.set(name, { count: v.count, totalBytes: v.totalBytes });
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const min = Math.min(...v.sizes);
|
|
87
|
+
const max = Math.max(...v.sizes);
|
|
88
|
+
if (min === max) {
|
|
89
|
+
out.set(name, {
|
|
90
|
+
count: v.count,
|
|
91
|
+
totalBytes: v.totalBytes,
|
|
92
|
+
instanceSizeBytes: min,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const sorted = [...v.sizes].sort((a, b) => a - b);
|
|
97
|
+
const mid = Math.floor(sorted.length / 2);
|
|
98
|
+
const median = sorted.length % 2 === 0
|
|
99
|
+
? Math.round((sorted[mid - 1] + sorted[mid]) / 2)
|
|
100
|
+
: sorted[mid];
|
|
101
|
+
out.set(name, {
|
|
102
|
+
count: v.count,
|
|
103
|
+
totalBytes: v.totalBytes,
|
|
104
|
+
instanceSizeBytes: median,
|
|
105
|
+
instanceSizeBytesMin: min,
|
|
106
|
+
instanceSizeBytesMax: max,
|
|
107
|
+
instanceSizeBytesMedian: median,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
62
112
|
}
|
|
63
113
|
/**
|
|
64
114
|
* Spawn `leaks --referenceTree --groupByType --noContent` and parse the
|
|
@@ -91,6 +141,9 @@ export async function countAlive(input) {
|
|
|
91
141
|
let cycleMatched = 0;
|
|
92
142
|
let cycleBytesMatched = 0;
|
|
93
143
|
let cycleInstanceSize;
|
|
144
|
+
let cycleSizeMin;
|
|
145
|
+
let cycleSizeMax;
|
|
146
|
+
let cycleSizeMedian;
|
|
94
147
|
for (const [name, info] of cycleByClass.entries()) {
|
|
95
148
|
if (!name.includes(input.className))
|
|
96
149
|
continue;
|
|
@@ -98,6 +151,9 @@ export async function countAlive(input) {
|
|
|
98
151
|
cycleBytesMatched += info.totalBytes;
|
|
99
152
|
if (cycleInstanceSize == null && info.instanceSizeBytes != null) {
|
|
100
153
|
cycleInstanceSize = info.instanceSizeBytes;
|
|
154
|
+
cycleSizeMin = info.instanceSizeBytesMin;
|
|
155
|
+
cycleSizeMax = info.instanceSizeBytesMax;
|
|
156
|
+
cycleSizeMedian = info.instanceSizeBytesMedian;
|
|
101
157
|
}
|
|
102
158
|
}
|
|
103
159
|
let refTreeMatched = 0;
|
|
@@ -114,6 +170,13 @@ export async function countAlive(input) {
|
|
|
114
170
|
(totalCount > 0 && totalBytes > 0
|
|
115
171
|
? Math.round(totalBytes / totalCount)
|
|
116
172
|
: undefined);
|
|
173
|
+
const variableSizeFields = cycleSizeMin != null && cycleSizeMax != null && cycleSizeMedian != null
|
|
174
|
+
? {
|
|
175
|
+
instanceSizeBytesMin: cycleSizeMin,
|
|
176
|
+
instanceSizeBytesMax: cycleSizeMax,
|
|
177
|
+
instanceSizeBytesMedian: cycleSizeMedian,
|
|
178
|
+
}
|
|
179
|
+
: {};
|
|
117
180
|
const entry = wantReferenceTree
|
|
118
181
|
? {
|
|
119
182
|
className: input.className,
|
|
@@ -121,12 +184,14 @@ export async function countAlive(input) {
|
|
|
121
184
|
byCycle: cycleMatched,
|
|
122
185
|
byReferenceTree: refTreeMatched,
|
|
123
186
|
...(instanceSizeBytes != null ? { instanceSizeBytes } : {}),
|
|
187
|
+
...variableSizeFields,
|
|
124
188
|
...(totalBytes > 0 ? { totalBytes } : {}),
|
|
125
189
|
}
|
|
126
190
|
: {
|
|
127
191
|
className: input.className,
|
|
128
192
|
instanceCount: cycleMatched,
|
|
129
193
|
...(instanceSizeBytes != null ? { instanceSizeBytes } : {}),
|
|
194
|
+
...variableSizeFields,
|
|
130
195
|
...(cycleBytesMatched > 0 ? { totalBytes: cycleBytesMatched } : {}),
|
|
131
196
|
};
|
|
132
197
|
return {
|
|
@@ -149,6 +214,15 @@ export async function countAlive(input) {
|
|
|
149
214
|
...(info.instanceSizeBytes != null
|
|
150
215
|
? { instanceSizeBytes: info.instanceSizeBytes }
|
|
151
216
|
: {}),
|
|
217
|
+
...(info.instanceSizeBytesMin != null
|
|
218
|
+
? { instanceSizeBytesMin: info.instanceSizeBytesMin }
|
|
219
|
+
: {}),
|
|
220
|
+
...(info.instanceSizeBytesMax != null
|
|
221
|
+
? { instanceSizeBytesMax: info.instanceSizeBytesMax }
|
|
222
|
+
: {}),
|
|
223
|
+
...(info.instanceSizeBytesMedian != null
|
|
224
|
+
? { instanceSizeBytesMedian: info.instanceSizeBytesMedian }
|
|
225
|
+
: {}),
|
|
152
226
|
});
|
|
153
227
|
}
|
|
154
228
|
if (wantReferenceTree) {
|
|
@@ -176,6 +250,15 @@ export async function countAlive(input) {
|
|
|
176
250
|
(totalCount > 0 && totalBytes > 0
|
|
177
251
|
? Math.round(totalBytes / totalCount)
|
|
178
252
|
: undefined);
|
|
253
|
+
const variableSize = v.instanceSizeBytesMin != null &&
|
|
254
|
+
v.instanceSizeBytesMax != null &&
|
|
255
|
+
v.instanceSizeBytesMedian != null
|
|
256
|
+
? {
|
|
257
|
+
instanceSizeBytesMin: v.instanceSizeBytesMin,
|
|
258
|
+
instanceSizeBytesMax: v.instanceSizeBytesMax,
|
|
259
|
+
instanceSizeBytesMedian: v.instanceSizeBytesMedian,
|
|
260
|
+
}
|
|
261
|
+
: {};
|
|
179
262
|
return wantReferenceTree
|
|
180
263
|
? {
|
|
181
264
|
className: name,
|
|
@@ -183,12 +266,14 @@ export async function countAlive(input) {
|
|
|
183
266
|
byCycle: v.byCycle,
|
|
184
267
|
byReferenceTree: v.byReferenceTree,
|
|
185
268
|
...(instanceSizeBytes != null ? { instanceSizeBytes } : {}),
|
|
269
|
+
...variableSize,
|
|
186
270
|
...(totalBytes > 0 ? { totalBytes } : {}),
|
|
187
271
|
}
|
|
188
272
|
: {
|
|
189
273
|
className: name,
|
|
190
274
|
instanceCount: v.byCycle,
|
|
191
275
|
...(instanceSizeBytes != null ? { instanceSizeBytes } : {}),
|
|
276
|
+
...variableSize,
|
|
192
277
|
...(v.cycleBytes > 0 ? { totalBytes: v.cycleBytes } : {}),
|
|
193
278
|
};
|
|
194
279
|
});
|
|
@@ -211,14 +296,58 @@ export async function countAlive(input) {
|
|
|
211
296
|
// returned data. Same ranking, just framework-noise filtered. Surfaces
|
|
212
297
|
// AV / KVO / app-level classes that would otherwise rank below
|
|
213
298
|
// NSMutableDictionary, CFString, etc.
|
|
214
|
-
|
|
299
|
+
//
|
|
300
|
+
// v1.17 B-10: filter is configurable. `excludeFrameworkNoise: false`
|
|
301
|
+
// skips the filter entirely; `additionalNoisePatterns` extends the
|
|
302
|
+
// curated list; `unsuppressClassPatterns` overrides it (keeps a class
|
|
303
|
+
// in the actionable view even when the default list would filter it).
|
|
304
|
+
if (wantReferenceTree && refTreeCounts.size > 0 && input.excludeFrameworkNoise !== false) {
|
|
305
|
+
const additional = (input.additionalNoisePatterns ?? []).map(compileSafeRegex);
|
|
306
|
+
const unsuppress = (input.unsuppressClassPatterns ?? []).map(compileSafeRegex);
|
|
307
|
+
const audit = [];
|
|
215
308
|
const actionable = allEntries
|
|
216
|
-
.filter((e) =>
|
|
309
|
+
.filter((e) => {
|
|
310
|
+
const inDefault = isFrameworkNoise(e.className);
|
|
311
|
+
const inAdditional = additional.some((re) => re.test(e.className));
|
|
312
|
+
const isUnsuppressed = unsuppress.some((re) => re.test(e.className));
|
|
313
|
+
if (inDefault && isUnsuppressed) {
|
|
314
|
+
if (input.noiseAuditMode)
|
|
315
|
+
audit.push({ className: e.className, reason: "kept-by-unsuppress" });
|
|
316
|
+
return true; // keep
|
|
317
|
+
}
|
|
318
|
+
if (inDefault) {
|
|
319
|
+
if (input.noiseAuditMode)
|
|
320
|
+
audit.push({ className: e.className, reason: "default-list" });
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
if (inAdditional && !isUnsuppressed) {
|
|
324
|
+
if (input.noiseAuditMode)
|
|
325
|
+
audit.push({ className: e.className, reason: "additional-pattern" });
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
return true;
|
|
329
|
+
})
|
|
217
330
|
.slice(0, topN);
|
|
218
331
|
if (actionable.length > 0) {
|
|
219
332
|
result.actionableCounts = actionable;
|
|
220
333
|
}
|
|
334
|
+
if (input.noiseAuditMode) {
|
|
335
|
+
result.noiseAudit = audit;
|
|
336
|
+
}
|
|
221
337
|
}
|
|
222
338
|
return result;
|
|
223
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* v1.17 B-10. Compile a user-supplied regex string safely, falling back to
|
|
342
|
+
* a literal-match regex when the input is not valid regex syntax. Keeps
|
|
343
|
+
* the tool resilient to operators copy-pasting plain class names.
|
|
344
|
+
*/
|
|
345
|
+
function compileSafeRegex(pattern) {
|
|
346
|
+
try {
|
|
347
|
+
return new RegExp(pattern);
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
return new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
351
|
+
}
|
|
352
|
+
}
|
|
224
353
|
//# sourceMappingURL=countAlive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countAlive.js","sourceRoot":"","sources":["../../src/tools/countAlive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"countAlive.js","sourceRoot":"","sources":["../../src/tools/countAlive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mIAAmI,CACpI;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,iFAAiF,CAClF;IACH,oBAAoB,EAAE,CAAC;SACpB,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,4aAA4a,CAC7a;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAC7B,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CACP,2VAA2V,CAC5V;IACH,qBAAqB,EAAE,CAAC;SACrB,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,0aAA0a,CAC3a;IACH,uBAAuB,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACP,sRAAsR,CACvR;IACH,uBAAuB,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACP,0RAA0R,CAC3R;IACH,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,sSAAsS,CACvS;CACJ,CAAC,CAAC;AAyEH;;qCAEqC;AACrC,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,SAAS;QAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IAWvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAGhB,CAAC;IACJ,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,SAAS;QAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC9B,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAUhB,CAAC;IACJ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,iBAAiB,EAAE,GAAG;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC1C,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,iBAAiB,EAAE,MAAM;gBACzB,oBAAoB,EAAE,GAAG;gBACzB,oBAAoB,EAAE,GAAG;gBACzB,uBAAuB,EAAE,MAAM;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,0BAA0B,CACvC,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,OAAO,EACP,CAAC,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,CAAC,EACzD,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAC1B,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,GAAG,CACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,CAAC,CAAC,SAAS;QACX,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;KACrD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAsB;IAEtB,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,iBAAiB;YACf,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAiD,CAAC;KAC9E,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EACrB,CAAC,CACF,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAqC,CAAC;QAC1C,IAAI,YAAgC,CAAC;QACrC,IAAI,YAAgC,CAAC;QACrC,IAAI,eAAmC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC9C,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;YAC3B,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC;YACrC,IAAI,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAChE,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBACzC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBACzC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACjD,CAAC;QACH,CAAC;QACD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC9C,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;QACjD,MAAM,UAAU,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;QAC3D,MAAM,iBAAiB,GACrB,iBAAiB;YACjB,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,MAAM,kBAAkB,GACtB,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI;YACrE,CAAC,CAAC;gBACE,oBAAoB,EAAE,YAAY;gBAClC,oBAAoB,EAAE,YAAY;gBAClC,uBAAuB,EAAE,eAAe;aACzC;YACH,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAoB,iBAAiB;YAC9C,CAAC,CAAC;gBACE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,UAAU;gBACzB,OAAO,EAAE,YAAY;gBACrB,eAAe,EAAE,cAAc;gBAC/B,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,kBAAkB;gBACrB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,kBAAkB;gBACrB,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC;QACN,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,YAAY;YAClB,UAAU;YACV,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,uBAAuB;IACvB,MAAM,MAAM,GAAG,IAAI,GAAG,EAYnB,CAAC;IACJ,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI;gBAChC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI;gBACnC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI;gBACnC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI;gBACtC,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;gBACtC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;oBACf,OAAO,EAAE,CAAC;oBACV,eAAe,EAAE,IAAI,CAAC,KAAK;oBAC3B,UAAU,EAAE,CAAC;oBACb,YAAY,EAAE,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAsB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACpE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;QACjD,MAAM,iBAAiB,GACrB,CAAC,CAAC,iBAAiB;YACnB,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,MAAM,YAAY,GAChB,CAAC,CAAC,oBAAoB,IAAI,IAAI;YAC9B,CAAC,CAAC,oBAAoB,IAAI,IAAI;YAC9B,CAAC,CAAC,uBAAuB,IAAI,IAAI;YAC/B,CAAC,CAAC;gBACE,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;gBAC5C,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;gBAC5C,uBAAuB,EAAE,CAAC,CAAC,uBAAuB;aACnD;YACH,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,iBAAiB;YACtB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,UAAU;gBACzB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,YAAY;gBACf,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,CAAC,CAAC,OAAO;gBACxB,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,YAAY;gBACf,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CAAC;IACR,CAAC,CACF,CAAC;IACF,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YACrD,IAAI,EAAE,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,YAAY;QAClB,UAAU;QACV,MAAM,EAAE,GAAG;KACZ,CAAC;IAEF,wEAAwE;IACxE,uEAAuE;IACvE,+DAA+D;IAC/D,sCAAsC;IACtC,EAAE;IACF,qEAAqE;IACrE,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,iBAAiB,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;QACzF,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAgD,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACnE,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAC/F,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBACzF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAC/F,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
|
|
@@ -233,9 +233,30 @@ export async function inspectTrace(input) {
|
|
|
233
233
|
// export" against real Apple-produced .trace bundles (validated 2026-05-15
|
|
234
234
|
// against wishlist-tti-device.trace). The --toc flag returns the full
|
|
235
235
|
// table-of-contents XML including all `<table schema="..."/>` elements.
|
|
236
|
+
//
|
|
237
|
+
// v1.17 B-05: be fault-tolerant. xctrace can refuse a bundle for many
|
|
238
|
+
// reasons (52K Document Missing Template Error bundles from the
|
|
239
|
+
// macOS 26.x `--time-limit` regression, corrupted writes, partial
|
|
240
|
+
// copies). Throwing on those breaks the whole MCP call. Instead, return
|
|
241
|
+
// `ok: true` with empty schemas + diagnosis text so the agent can still
|
|
242
|
+
// see the file size and read the failure reason. Throwing is reserved
|
|
243
|
+
// for unrecoverable input (missing trace path, already handled above).
|
|
236
244
|
const result = await runCommand("xcrun", ["xctrace", "export", "--input", tracePath, "--toc"], { timeoutMs: 60_000 });
|
|
237
245
|
if (result.code !== 0) {
|
|
238
|
-
|
|
246
|
+
const reason = result.stderr.trim() || result.stdout.trim() || "<no output>";
|
|
247
|
+
return {
|
|
248
|
+
ok: true,
|
|
249
|
+
tracePath,
|
|
250
|
+
schemas: [],
|
|
251
|
+
rowCounts: {},
|
|
252
|
+
suggestedNextCalls: [],
|
|
253
|
+
diagnosis: `xctrace could not export the trace bundle's table-of-contents ` +
|
|
254
|
+
`(exit code ${result.code}). Common causes: the bundle is a stub ` +
|
|
255
|
+
`from the macOS 26.x \`xctrace --time-limit\` regression (look for ` +
|
|
256
|
+
`Document Missing Template Error around ~52K), a partial copy, or ` +
|
|
257
|
+
`permissions on a code-signed bundle. xctrace stderr: ${reason}`,
|
|
258
|
+
...(fileSize != null ? { fileSize } : {}),
|
|
259
|
+
};
|
|
239
260
|
}
|
|
240
261
|
const parsed = parseTraceToc(result.stdout, tracePath);
|
|
241
262
|
// The TOC carries schema NAMES + column metadata but no rows. Fill in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspectTrace.js","sourceRoot":"","sources":["../../src/tools/inspectTrace.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"inspectTrace.js","sourceRoot":"","sources":["../../src/tools/inspectTrace.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,17 @@ export interface RecordTimeProfileResult {
|
|
|
81
81
|
* fail to export it. Inspect `workaroundNotice` for the recovery path.
|
|
82
82
|
*/
|
|
83
83
|
recordingTimedOut?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* v1.17 B-09. Reports whether the .trace bundle on disk is
|
|
86
|
+
* salvageable. `unknown` when recording succeeded normally
|
|
87
|
+
* (the caller can run inspectTrace to confirm). `salvageable` when
|
|
88
|
+
* a timeout / SIGINT path produced a bundle with the canonical
|
|
89
|
+
* Trace1.run/MANIFEST.plist marker (xctrace flushed cleanly).
|
|
90
|
+
* `wedged` when the bundle is missing MANIFEST.plist (the macOS 26.x
|
|
91
|
+
* regression signature; xctrace export will reject it). Use this to
|
|
92
|
+
* branch without re-checking the filesystem.
|
|
93
|
+
*/
|
|
94
|
+
bundleStatus?: "unknown" | "salvageable" | "wedged";
|
|
84
95
|
/**
|
|
85
96
|
* Present when `recordingTimedOut` is true. Documents the
|
|
86
97
|
* `xctrace --time-limit` regression observed on macOS 26.x simulators
|
|
@@ -151,6 +162,19 @@ export declare function shouldPreflightXctrace(input: RecordTimeProfileInput, en
|
|
|
151
162
|
* output path.
|
|
152
163
|
*/
|
|
153
164
|
export declare function preflightXctraceRecord(input: RecordTimeProfileInput, resolvedOutput: string): Promise<PreflightResult>;
|
|
165
|
+
/**
|
|
166
|
+
* v1.17 B-09. Classify a `.trace` bundle on disk by the canonical
|
|
167
|
+
* markers xctrace writes. The `MANIFEST.plist` file under `Trace1.run/`
|
|
168
|
+
* is the marker of a complete export; absent means xctrace was killed
|
|
169
|
+
* before flushing (the macOS 26.x wedge signature).
|
|
170
|
+
*
|
|
171
|
+
* Returns `unknown` when the path doesn't exist (caller error).
|
|
172
|
+
* Used by recordTimeProfile to surface `bundleStatus` on the response.
|
|
173
|
+
*
|
|
174
|
+
* Exported so other tools (recordViaInstrumentsApp, etc.) can share
|
|
175
|
+
* the heuristic.
|
|
176
|
+
*/
|
|
177
|
+
export declare function classifyBundleOnDisk(tracePath: string): "unknown" | "salvageable" | "wedged";
|
|
154
178
|
/**
|
|
155
179
|
* v1.14 item J. When a `recordTimeProfile` call times out, optionally
|
|
156
180
|
* launch the partial `.trace` in Instruments.app so the user has a GUI
|
|
@@ -5,6 +5,7 @@ import { resolve as resolvePath, dirname, isAbsolute as isAbsolutePath, join as
|
|
|
5
5
|
import { runCommand } from "../runtime/exec.js";
|
|
6
6
|
import { getSecurityFlags, maxRecordingExceededMessage, } from "../runtime/securityFlags.js";
|
|
7
7
|
import { getPlatformAdvisory } from "../runtime/platformCheck.js";
|
|
8
|
+
import { parseBooleanEnv } from "../runtime/parseBooleanEnv.js";
|
|
8
9
|
/**
|
|
9
10
|
* Base shape, exposed so the MCP layer can read `.shape` (ZodEffects from
|
|
10
11
|
* `.superRefine()` doesn't expose shape).
|
|
@@ -111,11 +112,12 @@ const PREFLIGHT_GRACEFUL_KILL_MS = 2000;
|
|
|
111
112
|
* when running on a real macOS 26.x machine.
|
|
112
113
|
*/
|
|
113
114
|
export function shouldPreflightXctrace(input, env = process.env, osPlatform, osRelease) {
|
|
115
|
+
// v1.17 B-03: accept the strtobool set, not just "1" / "0". Empty / unset
|
|
116
|
+
// falls through to the auto-detection arm.
|
|
114
117
|
const explicit = env.MEMORYDETECTIVE_PREFLIGHT_XCTRACE;
|
|
115
|
-
if (explicit
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
return false;
|
|
118
|
+
if (explicit != null && explicit.trim() !== "") {
|
|
119
|
+
return parseBooleanEnv(explicit, false, "MEMORYDETECTIVE_PREFLIGHT_XCTRACE");
|
|
120
|
+
}
|
|
119
121
|
// Auto: only when the known-broken combination applies.
|
|
120
122
|
const onMacOS26 = getPlatformAdvisory(env, osPlatform, osRelease) != null;
|
|
121
123
|
const isSimTarget = !!input.simulatorId && !input.deviceId;
|
|
@@ -166,6 +168,24 @@ export async function preflightXctraceRecord(input, resolvedOutput) {
|
|
|
166
168
|
}
|
|
167
169
|
return { healthy: true, durationMs };
|
|
168
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* v1.17 B-09. Classify a `.trace` bundle on disk by the canonical
|
|
173
|
+
* markers xctrace writes. The `MANIFEST.plist` file under `Trace1.run/`
|
|
174
|
+
* is the marker of a complete export; absent means xctrace was killed
|
|
175
|
+
* before flushing (the macOS 26.x wedge signature).
|
|
176
|
+
*
|
|
177
|
+
* Returns `unknown` when the path doesn't exist (caller error).
|
|
178
|
+
* Used by recordTimeProfile to surface `bundleStatus` on the response.
|
|
179
|
+
*
|
|
180
|
+
* Exported so other tools (recordViaInstrumentsApp, etc.) can share
|
|
181
|
+
* the heuristic.
|
|
182
|
+
*/
|
|
183
|
+
export function classifyBundleOnDisk(tracePath) {
|
|
184
|
+
if (!existsSync(tracePath))
|
|
185
|
+
return "unknown";
|
|
186
|
+
const manifest = `${tracePath}/Trace1.run/MANIFEST.plist`;
|
|
187
|
+
return existsSync(manifest) ? "salvageable" : "wedged";
|
|
188
|
+
}
|
|
169
189
|
/**
|
|
170
190
|
* v1.14 item J. When a `recordTimeProfile` call times out, optionally
|
|
171
191
|
* launch the partial `.trace` in Instruments.app so the user has a GUI
|
|
@@ -186,10 +206,19 @@ export async function preflightXctraceRecord(input, resolvedOutput) {
|
|
|
186
206
|
* Instruments in test runs.
|
|
187
207
|
*/
|
|
188
208
|
export function maybeOpenInInstruments(tracePath) {
|
|
189
|
-
if (process.env.MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS
|
|
209
|
+
if (!parseBooleanEnv(process.env.MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS, false, "MEMORYDETECTIVE_AUTO_OPEN_INSTRUMENTS")) {
|
|
190
210
|
return false;
|
|
211
|
+
}
|
|
191
212
|
if (!existsSync(tracePath))
|
|
192
213
|
return false;
|
|
214
|
+
// v1.17 B-04: skip the open when the bundle is a wedged shell.
|
|
215
|
+
// A complete xctrace export writes Trace1.run/MANIFEST.plist; a wedge
|
|
216
|
+
// produces only Trace1.run/RunIssues.storedata. Opening a wedge in
|
|
217
|
+
// Instruments shows a Document Missing Template Error dialog, which
|
|
218
|
+
// is worse UX than just not opening.
|
|
219
|
+
const manifest = `${tracePath}/Trace1.run/MANIFEST.plist`;
|
|
220
|
+
if (!existsSync(manifest))
|
|
221
|
+
return false;
|
|
193
222
|
try {
|
|
194
223
|
const child = spawn("open", ["-a", "Instruments", tracePath], {
|
|
195
224
|
detached: true,
|
|
@@ -281,6 +310,9 @@ export async function recordTimeProfile(input) {
|
|
|
281
310
|
});
|
|
282
311
|
if (result.timedOut) {
|
|
283
312
|
const openedInInstrumentsApp = maybeOpenInInstruments(output);
|
|
313
|
+
// v1.17 B-09: classify the bundle before returning so the caller
|
|
314
|
+
// does not need to re-check the filesystem.
|
|
315
|
+
const bundleStatus = classifyBundleOnDisk(output);
|
|
284
316
|
return {
|
|
285
317
|
ok: false,
|
|
286
318
|
command: `xcrun ${args.join(" ")}`,
|
|
@@ -295,6 +327,7 @@ export async function recordTimeProfile(input) {
|
|
|
295
327
|
fallbacks: XCTRACE_TIMEOUT_FALLBACKS,
|
|
296
328
|
},
|
|
297
329
|
openedInInstrumentsApp,
|
|
330
|
+
bundleStatus,
|
|
298
331
|
};
|
|
299
332
|
}
|
|
300
333
|
if (result.code !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordTimeProfile.js","sourceRoot":"","sources":["../../src/tools/recordTimeProfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,OAAO,EACP,UAAU,IAAI,cAAc,EAC5B,IAAI,IAAI,QAAQ,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"recordTimeProfile.js","sourceRoot":"","sources":["../../src/tools/recordTimeProfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,15 @@ export interface RecordViaInstrumentsAppResult {
|
|
|
45
45
|
instructions: string[];
|
|
46
46
|
/** True when the watcher gave up before finding a new `.trace`. */
|
|
47
47
|
timedOut?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* v1.17 B-01. True when the trace was detected via the Instruments.app
|
|
50
|
+
* AppleScript document query, NOT via the filesystem watcher. Means
|
|
51
|
+
* the user saved the .trace OUTSIDE the configured `watchDir`. The
|
|
52
|
+
* `tracePath` still resolves correctly; this flag explains the
|
|
53
|
+
* detection path so callers can suggest "next time save to <watchDir>"
|
|
54
|
+
* or update their watcher config.
|
|
55
|
+
*/
|
|
56
|
+
savedOutsideWatchDir?: boolean;
|
|
48
57
|
/** Wall-clock seconds the user spent recording (start of watcher to detection). */
|
|
49
58
|
elapsedSec: number;
|
|
50
59
|
/** Chained inspectTrace summary when the recording was found AND was readable. */
|
|
@@ -78,4 +87,20 @@ export declare function isStable(candidatePath: string, nowMs: number, stableFor
|
|
|
78
87
|
* Exported for testing.
|
|
79
88
|
*/
|
|
80
89
|
export declare function buildInstructions(template: string, watchDir: string): string[];
|
|
90
|
+
/**
|
|
91
|
+
* v1.17 B-01: query Instruments.app for the file paths of currently
|
|
92
|
+
* open documents via AppleScript. Used as a cross-check during the
|
|
93
|
+
* poll loop: if the user saves a `.trace` OUTSIDE `watchDir`, the
|
|
94
|
+
* directory watcher misses it, but Instruments.app will have the new
|
|
95
|
+
* document open and we can read its `file` property.
|
|
96
|
+
*
|
|
97
|
+
* Returns an array of absolute POSIX paths. Empty array when Instruments
|
|
98
|
+
* is not running, has no documents open, or the AppleScript fails.
|
|
99
|
+
*
|
|
100
|
+
* Exported for testing.
|
|
101
|
+
*/
|
|
102
|
+
export declare function queryInstrumentsDocumentPaths(exec: (cmd: string, args: string[]) => Promise<{
|
|
103
|
+
code: number;
|
|
104
|
+
stdout: string;
|
|
105
|
+
}>): Promise<string[]>;
|
|
81
106
|
export declare function recordViaInstrumentsApp(input: RecordViaInstrumentsAppInput): Promise<RecordViaInstrumentsAppResult>;
|