memorydetective 1.8.1 → 1.10.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/README.md +84 -15
  3. package/USAGE.md +27 -4
  4. package/dist/cli.js +106 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/index.js +42 -22
  7. package/dist/index.js.map +1 -1
  8. package/dist/parsers/referenceTree.d.ts +111 -0
  9. package/dist/parsers/referenceTree.js +328 -0
  10. package/dist/parsers/referenceTree.js.map +1 -0
  11. package/dist/runtime/axe.js +6 -1
  12. package/dist/runtime/axe.js.map +1 -1
  13. package/dist/runtime/exec.d.ts +30 -0
  14. package/dist/runtime/exec.js +30 -3
  15. package/dist/runtime/exec.js.map +1 -1
  16. package/dist/runtime/fixTemplates.js +67 -0
  17. package/dist/runtime/fixTemplates.js.map +1 -1
  18. package/dist/runtime/leakReport.d.ts +62 -0
  19. package/dist/runtime/leakReport.js +138 -0
  20. package/dist/runtime/leakReport.js.map +1 -0
  21. package/dist/runtime/platformCheck.d.ts +54 -0
  22. package/dist/runtime/platformCheck.js +94 -0
  23. package/dist/runtime/platformCheck.js.map +1 -0
  24. package/dist/runtime/redact.d.ts +66 -0
  25. package/dist/runtime/redact.js +146 -0
  26. package/dist/runtime/redact.js.map +1 -0
  27. package/dist/runtime/responseFormatter.d.ts +78 -0
  28. package/dist/runtime/responseFormatter.js +307 -0
  29. package/dist/runtime/responseFormatter.js.map +1 -0
  30. package/dist/runtime/securityFlags.d.ts +74 -0
  31. package/dist/runtime/securityFlags.js +90 -0
  32. package/dist/runtime/securityFlags.js.map +1 -0
  33. package/dist/runtime/staticAnalysisHints.js +14 -1
  34. package/dist/runtime/staticAnalysisHints.js.map +1 -1
  35. package/dist/templates/leak-report.html +39 -0
  36. package/dist/templates/templates/leak-report.html +39 -0
  37. package/dist/tools/analyzeAbandonedMemory.d.ts +162 -0
  38. package/dist/tools/analyzeAbandonedMemory.js +325 -0
  39. package/dist/tools/analyzeAbandonedMemory.js.map +1 -0
  40. package/dist/tools/analyzeAllocations.d.ts +11 -2
  41. package/dist/tools/analyzeAllocations.js +4 -0
  42. package/dist/tools/analyzeAllocations.js.map +1 -1
  43. package/dist/tools/analyzeAnimationHitches.d.ts +32 -2
  44. package/dist/tools/analyzeAnimationHitches.js +25 -4
  45. package/dist/tools/analyzeAnimationHitches.js.map +1 -1
  46. package/dist/tools/analyzeAppLaunch.d.ts +3 -0
  47. package/dist/tools/analyzeAppLaunch.js +2 -0
  48. package/dist/tools/analyzeAppLaunch.js.map +1 -1
  49. package/dist/tools/analyzeHangs.d.ts +78 -2
  50. package/dist/tools/analyzeHangs.js +117 -4
  51. package/dist/tools/analyzeHangs.js.map +1 -1
  52. package/dist/tools/analyzeMemgraph.d.ts +40 -1
  53. package/dist/tools/analyzeMemgraph.js +66 -2
  54. package/dist/tools/analyzeMemgraph.js.map +1 -1
  55. package/dist/tools/analyzeTimeProfile.d.ts +11 -1
  56. package/dist/tools/analyzeTimeProfile.js +5 -0
  57. package/dist/tools/analyzeTimeProfile.js.map +1 -1
  58. package/dist/tools/bootAndLaunchForLeakInvestigation.d.ts +18 -9
  59. package/dist/tools/bootAndLaunchForLeakInvestigation.js +27 -0
  60. package/dist/tools/bootAndLaunchForLeakInvestigation.js.map +1 -1
  61. package/dist/tools/captureMemgraph.d.ts +22 -4
  62. package/dist/tools/captureMemgraph.js +42 -9
  63. package/dist/tools/captureMemgraph.js.map +1 -1
  64. package/dist/tools/captureScenarioState.d.ts +12 -4
  65. package/dist/tools/captureScenarioState.js +4 -0
  66. package/dist/tools/captureScenarioState.js.map +1 -1
  67. package/dist/tools/classifyCycle.js +77 -0
  68. package/dist/tools/classifyCycle.js.map +1 -1
  69. package/dist/tools/cleanupTraces.d.ts +87 -0
  70. package/dist/tools/cleanupTraces.js +232 -0
  71. package/dist/tools/cleanupTraces.js.map +1 -0
  72. package/dist/tools/compareTracesByPattern.d.ts +2 -2
  73. package/dist/tools/detectLeaksInXCTest.d.ts +116 -0
  74. package/dist/tools/detectLeaksInXCTest.js +311 -0
  75. package/dist/tools/detectLeaksInXCTest.js.map +1 -0
  76. package/dist/tools/detectLeaksInXCUITest.d.ts +8 -3
  77. package/dist/tools/detectLeaksInXCUITest.js +30 -4
  78. package/dist/tools/detectLeaksInXCUITest.js.map +1 -1
  79. package/dist/tools/diffMemgraphs.d.ts +5 -2
  80. package/dist/tools/diffMemgraphs.js +2 -0
  81. package/dist/tools/diffMemgraphs.js.map +1 -1
  82. package/dist/tools/findCycles.d.ts +1 -1
  83. package/dist/tools/recordTimeProfile.d.ts +29 -9
  84. package/dist/tools/recordTimeProfile.js +70 -7
  85. package/dist/tools/recordTimeProfile.js.map +1 -1
  86. package/dist/tools/renderCycleGraph.d.ts +1 -1
  87. package/dist/tools/verifyFix.d.ts +2 -2
  88. package/dist/types.d.ts +24 -1
  89. package/package.json +3 -3
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Parser for `leaks <memgraph> --referenceTree --groupByType --noContent`.
3
+ *
4
+ * `leaks --referenceTree` walks the heap reachability graph and prints
5
+ * per-class instance counts plus total bytes. With `--groupByType`, instances
6
+ * of the same class are aggregated into a single entry; with `--noContent`,
7
+ * the inline ivar dumps are suppressed so the tree stays compact.
8
+ *
9
+ * Example input (excerpt from a real run on a notelet-like target):
10
+ *
11
+ * ```text
12
+ * + ! : 342 (28.8K) AVPlayerItem
13
+ * + ! : | 334 (28.7K) _playerItem --> AVPlayerItemInternal
14
+ * + ! : 290 (19.1K) AVPlayerPlaybackCoordinator
15
+ * + ! 1 (48 bytes) __strong _object --> NSKeyValueObservance
16
+ * + ! 15 (720 bytes) __strong _object --> NSKeyValueObservance
17
+ * + ! 8 (384 bytes) NSKeyValueObservance
18
+ * + ! 9 (400 bytes) NSKeyValueObservationInfo
19
+ * ```
20
+ *
21
+ * Each data line has the shape:
22
+ *
23
+ * <tree indent> <count> (<size>) <name> [--> <className>]
24
+ *
25
+ * - When `--> ClassName` is present, the class name is the part AFTER the
26
+ * arrow (the value's type). The text before the arrow is the property /
27
+ * ivar name pointing at it.
28
+ * - When no arrow is present, the trailing token IS the class name.
29
+ *
30
+ * memorydetective's abandoned-memory surface aggregates by class name across
31
+ * the entire tree, summing counts and bytes, and returns the top N by
32
+ * instance count. The use case is "show me classes that are alive in the
33
+ * heap that the agent should suspect", which is orthogonal to leak count.
34
+ */
35
+ const LINE_RE =
36
+ // Tree indent prefix is arbitrary, just match anything up to a sequence of digits at the start of the value column.
37
+ // Capture: 1=count, 2=size literal (e.g. "832 bytes", "28.8K", "1.5M")
38
+ // Then the trailing label, optionally containing "-->".
39
+ /(?:^|\s)(\d+)\s+\(([^)]+)\)\s+(.+?)\s*$/;
40
+ const KILO = 1024;
41
+ /**
42
+ * Pure: parse a size literal from leaks output like "832 bytes", "28.8K", "1.5M".
43
+ * Returns the value in BYTES. Unrecognized formats return 0 (parser is
44
+ * conservative; the aggregation that consumes this still produces a usable
45
+ * count even if the size is missing).
46
+ */
47
+ export function parseSizeBytes(raw) {
48
+ const trimmed = raw.trim();
49
+ const m = /^([0-9]+(?:\.[0-9]+)?)\s*(bytes?|K|M|G)?$/.exec(trimmed);
50
+ if (!m)
51
+ return 0;
52
+ const value = Number.parseFloat(m[1]);
53
+ if (!Number.isFinite(value))
54
+ return 0;
55
+ const unit = (m[2] ?? "bytes").toLowerCase();
56
+ switch (unit) {
57
+ case "byte":
58
+ case "bytes":
59
+ return Math.round(value);
60
+ case "k":
61
+ return Math.round(value * KILO);
62
+ case "m":
63
+ return Math.round(value * KILO * KILO);
64
+ case "g":
65
+ return Math.round(value * KILO * KILO * KILO);
66
+ default:
67
+ return 0;
68
+ }
69
+ }
70
+ /**
71
+ * Pure: extract the class name from a leaks reference-tree line value.
72
+ *
73
+ * - "AVPlayerItem" -> "AVPlayerItem"
74
+ * - "_playerItem --> AVPlayerItemInternal" -> "AVPlayerItemInternal"
75
+ * - "__strong _object --> NSKeyValueObservance" -> "NSKeyValueObservance"
76
+ * - "<CFDictionary 0x6000029c4840> [64]" -> "CFDictionary"
77
+ * - "<NSMutableDictionary 0x600003ccf5c0> [32]" -> "NSMutableDictionary"
78
+ * - "_object --> <NSObject 0x14f100> [16]" -> "NSObject"
79
+ * - "" -> null (caller skips)
80
+ *
81
+ * The `<ClassName 0xADDR> [size]` form is what `leaks --referenceTree` emits
82
+ * for arrow-targeted instances (e.g. `_object --> <NSObject 0xADDR>`).
83
+ * Without normalization, each address becomes its own aggregation key and
84
+ * the same logical class shows up as N separate rows in the top-N list.
85
+ * Normalizing to the base class name (the token inside the `<...>`) folds
86
+ * those rows back together. This is the v1.10 fix for the gap where
87
+ * AVPlayerItem-style classes appeared aggregated at the root level but
88
+ * NSMutableDictionary-style classes appeared per-address in arrow targets.
89
+ *
90
+ * Excludes c-runtime allocations like `malloc in FigSimpleMutex...` AND the
91
+ * bracketed form `<malloc in ...>` / `<calloc in ...>` / `<realloc in ...>`
92
+ * that leaks emits alongside Obj-C/Swift classes; those are not actionable
93
+ * for abandoned-memory triage and would inflate the top-N list with
94
+ * low-signal entries.
95
+ */
96
+ export function extractClassName(rawLabel) {
97
+ const label = rawLabel.trim();
98
+ if (label.length === 0)
99
+ return null;
100
+ // Resolve `--> Target` arrows first: the class name is the value's type,
101
+ // not the property name that points at it. Then run the allocator + size
102
+ // filters against the resolved candidate so entries like
103
+ // `unaligned --> calloc in quic_stream_allocate` are correctly dropped.
104
+ const arrowIdx = label.indexOf("-->");
105
+ let candidate = arrowIdx >= 0 ? label.slice(arrowIdx + 3).trim() : label;
106
+ if (candidate.length === 0)
107
+ return null;
108
+ // Raw allocator entries (`malloc in ...`, `calloc in ...`) are dropped.
109
+ // Same for the bracketed form: `<malloc in ...>` / `<calloc in ...>`.
110
+ if (/^(malloc|calloc|realloc)\b/i.test(candidate))
111
+ return null;
112
+ if (/^<\s*(malloc|calloc|realloc)\b/i.test(candidate))
113
+ return null;
114
+ // Normalize `<ClassName 0xADDR> [size]` and `<ClassName 0xADDR>` to
115
+ // `ClassName`. The base-class name is the leading token inside `<...>`,
116
+ // before the first space (which separates it from the address).
117
+ const bracketMatch = /^<\s*([^\s<>]+)\s+0x[0-9a-fA-F]+\s*>(?:\s*\[[^\]]+\])?\s*$/.exec(candidate);
118
+ if (bracketMatch) {
119
+ candidate = bracketMatch[1];
120
+ }
121
+ return candidate;
122
+ }
123
+ /**
124
+ * Pure: returns true when the class name is framework-noise that crowds out
125
+ * actionable classes in the abandoned-memory top-N list. Used by the
126
+ * `analyzeMemgraph` and `analyzeAbandonedMemory` tools to populate a
127
+ * `*Suspects[]` / `actionable*[]` field alongside the raw `*Top[]` field.
128
+ *
129
+ * The list catalogs:
130
+ * - Foundation collection types (`NSMutableDictionary`, `CFString`, etc.)
131
+ * that grow with normal app activity and are rarely the leak itself
132
+ * - ObjC runtime / metadata classes (`Class.data`, `OBJC_METACLASS_$...`)
133
+ * - Apple system frameworks' static data sections (`__DATA __bss`,
134
+ * `__DATA __data`, `__DATA __common`)
135
+ * - `<<TOTAL>>` summary row
136
+ * - "Stack of thread N" and similar meta-rows
137
+ * - Non-object zone descriptors and memory-zone metadata
138
+ *
139
+ * Deliberately NOT noise: AV*, NSKeyValueObserv*, SwiftUI app-level types,
140
+ * Combine, RxSwift, app-named classes, anonymous closures (`<closure ...>`).
141
+ *
142
+ * The default behavior of `analyzeMemgraph` continues to return the raw
143
+ * `abandonedMemoryTop[]` so callers who need framework-collection counts
144
+ * (e.g. cache-bloat investigations) still see them. The actionable field
145
+ * is parallel data, not a replacement.
146
+ */
147
+ export function isFrameworkNoise(className) {
148
+ // Summary / meta-rows
149
+ if (className === "<<TOTAL>>" || className === "<< TOTAL >>")
150
+ return true;
151
+ if (/^Stack of thread\b/i.test(className))
152
+ return true;
153
+ if (/^non-object\b/i.test(className))
154
+ return true;
155
+ // Memory zones / VM regions
156
+ if (/^VM:\s/.test(className))
157
+ return true;
158
+ if (/(DefaultMallocZone|QuartzCore_0x|MALLOC_)/.test(className))
159
+ return true;
160
+ // ObjC runtime + metadata
161
+ if (/^Class\.(data|methodCache)/.test(className))
162
+ return true;
163
+ if (/^OBJC_METACLASS_/.test(className))
164
+ return true;
165
+ if (/^OBJC_CLASS_/.test(className))
166
+ return true;
167
+ // Apple framework static-data sections
168
+ if (/__DATA\s+__(bss|data|common|objc_data|objc_const)/.test(className))
169
+ return true;
170
+ if (/__DATA_DIRTY\b/.test(className))
171
+ return true;
172
+ if (/dylib\s+__DATA/.test(className))
173
+ return true;
174
+ // Block infrastructure (closures, GCD work items)
175
+ if (className === "__NSMallocBlock__")
176
+ return true;
177
+ if (className === "__NSConcreteMallocBlock")
178
+ return true;
179
+ if (className === "__NSStackBlock__")
180
+ return true;
181
+ if (className === "__NSGlobalBlock__")
182
+ return true;
183
+ // Swift runtime metadata
184
+ if (className === "Swift Metadata")
185
+ return true;
186
+ if (/^Swift\.OpaqueExistentialContainer\b/.test(className))
187
+ return true;
188
+ // GCD infrastructure (queue + group + semaphore types accumulate naturally).
189
+ // No word-boundary because `dispatch_queue_t` / `dispatch_semaphore_t`
190
+ // continue with `_t` after the type name (no `\b` between word chars).
191
+ if (/^dispatch_(queue|group|semaphore|source|io)(_t)?\b/.test(className))
192
+ return true;
193
+ // C++ stdlib bookkeeping
194
+ if (/^std::__shared_ptr_emplace</.test(className))
195
+ return true;
196
+ if (/^std::__1::shared_ptr</.test(className))
197
+ return true;
198
+ // Foundation key/value/map collections (scale with app activity, rarely
199
+ // the actionable leak site)
200
+ if (/^NSMapTable\b/.test(className))
201
+ return true;
202
+ if (/^NSHashTable\b/.test(className))
203
+ return true;
204
+ // Bundle metadata (loads + caches grow naturally with app activity)
205
+ if (className === "NSBundle" || className === "CFBundle")
206
+ return true;
207
+ // Network.framework / XPC / BackBoardServices internal types
208
+ if (/^OS_(nw|xpc|os_lock|object)_/.test(className))
209
+ return true;
210
+ if (/^NWConcrete_/.test(className))
211
+ return true;
212
+ if (/^nw_/.test(className))
213
+ return true;
214
+ if (/^BSObjC/.test(className))
215
+ return true;
216
+ // Font cache infrastructure (CoreText)
217
+ if (className === "UICTFont" || className === "TTenuousComponentFont")
218
+ return true;
219
+ // Block/closure infrastructure that leaks(1) labels generically
220
+ if (className === "Closure context (unknown layout)")
221
+ return true;
222
+ // Array storage (Foundation/CoreFoundation backing storage)
223
+ if (/^NSArray\._list/.test(className))
224
+ return true;
225
+ // SwiftUI internal anonymized buffers (private namespaces ending in dollar-tagged module ids).
226
+ // Real app-level SwiftUI types use module-qualified names like `MyApp.MyView`;
227
+ // these anonymized SwiftUI internals scale with view-graph activity.
228
+ if (/^SwiftUI\.\(.+ in \$[0-9a-f]+\)</.test(className))
229
+ return true;
230
+ // Foundation collection types that grow with normal app activity
231
+ const noiseCollections = new Set([
232
+ "NSMutableDictionary",
233
+ "NSMutableDictionary (Storage)",
234
+ "NSDictionary",
235
+ "NSDictionary (Storage)",
236
+ "NSMutableArray",
237
+ "NSMutableArray (Storage)",
238
+ "NSArray",
239
+ "NSArray (Storage)",
240
+ "NSMutableSet",
241
+ "NSSet",
242
+ "CFString",
243
+ "CFString (Storage)",
244
+ "CFDictionary",
245
+ "CFDictionary (Storage)",
246
+ "CFDictionary (Value Storage)",
247
+ "CFArray",
248
+ "CFSet",
249
+ "CFSet (Value Storage)",
250
+ "CFData",
251
+ "NSData",
252
+ "NSConcreteMutableData",
253
+ "__NSCFString",
254
+ "__NSCFData",
255
+ "__NSCFDictionary",
256
+ "__NSCFArray",
257
+ "NSConcreteAttributedString",
258
+ ]);
259
+ if (noiseCollections.has(className))
260
+ return true;
261
+ // Closure contexts and Swift internal storage that scale with app activity
262
+ if (/^Swift\._ContiguousArrayStorage</.test(className))
263
+ return true;
264
+ if (/^Swift\._SwiftDeferredNSDictionary</.test(className))
265
+ return true;
266
+ // Anonymous bracketed instances that still leaked through (extractClassName
267
+ // missed them, e.g. closures with no class name).
268
+ if (/^<[^>]*0x[0-9a-fA-F]+>/.test(className))
269
+ return true;
270
+ // Foundation observer registry internals (these grow with KVO activity but
271
+ // are not the actionable site; the user's class is what to fix).
272
+ if (className === "CFXNotificationRegistrar")
273
+ return true;
274
+ if (/^_realloc in/.test(className))
275
+ return true;
276
+ return false;
277
+ }
278
+ /**
279
+ * Pure: parse `leaks --referenceTree --groupByType --noContent` stdout,
280
+ * aggregate instance counts + bytes by class name, return the top N by
281
+ * instance count.
282
+ *
283
+ * Returned entries are sorted by `instanceCount` desc, ties broken by
284
+ * `totalBytes` desc, ties broken by alphabetic class name for stability.
285
+ *
286
+ * The caller passes `topN` so very large heaps do not produce massive
287
+ * responses; the default in the tool is 20 but the parser does not impose
288
+ * a default to keep the function pure.
289
+ */
290
+ export function parseReferenceTreeText(text, topN) {
291
+ if (topN <= 0)
292
+ return [];
293
+ const counts = new Map();
294
+ for (const line of text.split(/\r?\n/)) {
295
+ const m = LINE_RE.exec(line);
296
+ if (!m)
297
+ continue;
298
+ const count = Number.parseInt(m[1], 10);
299
+ if (!Number.isFinite(count) || count <= 0)
300
+ continue;
301
+ const sizeBytes = parseSizeBytes(m[2]);
302
+ const className = extractClassName(m[3]);
303
+ if (className == null)
304
+ continue;
305
+ const existing = counts.get(className);
306
+ if (existing) {
307
+ existing.instanceCount += count;
308
+ existing.totalBytes += sizeBytes;
309
+ }
310
+ else {
311
+ counts.set(className, { instanceCount: count, totalBytes: sizeBytes });
312
+ }
313
+ }
314
+ const entries = Array.from(counts, ([className, v]) => ({
315
+ className,
316
+ instanceCount: v.instanceCount,
317
+ totalBytes: v.totalBytes,
318
+ }));
319
+ entries.sort((a, b) => {
320
+ if (b.instanceCount !== a.instanceCount)
321
+ return b.instanceCount - a.instanceCount;
322
+ if (b.totalBytes !== a.totalBytes)
323
+ return b.totalBytes - a.totalBytes;
324
+ return a.className.localeCompare(b.className);
325
+ });
326
+ return entries.slice(0, topN);
327
+ }
328
+ //# sourceMappingURL=referenceTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referenceTree.js","sourceRoot":"","sources":["../../src/parsers/referenceTree.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,12 @@ function normalizeAxeNode(raw) {
84
84
  ]);
