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.
Files changed (42) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +18 -15
  3. package/USAGE.md +3 -2
  4. package/dist/parsers/schemaDiscovery.d.ts +26 -0
  5. package/dist/parsers/schemaDiscovery.js +40 -11
  6. package/dist/parsers/schemaDiscovery.js.map +1 -1
  7. package/dist/runtime/parseBooleanEnv.d.ts +22 -0
  8. package/dist/runtime/parseBooleanEnv.js +47 -0
  9. package/dist/runtime/parseBooleanEnv.js.map +1 -0
  10. package/dist/runtime/platformCheck.js +4 -1
  11. package/dist/runtime/platformCheck.js.map +1 -1
  12. package/dist/runtime/securityFlags.js +3 -1
  13. package/dist/runtime/securityFlags.js.map +1 -1
  14. package/dist/tools/analyzeEnergyImpact.d.ts +7 -1
  15. package/dist/tools/analyzeEnergyImpact.js +9 -3
  16. package/dist/tools/analyzeEnergyImpact.js.map +1 -1
  17. package/dist/tools/analyzeHangs.js +21 -12
  18. package/dist/tools/analyzeHangs.js.map +1 -1
  19. package/dist/tools/analyzeLeakTimeline.js +27 -10
  20. package/dist/tools/analyzeLeakTimeline.js.map +1 -1
  21. package/dist/tools/analyzeMemoryFootprint.js +1 -2
  22. package/dist/tools/analyzeMemoryFootprint.js.map +1 -1
  23. package/dist/tools/analyzeNetworkActivity.d.ts +6 -1
  24. package/dist/tools/analyzeNetworkActivity.js +13 -1
  25. package/dist/tools/analyzeNetworkActivity.js.map +1 -1
  26. package/dist/tools/cleanupTraces.js +2 -1
  27. package/dist/tools/cleanupTraces.js.map +1 -1
  28. package/dist/tools/countAlive.d.ts +51 -5
  29. package/dist/tools/countAlive.js +140 -11
  30. package/dist/tools/countAlive.js.map +1 -1
  31. package/dist/tools/inspectTrace.js +22 -1
  32. package/dist/tools/inspectTrace.js.map +1 -1
  33. package/dist/tools/recordTimeProfile.d.ts +24 -0
  34. package/dist/tools/recordTimeProfile.js +38 -5
  35. package/dist/tools/recordTimeProfile.js.map +1 -1
  36. package/dist/tools/recordViaInstrumentsApp.d.ts +25 -0
  37. package/dist/tools/recordViaInstrumentsApp.js +97 -23
  38. package/dist/tools/recordViaInstrumentsApp.js.map +1 -1
  39. package/dist/tools/verifyFix.d.ts +18 -3
  40. package/dist/tools/verifyFix.js +51 -31
  41. package/dist/tools/verifyFix.js.map +1 -1
  42. package/package.json +2 -2
@@ -21,6 +21,7 @@ import { z } from "zod";
21
21
  import { existsSync, mkdirSync, statSync, readdirSync } from "node:fs";
22
22
  import { resolve as resolvePath, join as joinPath } from "node:path";
23
23
  import { spawn } from "node:child_process";
24
+ import { runCommand } from "../runtime/exec.js";
24
25
  import { getSecurityFlags } from "../runtime/securityFlags.js";
25
26
  import { inspectTrace } from "./inspectTrace.js";