85
85
  if (labelKey != null)
86
86
  out.label = labelKey;
87
- const idKey = pickFirstString(obj, ["AXIdentifier", "identifier", "id"]);
87
+ const idKey = pickFirstString(obj, [
88
+ "AXIdentifier",
89
+ "AXUniqueId",
90
+ "identifier",
91
+ "id",
92
+ ]);
88
93
  if (idKey != null)
89
94
  out.identifier = idKey;
90
95
  const roleKey = pickFirstString(obj, ["AXRole", "role", "type"]);
@@ -1 +1 @@
1
- {"version":3,"file":"axe.js","sourceRoot":"","sources":["../../src/runtime/axe.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAUvC,MAAM,gBAAgB,GACpB,yMAAyM,CAAC;AAE5M;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACzC,CAAC;AAmBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QACtE,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,iBAAiB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CACjG,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,6EAA6E;YAC3E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CACvB,CAAC;IACJ,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,6CAA8C,GAAa,CAAC,OAAO,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,uCAAuC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,GAAG,GAAc,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE;QACpC,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IACH,IAAI,QAAQ,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,IAAI,IAAI;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,MAAM,WAAW,GACd,GAAG,CAAC,QAAoB;QACxB,GAAG,CAAC,UAAsB;QAC1B,GAAG,CAAC,QAAoB,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CACtB,GAA4B,EAC5B,IAAc;IAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,GAA4B;IAE5B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;IACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IACD,+CAA+C;IAC/C,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACrD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,GAA4B,EAC5B,IAAc;IAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CACnB,sHAAsH,CACvH,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO;QACL,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,KAAa;IAEb,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC;IACrF,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,SAAS,CACd,IAAI,EACJ,CAAC,EAAE,EAAE,EAAE,CACL,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,EAAE,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,IAAe,EACf,SAAqC;IAErC,IAAI,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACxC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAOD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,MAAiB;IACvD,IAAI,MAAgC,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,iEAAiE,CAC7G,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,KAAK,EACL;QACE,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChB,IAAI;QACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACjB,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,YAAY,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,kBAAkB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,IAAY,EACZ,IAA8B,EAC9B,EAA4B,EAC5B,UAAU,GAAG,GAAG;IAEhB,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,KAAK,EACL;QACE,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;QACrB,MAAM;QACN,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;QACjB,YAAY;QACZ,MAAM,CAAC,UAAU,CAAC;KACnB,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAC5E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAY;IACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EACxC,EAAE,SAAS,EAAE,MAAM,EAAE,CACtB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAC3E,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"axe.js","sourceRoot":"","sources":["../../src/runtime/axe.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,15 @@ export interface CommandResult {
2
2
  stdout: string;
3
3
  stderr: string;
4
4
  code: number;
5
+ /**
6
+ * Present and `true` when the command was terminated by the
7
+ * `gracefulKillAfterMs` timeout-escalation path. Tools that wrote
8
+ * partial output before the timeout (e.g. `xctrace record` which
9
+ * incrementally flushes the `.trace` bundle) can return that output
10
+ * to the caller alongside this flag, rather than the caller having
11
+ * to choose between "throw on timeout" and "no timeout protection".
12
+ */
13
+ timedOut?: boolean;
5
14
  }
6
15
  export interface RunCommandOptions {
7
16
  /** Working directory to run the command in. */
@@ -15,6 +24,27 @@ export interface RunCommandOptions {
15
24
  * unchanged; pass `undefined` (or omit) for the same default.
16
25
  */
17
26
  env?: Record<string, string>;
27
+ /**
28
+ * Signal to send when the command exceeds `timeoutMs`. Defaults to
29
+ * `SIGTERM`. Pass `SIGINT` for processes that flush partial output on
30
+ * graceful interruption (e.g. xctrace writes the `.trace` bundle
31
+ * incrementally and needs SIGINT to finalize template metadata; SIGTERM
32
+ * leaves a corrupt trace that fails on export).
33
+ */
34
+ timeoutSignal?: NodeJS.Signals;
35
+ /**
36
+ * When `> 0`, switches the timeout path from "kill + reject" to
37
+ * "graceful kill + resolve with partial output". On timeout: send
38
+ * `timeoutSignal`, wait this many ms for the child to exit, then
39
+ * escalate to SIGKILL if still alive. The promise resolves with the
40
+ * partial stdout/stderr + `timedOut: true` on the response, instead
41
+ * of rejecting with a timeout error.
42
+ *
43
+ * Use when partial output is meaningful (xctrace traces, long-running
44
+ * recordings, etc.). Default `0` preserves the historical
45
+ * "reject-on-timeout" behavior for all existing callers.
46
+ */
47
+ gracefulKillAfterMs?: number;
18
48
  }
19
49
  /**
20
50
  * Run a command and collect stdout/stderr. Does not throw on non-zero exit code,
@@ -17,10 +17,28 @@ export function runCommand(cmd, args, opts = {}) {
17
17
  let stderr = "";
18
18
  let killedByTimeout = false;
19
19
  let timer;
20
+ let escalationTimer;
21
+ const timeoutSignal = opts.timeoutSignal ?? "SIGTERM";
22
+ const graceful = opts.gracefulKillAfterMs != null && opts.gracefulKillAfterMs > 0;
20
23
  if (opts.timeoutMs && opts.timeoutMs > 0) {
21
24
  timer = setTimeout(() => {
22
25
  killedByTimeout = true;
23
- child.kill("SIGTERM");
26
+ child.kill(timeoutSignal);
27
+ if (graceful) {
28
+ // SIGKILL escalation: if the child does not exit cleanly within
29
+ // the grace window after the soft signal, force it down so the
30
+ // promise still settles. SIGKILL is irrecoverable but guarantees
31
+ // termination even if the process is wedged on a kernel call.
32
+ escalationTimer = setTimeout(() => {
33
+ try {
34
+ child.kill("SIGKILL");
35
+ }
36
+ catch {
37
+ // Child may already be gone between the check and the kill;
38
+ // ignore. The `close` handler will still fire.
39
+ }
40
+ }, opts.gracefulKillAfterMs);
41
+ }
24
42
  }, opts.timeoutMs);
25
43
  }
26
44
  child.stdout.on("data", (chunk) => {
@@ -32,16 +50,25 @@ export function runCommand(cmd, args, opts = {}) {
32
50
  child.on("error", (err) => {
33
51
  if (timer)
34
52
  clearTimeout(timer);
53
+ if (escalationTimer)
54
+ clearTimeout(escalationTimer);
35
55
  reject(err);
36
56
  });
37
57
  child.on("close", (code) => {
38
58
  if (timer)
39
59
  clearTimeout(timer);
40
- if (killedByTimeout) {
60
+ if (escalationTimer)
61
+ clearTimeout(escalationTimer);
62
+ if (killedByTimeout && !graceful) {
41
63
  reject(new Error(`Command timed out after ${opts.timeoutMs}ms: ${cmd} ${args.join(" ")}`));
42
64
  return;
43
65
  }
44
- resolve({ stdout, stderr, code: code ?? -1 });
66
+ resolve({
67
+ stdout,
68
+ stderr,
69
+ code: code ?? -1,
70
+ ...(killedByTimeout ? { timedOut: true } : {}),
71
+ });
45
72
  });
46
73
  });
47
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/runtime/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAsB3C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,GAAW,EACX,IAAc,EACd,OAA0B,EAAE;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;YAClB,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACjC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAiC,CAAC;QAEtC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,eAAe,GAAG,IAAI,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CACJ,IAAI,KAAK,CACP,2BAA2B,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACxE,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/runtime/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAoD3C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,GAAW,EACX,IAAc,EACd,OAA0B,EAAE;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;YAClB,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACjC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAiC,CAAC;QACtC,IAAI,eAA2C,CAAC;QAEhD,MAAM,aAAa,GAAmB,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC;QACtE,MAAM,QAAQ,GACZ,IAAI,CAAC,mBAAmB,IAAI,IAAI,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,eAAe,GAAG,IAAI,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1B,IAAI,QAAQ,EAAE,CAAC;oBACb,gEAAgE;oBAChE,+DAA+D;oBAC/D,iEAAiE;oBACjE,8DAA8D;oBAC9D,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;wBAChC,IAAI,CAAC;4BACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxB,CAAC;wBAAC,MAAM,CAAC;4BACP,4DAA4D;4BAC5D,+CAA+C;wBACjD,CAAC;oBACH,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,eAAe;gBAAE,YAAY,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,eAAe;gBAAE,YAAY,CAAC,eAAe,CAAC,CAAC;YACnD,IAAI,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,CACJ,IAAI,KAAK,CACP,2BAA2B,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACxE,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;gBAChB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -720,6 +720,73 @@ class WebBridge: NSObject, WKScriptMessageHandler {
720
720
  // ─────────────────────────────────────────────────────────────────────────
721
721
  // v1.7 catalog
722
722
  // ─────────────────────────────────────────────────────────────────────────
723
+ // ─────────────────────────────────────────────────────────────────────────
724
+ // v1.9 catalog (DebugSwift borrow)
725
+ // ─────────────────────────────────────────────────────────────────────────
726
+ "uikit.viewcontroller-retained-after-pop": {
727
+ before: `final class FeedViewController: UIViewController {
728
+ private var loader: FeedDataLoader?
729
+
730
+ override func viewDidLoad() {
731
+ super.viewDidLoad()
732
+ loader = FeedDataLoader()
733
+ loader?.onUpdate = { items in
734
+ self.tableView.reload(with: items) // strong capture -> VC outlives navigation
735
+ }
736
+ }
737
+ }`,
738
+ after: `final class FeedViewController: UIViewController {
739
+ private var loader: FeedDataLoader?
740
+
741
+ override func viewDidLoad() {
742
+ super.viewDidLoad()
743
+ loader = FeedDataLoader()
744
+ loader?.onUpdate = { [weak self] items in
745
+ self?.tableView.reload(with: items)
746
+ }
747
+ }
748
+
749
+ deinit {
750
+ loader?.onUpdate = nil // belt and suspenders for KVO/NotificationCenter wiring
751
+ }
752
+ }`,
753
+ notes: "Symptom: VC is alive in the heap but no _parentViewController / _presentingViewController edge appears in the cycle. Audit closures captured in viewDidLoad, Task { } blocks, KVO observations, and delegate properties without weak.",
754
+ },
755
+ "swiftui.observable-write-on-every-render": {
756
+ before: `@Observable
757
+ final class FeedModel {
758
+ var items: [Item] = []
759
+ var lastUpdated: Date = .now
760
+ }
761
+
762
+ struct FeedView: View {
763
+ @State private var model = FeedModel()
764
+ var body: some View {
765
+ List(model.items) { row in Text(row.title) }
766
+ .onAppear {
767
+ model.lastUpdated = .now // ⚠️ mutating inside body chain triggers re-render forever
768
+ }
769
+ }
770
+ }`,
771
+ after: `@Observable
772
+ final class FeedModel {
773
+ var items: [Item] = []
774
+ var lastUpdated: Date = .now
775
+
776
+ var lastUpdatedLabel: String { lastUpdated.formatted(.dateTime) } // derived, no mutation
777
+ }
778
+
779
+ struct FeedView: View {
780
+ @State private var model = FeedModel()
781
+ var body: some View {
782
+ List(model.items) { row in Text(row.title) }
783
+ .task(id: model.items) { // event-driven, fires once per items change
784
+ model.lastUpdated = .now
785
+ }
786
+ }
787
+ }`,
788
+ notes: "Move the mutation out of body. Use a computed property for derived values, or attach the side effect to .onChange / .task(id:) / .onAppear so it fires in response to an event, not on every render.",
789
+ },
723
790
  "swiftdata.modelcontext-actor-cycle": {
724
791
  before: `actor DataLayer {
725
792
  let context: ModelContext
@@ -1 +1 @@
1
- {"version":3,"file":"fixTemplates.js","sourceRoot":"","sources":["../../src/runtime/fixTemplates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH;;;GAGG;AACH,MAAM,SAAS,GAAgC;IAC7C,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E,8BAA8B,EAAE;QAC9B,OAAO,EAAE,sDAAsD;QAC/D,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;;EAMT;QACE,KAAK,EACH,wLAAwL;KAC3L;IACD,mCAAmC,EAAE;QACnC,OAAO,EACL,gHAAgH;QAClH,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;EAKT;KACC;IACD,2BAA2B,EAAE;QAC3B,MAAM,EAAE;;;;;EAKV;QACE,KAAK,EAAE;;;;;EAKT;QACE,KAAK,EACH,8EAA8E;KACjF;IACD,kCAAkC,EAAE;QAClC,OAAO,EACL,+EAA+E;QACjF,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;EAOT;KACC;IACD,4CAA4C,EAAE;QAC5C,OAAO,EACL,gGAAgG;QAClG,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IACD,iCAAiC,EAAE;QACjC,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;;;EAOT;KACC;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;;;;;;;EAWT;KACC;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;;;EAYT;KACC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,+BAA+B,EAAE;QAC/B,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;;EAST;KACC;IACD,2BAA2B,EAAE;QAC3B,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;;;;;;;;EAeT;QACE,KAAK,EAAE,mEAAmE;KAC3E;IACD,uBAAuB,EAAE;QACvB,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;;;;EAQT;QACE,KAAK,EACH,0EAA0E;KAC7E;IACD,iCAAiC,EAAE;QACjC,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IACD,4BAA4B,EAAE;QAC5B,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;;EAST;KACC;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;;;;EAaT;KACC;IACD,yCAAyC,EAAE;QACzC,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;;;;;;EAUT;KACC;IACD,2BAA2B,EAAE;QAC3B,MAAM,EAAE;;;EAGV;QACE,KAAK,EAAE;;;EAGT;KACC;IACD,kCAAkC,EAAE;QAClC,MAAM,EAAE;;EAEV;QACE,KAAK,EAAE;;EAET;QACE,KAAK,EACH,wHAAwH;KAC3H;IACD,wBAAwB,EAAE;QACxB,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;EAKT;KACC;IACD,iCAAiC,EAAE;QACjC,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IACD,2CAA2C,EAAE;QAC3C,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;EAUT;KACC;IACD,qCAAqC,EAAE;QACrC,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;;;EAYT;QACE,KAAK,EACH,iHAAiH;KACpH;IACD,0CAA0C,EAAE;QAC1C,MAAM,EAAE;;;;;EAKV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IACD,+BAA+B,EAAE;QAC/B,MAAM,EAAE;;;;;;EAMV;QACE,KAAK,EAAE;;;;;;EAMT;KACC;IACD,kCAAkC,EAAE;QAClC,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IAED,4EAA4E;IAC5E,0BAA0B;IAC1B,4EAA4E;IAE5E,yCAAyC,EAAE;QACzC,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;;;;;;EAUT;QACE,KAAK,EACH,kFAAkF;KACrF;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;EAKV;QACE,KAAK,EAAE;;;;;;;;;;;;EAYT;KACC;IACD,4CAA4C,EAAE;QAC5C,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;;;EAUT;KACC;IAED,4EAA4E;IAC5E,eAAe;IACf,4EAA4E;IAE5E,qCAAqC,EAAE;QACrC,MAAM,EAAE;;;;;;;;;;;;;;;;;;EAkBV;QACE,KAAK,EAAE;;;;;;;;;;;;;;;;;;EAkBT;KACC;IACD,4CAA4C,EAAE;QAC5C,MAAM,EAAE;;;EAGV;QACE,KAAK,EAAE;;;;;;;;;;;;;;EAcT;KACC;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;;EAWT;QACE,KAAK,EACH,uIAAuI;KAC1I;IACD,oDAAoD,EAAE;QACpD,MAAM,EAAE;;;;;;;;;;EAUV;QACE,KAAK,EAAE;;;;;;;;;;;EAWT;KACC;IACD,0CAA0C,EAAE;QAC1C,MAAM,EAAE;;;;;;;;EAQV;QACE,KAAK,EAAE;;;;;;;;EAQT;KACC;IACD,sCAAsC,EAAE;QACtC,MAAM,EAAE;;;;;;;;;EASV;QACE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;EAoBT;QACE,KAAK,EACH,oIAAoI;KACvI;IAED,4EAA4E;IAC5E,eAAe;IACf,4EAA4E;IAE5E,oCAAoC,EAAE;QACpC,MAAM,EAAE;;;;;;;EAOV;QACE,KAAK,EAAE;;;;;;;;;;;;;EAaT;QACE,KAAK,EACH,uJAAuJ;KAC1J;CACF,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,uBAAuB;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"fixTemplates.js","sourceRoot":"","sources":["../../src/runtime/fixTemplates.ts"],"names":[],"mappings":"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"}