26
27
  export const recordViaInstrumentsAppSchema = z.object({
@@ -111,6 +112,45 @@ export function buildInstructions(template, watchDir) {
111
112
  `Once saved, this tool detects the new \`.trace\` bundle (within ~10 seconds) and returns its path.`,
112
113
  ];
113
114
  }
115
+ /**
116
+ * v1.17 B-01: query Instruments.app for the file paths of currently
117
+ * open documents via AppleScript. Used as a cross-check during the
118
+ * poll loop: if the user saves a `.trace` OUTSIDE `watchDir`, the
119
+ * directory watcher misses it, but Instruments.app will have the new
120
+ * document open and we can read its `file` property.
121
+ *
122
+ * Returns an array of absolute POSIX paths. Empty array when Instruments
123
+ * is not running, has no documents open, or the AppleScript fails.
124
+ *
125
+ * Exported for testing.
126
+ */
127
+ export async function queryInstrumentsDocumentPaths(exec) {
128
+ const script = [
129
+ 'tell application "Instruments"',
130
+ " set docs to every document",
131
+ " set out to {}",
132
+ " repeat with d in docs",
133
+ " try",
134
+ " set f to file of d",
135
+ " set end of out to POSIX path of f",
136
+ " end try",
137
+ " end repeat",
138
+ " return out",
139
+ "end tell",
140
+ ].join("\n");
141
+ try {
142
+ const result = await exec("osascript", ["-e", script]);
143
+ if (result.code !== 0)
144
+ return [];
145
+ return result.stdout
146
+ .split(/[,\n]/)
147
+ .map((s) => s.trim())
148
+ .filter((s) => s.endsWith(".trace"));
149
+ }
150
+ catch {
151
+ return [];
152
+ }
153
+ }
114
154
  /**
115
155
  * Spawn `open -a Instruments` fire-and-forget. v1.16. Returns immediately;
116
156
  * Instruments.app launch takes a few seconds and the user interacts with
@@ -140,6 +180,38 @@ function sleep(ms) {
140
180
  }
141
181
  const POLL_INTERVAL_MS = 5_000;
142
182
  const STABLE_FOR_MS = 10_000;
183
+ /**
184
+ * v1.17 B-01 helper: assemble the success-path response when a new
185
+ * `.trace` is detected via either the filesystem watcher OR the
186
+ * Instruments.app AppleScript document query. Shared between both
187
+ * detection paths to keep the shape consistent.
188
+ */
189
+ async function buildSuccessResult(candidate, watchDir, instructions, startMs, savedOutsideWatchDir) {
190
+ const elapsedSec = Math.round((Date.now() - startMs) / 1000);
191
+ let inspection;
192
+ try {
193
+ inspection = await inspectTrace({ tracePath: candidate });
194
+ }
195
+ catch {
196
+ // Inspection failure is non-fatal.
197
+ }
198
+ const detectedVia = savedOutsideWatchDir
199
+ ? "Instruments.app GUI (user saved outside watchDir)"
200
+ : `watchDir \`${watchDir}\``;
201
+ const diagnosis = inspection
202
+ ? `Captured \`${candidate}\` after ${elapsedSec}s via ${detectedVia}. ${inspection.schemas.length} schemas in the TOC.`
203
+ : `Captured \`${candidate}\` after ${elapsedSec}s via ${detectedVia}. Inspect failed; pass the path to inspectTrace manually.`;
204
+ return {
205
+ ok: true,
206
+ tracePath: candidate,
207
+ watchDir,
208
+ instructions,
209
+ elapsedSec,
210
+ ...(inspection ? { inspection } : {}),
211
+ ...(savedOutsideWatchDir ? { savedOutsideWatchDir: true } : {}),
212
+ diagnosis,
213
+ };
214
+ }
143
215
  export async function recordViaInstrumentsApp(input) {
144
216
  const security = getSecurityFlags();
145
217
  const watchDir = resolvePath(input.watchDir ?? security.traceRoot);
@@ -153,37 +225,39 @@ export async function recordViaInstrumentsApp(input) {
153
225
  ? new Set(input.preexistingTraces.map((p) => resolvePath(p)))
154
226
  : snapshotTracesInDir(watchDir);
155
227
  openInstrumentsApp();
228
+ // v1.17 B-01: also baseline the Instruments-open-document set so we
229
+ // can detect a NEW trace that's open in the GUI even when the user
230
+ // saves it outside our watchDir. The osascript adapter for the
231
+ // queryInstrumentsDocumentPaths function uses runCommand.
232
+ const oscAdapter = (cmd, args) => runCommand(cmd, args, { timeoutMs: 8_000 });
233
+ const instrumentsBaseline = new Set(await queryInstrumentsDocumentPaths(oscAdapter));
156
234
  const start = Date.now();
157
235
  while (Date.now() - start < timeoutMs) {
236
+ // Path A: directory watcher. Detects saves under watchDir.
158
237
  const current = snapshotTracesInDir(watchDir);
159
238
  const fresh = detectNewTraces(current, baseline);
160
- // Pick the first stable new trace (oldest mtime that is also stable).
161
239
  for (const candidate of fresh) {
162
240
  if (isStable(candidate, Date.now(), STABLE_FOR_MS)) {
163
- const elapsedSec = Math.round((Date.now() - start) / 1000);
164
- // Best-effort: chain into inspectTrace so the caller sees an
165
- // immediate summary. Failures here do not invalidate the
166
- // recording itself; we just omit the field.
167
- let inspection;
168
- try {
169
- inspection = await inspectTrace({ tracePath: candidate });
170
- }
171
- catch {
172
- // Inspection failure is non-fatal.
173
- }
174
- return {
175
- ok: true,
176
- tracePath: candidate,
177
- watchDir,
178
- instructions,
179
- elapsedSec,
180
- ...(inspection ? { inspection } : {}),
181
- diagnosis: inspection
182
- ? `Captured \`${candidate}\` after ${elapsedSec}s. ${inspection.schemas.length} schemas in the TOC.`
183
- : `Captured \`${candidate}\` after ${elapsedSec}s. Inspect failed; pass the path to inspectTrace manually.`,
184
- };
241
+ return await buildSuccessResult(candidate, watchDir, instructions, start,
242
+ /* savedOutsideWatchDir */ false);
185
243
  }
186
244
  }
245
+ // Path B (v1.17 B-01): Instruments AppleScript document query.
246
+ // Detects saves OUTSIDE watchDir that the directory watcher misses.
247
+ // Only treats as success when the new document path exists AND is
248
+ // stable for the same window the directory watcher uses.
249
+ const docs = await queryInstrumentsDocumentPaths(oscAdapter);
250
+ for (const docPath of docs) {
251
+ if (instrumentsBaseline.has(docPath))
252
+ continue;
253
+ const resolvedDoc = resolvePath(docPath);
254
+ if (!existsSync(resolvedDoc))
255
+ continue;
256
+ if (!isStable(resolvedDoc, Date.now(), STABLE_FOR_MS))
257
+ continue;
258
+ return await buildSuccessResult(resolvedDoc, watchDir, instructions, start,
259
+ /* savedOutsideWatchDir */ !resolvedDoc.startsWith(watchDir));
260
+ }
187
261
  await sleep(POLL_INTERVAL_MS);
188
262
  }
189
263
  const elapsedSec = Math.round((Date.now() - start) / 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"recordViaInstrumentsApp.js","sourceRoot":"","sources":["../../src/tools/recordViaInstrumentsApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordViaInstrumentsApp.js","sourceRoot":"","sources":["../../src/tools/recordViaInstrumentsApp.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,16 @@ export declare const verifyFixSchema: z.ZodObject<{
31
31
  before: z.ZodString;
32
32
  after: z.ZodString;
33
33
  expectedPatternId: z.ZodOptional<z.ZodString>;
34
- expectedAliveClasses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
34
+ expectedAliveClasses: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
35
+ pattern: z.ZodString;
36
+ mode: z.ZodDefault<z.ZodEnum<["exact", "substring", "regex"]>>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ pattern: string;
39
+ mode: "exact" | "substring" | "regex";
40
+ }, {
41
+ pattern: string;
42
+ mode?: "exact" | "substring" | "regex" | undefined;
43
+ }>]>, "many">>;
35
44
  disableDefaultWhitelist: z.ZodDefault<z.ZodBoolean>;
36
45
  verbosity: z.ZodDefault<z.ZodEnum<["compact", "normal", "full"]>>;
37
46
  }, "strip", z.ZodTypeAny, {
@@ -40,13 +49,19 @@ export declare const verifyFixSchema: z.ZodObject<{
40
49
  before: string;
41
50
  disableDefaultWhitelist: boolean;
42
51
  expectedPatternId?: string | undefined;
43
- expectedAliveClasses?: string[] | undefined;
52
+ expectedAliveClasses?: (string | {
53
+ pattern: string;
54
+ mode: "exact" | "substring" | "regex";
55
+ })[] | undefined;
44
56
  }, {
45
57
  after: string;
46
58
  before: string;
47
59
  verbosity?: "compact" | "normal" | "full" | undefined;
48
60
  expectedPatternId?: string | undefined;
49
- expectedAliveClasses?: string[] | undefined;
61
+ expectedAliveClasses?: (string | {
62
+ pattern: string;
63
+ mode?: "exact" | "substring" | "regex" | undefined;
64
+ })[] | undefined;
50
65
  disableDefaultWhitelist?: boolean | undefined;
51
66
  }>;
52
67
  export type VerifyFixInput = z.infer<typeof verifyFixSchema>;
@@ -59,9 +59,15 @@ export const verifyFixSchema = z.object({
59
59
  .optional()
60
60
  .describe("If provided, the verdict is gated on whether this specific patternId disappeared from `after`. Defaults to checking every classified pattern."),
61
61
  expectedAliveClasses: z
62
- .array(z.string().min(1))
62
+ .array(z.union([
63
+ z.string().min(1),
64
+ z.object({
65
+ pattern: z.string().min(1),
66
+ mode: z.enum(["exact", "substring", "regex"]).default("substring"),
67
+ }),
68
+ ]))
63
69
  .optional()
64
- .describe("v1.14+. Class names (substrings) that legitimately stay alive across the before/after snapshots. Singletons, framework registrars, persistent caches. When a class in this list appears in regressionClasses[], it is moved to expectedAlive[] and does not flip the verdict to FAIL. Merged with the curated default list (DebugSwift's ignoredViewControllerClassNames + ignoredViewClassNames + ignoredWindowClassNames) unless `disableDefaultWhitelist: true`."),
70
+ .describe("v1.14+. Class names that legitimately stay alive across the before/after snapshots. Singletons, framework registrars, persistent caches. When a class in this list appears in regressionClasses[], it is moved to expectedAlive[] and does not flip the verdict to FAIL.\n\nEach entry can be a plain string (treated as case-insensitive substring, the v1.14 default behavior) OR an object `{ pattern: string, mode?: \"exact\" | \"substring\" | \"regex\" }` (v1.17+). Modes:\n- `exact`: case-insensitive full-string equality. Use for system class names that are stable.\n- `substring`: case-insensitive substring match (the v1.14 default).\n- `regex`: JavaScript regex (anchors / flags as written in the pattern). Use for nuanced class-name shapes.\n\nMerged with the curated default list (DebugSwift's ignoredViewControllerClassNames + ignoredViewClassNames + ignoredWindowClassNames, all `mode: \"exact\"`) unless `disableDefaultWhitelist: true`."),
65
71
  disableDefaultWhitelist: z
66
72
  .boolean()
67
73
  .default(false)
@@ -245,45 +251,59 @@ const ACTIONABLE_DELTA_THRESHOLD = 10;
245
251
  * slice of the deltas, not just the top-25 outliers. The response is
246
252
  * capped further by callers if they pass through `formatMcpResponse`. */
247
253
  const ABANDONED_MEMORY_TOPN = 100;
248
- /**
249
- * v1.12 fallback path: when classified-cycle data is absent from BOTH
250
- * snapshots, the v1.11 verifyFix returned `overallVerdict: "PASS"` with
251
- * no patterns. Useless for the user. Now we chain into
252
- * `analyzeAbandonedMemory` and emit a verdict based on heap-wide class
253
- * deltas:
254
- *
255
- * - At least one actionableShrinkage entry with |delta| >= 10 AND
256
- * actionableGrowth empty (or below threshold): PASS with freedClasses.
257
- * - actionableGrowth non-empty AND actionableShrinkage below threshold:
258
- * FAIL with regressionClasses.
259
- * - Both non-empty above threshold: PARTIAL with both.
260
- * - Both empty / below threshold: PASS with empty freedClasses (clean
261
- * state, no measurable change).
262
- *
263
- * Returns null when even the abandoned-memory path can't run (paths
264
- * inaccessible, etc.); the caller falls back to the cycle-pattern result.
265
- */
254
+ function normalizeWhitelistEntry(entry, defaultMode = "substring") {
255
+ if (typeof entry === "string") {
256
+ return { pattern: entry, mode: defaultMode };
257
+ }
258
+ const mode = entry.mode ?? defaultMode;
259
+ const rule = { pattern: entry.pattern, mode };
260
+ if (mode === "regex") {
261
+ try {
262
+ rule.compiled = new RegExp(entry.pattern);
263
+ }
264
+ catch {
265
+ // Invalid regex: degrade to substring match silently. The user's
266
+ // intent is "filter this", and substring is the safest fallback.
267
+ rule.mode = "substring";
268
+ }
269
+ }
270
+ return rule;
271
+ }
266
272
  /**
267
273
  * Build the effective expected-alive whitelist by merging the curated
268
- * default list (unless disabled) with the user-supplied set. Returns a
269
- * lowercase Set for case-insensitive substring matching. v1.14.
274
+ * default list (unless disabled) with the user-supplied set. v1.14;
275
+ * v1.17 B-02 added per-entry match modes (exact / substring / regex).
270
276
  */
271
277
  function buildExpectedAliveSet(userSupplied, disableDefault) {
272
- const base = disableDefault ? [] : DEFAULT_EXPECTED_ALIVE_CLASSES;
273
- const all = [...base, ...(userSupplied ?? [])];
274
- return new Set(all.map((s) => s.toLowerCase()));
278
+ const base = disableDefault
279
+ ? []
280
+ : DEFAULT_EXPECTED_ALIVE_CLASSES.map((pattern) => normalizeWhitelistEntry({ pattern, mode: "exact" }, "exact"));
281
+ const supplied = (userSupplied ?? []).map((e) => normalizeWhitelistEntry(e));
282
+ return [...base, ...supplied];
275
283
  }
276
284
  /**
277
- * Returns true when the className matches any entry in the whitelist
278
- * (substring match, case-insensitive). v1.14.
285
+ * Returns true when the className matches any entry in the whitelist.
286
+ * Each entry uses its configured match mode. v1.14; v1.17 B-02.
279
287
  */
280
288
  function isExpectedAlive(className, whitelist) {
281
- if (whitelist.size === 0)
289
+ if (whitelist.length === 0)
282
290
  return false;
283
291
  const lc = className.toLowerCase();
284
- for (const w of whitelist)
285
- if (lc.includes(w))
286
- return true;
292
+ for (const rule of whitelist) {
293
+ if (rule.mode === "exact") {
294
+ if (lc === rule.pattern.toLowerCase())
295
+ return true;
296
+ }
297
+ else if (rule.mode === "regex") {
298
+ if (rule.compiled && rule.compiled.test(className))
299
+ return true;
300
+ }
301
+ else {
302
+ // substring (default)
303
+ if (lc.includes(rule.pattern.toLowerCase()))
304
+ return true;
305
+ }
306
+ }
287
307
  return false;
288
308
  }
289
309
  async function buildAbandonedMemoryFallback(beforePath, afterPath, expectedAliveWhitelist) {
@@ -1 +1 @@
1
- {"version":3,"file":"verifyFix.js","sourceRoot":"","sources":["../../src/tools/verifyFix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyFix.js","sourceRoot":"","sources":["../../src/tools/verifyFix.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "memorydetective",
3
- "version": "1.16.0",
3
+ "version": "1.17.1",
4
4
  "mcpName": "io.github.carloshpdoc/memorydetective",
5
- "description": "MCP server for iOS leak hunting and performance investigation. 41 tools across .memgraph and .trace files. v1.16 adds recordViaInstrumentsApp (macOS 26.x trace recording workaround that wraps Instruments.app GUI). v1.15 added analyzeMemoryFootprint (VM resident/dirty/jetsam), analyzeEnergyImpact (battery drain), analyzeLeakTimeline (leaks as time series), summarizeTrace network chain integration, replayScenario screenshot capture. 36-pattern retain-cycle classifier with Swift fixTemplate snippets, abandoned-memory diff for KVO/NotificationCenter/cache shapes that escape leaks(1), per-test CI gate (detectLeaksInXCTest + detectLeaksInXCUITest with self-contained HTML reports), main-thread violation classifier on analyzeHangs, single-call build+boot+launch for the macOS 26.x leaks --outputGraph regression, replayScenario + captureScenarioState verify-fix loop, compareTracesByPattern CI gate on hangs/hitches/launch regressions, SourceKit-LSP source bridging. macOS only (depends on leaks(1) and xctrace).",
5
+ "description": "MCP server for iOS leak hunting and performance investigation. 41 tools across .memgraph and .trace files. v1.17 reliability pass: strtobool env truthy parsing, verifyFix whitelist match modes (exact / substring / regex), Instruments.app AppleScript document query for traces saved outside watchDir, inspectTrace fault-tolerant fallback on wedged bundles, configurable countAlive noise filter. v1.16 added recordViaInstrumentsApp (macOS 26.x trace recording workaround). 36-pattern retain-cycle classifier with Swift fixTemplate snippets, abandoned-memory diff for KVO/NotificationCenter/cache shapes that escape leaks(1), per-test CI gate (detectLeaksInXCTest + detectLeaksInXCUITest with self-contained HTML reports), main-thread violation classifier on analyzeHangs, single-call build+boot+launch for the macOS 26.x leaks --outputGraph regression, replayScenario + captureScenarioState verify-fix loop, compareTracesByPattern CI gate on hangs/hitches/launch regressions, SourceKit-LSP source bridging. macOS only (depends on leaks(1) and xctrace).",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "memorydetective": "dist/index.js"