memorydetective 1.6.0 → 1.7.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixTemplates.js","sourceRoot":"","sources":["../../src/runtime/fixTemplates.ts"],"names":[],"mappings":"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"}
@@ -197,6 +197,14 @@ const HINTS = {
197
197
  url: null,
198
198
  explanation: "No static rule. The 3-link cycle requires a class to both own a `WKWebView` AND conform to `WKScriptMessageHandler` — detectable at runtime via the memgraph but not via SwiftLint conformance analysis.",
199
199
  },
200
+ // ─────────────────────────────────────────────────────────────────────────
201
+ // v1.7 catalog
202
+ // ─────────────────────────────────────────────────────────────────────────
203
+ "swiftdata.modelcontext-actor-cycle": {
204
+ rule: null,
205
+ url: "https://developer.apple.com/forums/thread/748042",
206
+ explanation: "No static rule. The cycle is between Apple-provided types (`Actor` / `DefaultSerialModelExecutor` / `ModelContext`) — SwiftLint can't reason about Apple-framework retain semantics. Apple fixed the framework-level shape in iOS 18 beta 1 (FB13844786). Until your minimum target is iOS 18+, the user-code shape persists.",
207
+ },
200
208
  };
201
209
  /** Returns the static-analysis hint for a given pattern, or null if unknown. */
202
210
  export function getStaticAnalysisHint(patternId) {
@@ -1 +1 @@
1
- {"version":3,"file":"staticAnalysisHints.js","sourceRoot":"","sources":["../../src/runtime/staticAnalysisHints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staticAnalysisHints.js","sourceRoot":"","sources":["../../src/runtime/staticAnalysisHints.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { type StaticAnalysisHint } from "../runtime/staticAnalysisHints.js";
3
+ import { type FixTemplate } from "../runtime/fixTemplates.js";
3
4
  import type { CycleNode, LeaksReport, NextCallSuggestion } from "../types.js";
4
5
  export declare const classifyCycleSchema: z.ZodObject<{
5
6
  path: z.ZodString;
@@ -29,6 +30,12 @@ export interface PatternMatch {
29
30
  * rule exists. Populated for every catalog pattern.
30
31
  */
31
32
  staticAnalysisHint?: StaticAnalysisHint;
33
+ /**
34
+ * Optional Swift code template showing typical before/after for the fix.
35
+ * Populated for every catalog pattern. The agent adapts the snippet to
36
+ * the user's actual type/method names via the SourceKit-LSP tools.
37
+ */
38
+ fixTemplate?: FixTemplate;
32
39
  }
33
40
  export interface CycleClassification {
34
41
  rootClass: string;
@@ -3,6 +3,7 @@ import { runLeaksAndParse } from "../runtime/leaks.js";
3
3
  import { rootCyclesOnly, walkCycles } from "../parsers/leaksOutput.js";
4
4
  import { pickPrimaryAppClass, suggestionsForClassification, } from "../runtime/suggestions.js";
5
5
  import { getStaticAnalysisHint, } from "../runtime/staticAnalysisHints.js";
6
+ import { getFixTemplate, } from "../runtime/fixTemplates.js";
6
7
  export const classifyCycleSchema = z.object({
7
8
  path: z.string().min(1).describe("Absolute path to a `.memgraph` file."),
8
9
  maxResults: z
@@ -475,6 +476,34 @@ export const PATTERNS = [
475
476
  return null;
476
477
  },
477
478
  },
479
+ // ────────────────────────────────────────────────────────────────────────
480
+ // v1.7 catalog — SwiftData + Actor cycle (deferred from v1.6 as low
481
+ // priority). Apple fixed at the framework level in iOS 18 beta 1
482
+ // (FB13844786) but the user-code shape persists on older targets.
483
+ // Source: Apple Developer Forums #748042.
484
+ // ────────────────────────────────────────────────────────────────────────
485
+ {
486
+ id: "swiftdata.modelcontext-actor-cycle",
487
+ name: "SwiftData ModelContext retained by actor through DefaultSerialModelExecutor",
488
+ fixHint: "An `Actor` instance retains a `DefaultSerialModelExecutor`, which retains a `ModelContext`, which (via the executor's reference back to the actor for serialization) closes a cycle. Apple fixed the framework-level shape in iOS 18 beta 1 (FB13844786), but the bug reproduces in user code on older targets and in some custom executor patterns. Fix: prefer `@ModelActor`-generated executors over hand-rolled ones; or, when you must roll your own, hold the `ModelContext` weakly inside the executor and re-resolve it per operation rather than caching it. Always provide a `deinit` on the actor that calls `try? context.save()` and explicitly clears the executor reference.",
489
+ match: (_root, allClasses) => {
490
+ const classes = Array.from(allClasses);
491
+ const hasModelContext = classes.some((c) => c.includes("ModelContext") ||
492
+ c.includes("ModelContainer") ||
493
+ c.includes("PersistentModel"));
494
+ const hasExecutor = classes.some((c) => c.includes("DefaultSerialModelExecutor") ||
495
+ c.includes("ModelActor") ||
496
+ c.includes("ModelExecutor"));
497
+ const hasActor = classes.some((c) => c.includes("Actor") || c.includes("_Concurrency.Actor"));
498
+ if (hasModelContext && hasExecutor && hasActor)
499
+ return "high";
500
+ if (hasModelContext && hasExecutor)
501
+ return "medium";
502
+ if (hasModelContext)
503
+ return "low";
504
+ return null;
505
+ },
506
+ },
478
507
  ];
479
508
  /** Pure: classify each ROOT CYCLE in the parsed report. */
480
509
  export function classifyReport(report, maxResults = 20) {
@@ -494,6 +523,7 @@ export function classifyReport(report, maxResults = 20) {
494
523
  const conf = p.match(root, allClasses);
495
524
  if (conf) {
496
525
  const hint = getStaticAnalysisHint(p.id);
526
+ const template = getFixTemplate(p.id);
497
527
  matches.push({
498
528
  patternId: p.id,
499
529
  name: p.name,
@@ -501,6 +531,7 @@ export function classifyReport(report, maxResults = 20) {
501
531
  reason: `Pattern ${p.id} matched`,
502
532
  fixHint: p.fixHint,
503
533
  ...(hint ? { staticAnalysisHint: hint } : {}),
534
+ ...(template ? { fixTemplate: template } : {}),
504
535
  });
505
536
  }
506
537
  }
@@ -1 +1 @@
1
- {"version":3,"file":"classifyCycle.js","sourceRoot":"","sources":["../../src/tools/classifyCycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classifyCycle.js","sourceRoot":"","sources":["../../src/tools/classifyCycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import { z } from "zod";
2
+ import { type AnalyzeHangsResult } from "./analyzeHangs.js";
3
+ import { type AnalyzeAnimationHitchesResult } from "./analyzeAnimationHitches.js";
4
+ import { type AnalyzeAppLaunchResult } from "./analyzeAppLaunch.js";
5
+ import type { NextCallSuggestion } from "../types.js";
6
+ /**
7
+ * Trace-side counterpart to `verifyFix` (which works on `.memgraph`).
8
+ * Compares before/after `.trace` bundles for a specific perf category
9
+ * (hangs, animation-hitches, app-launch) and returns a per-category
10
+ * PASS/PARTIAL/FAIL verdict + numerical deltas.
11
+ *
12
+ * Designed for CI gating: a build script can run a hangs-fix PR's
13
+ * before/after traces through this tool and fail the merge if the
14
+ * regression target isn't met.
15
+ *
16
+ * Composes with the underlying analyzers — same data shape, just
17
+ * surfaced as a diff.
18
+ */
19
+ export declare const compareTracesByPatternSchema: z.ZodObject<{
20
+ before: z.ZodString;
21
+ after: z.ZodString;
22
+ category: z.ZodEnum<["hangs", "animation-hitches", "app-launch"]>;
23
+ thresholds: z.ZodDefault<z.ZodOptional<z.ZodObject<{
24
+ hangsMaxLongestMs: z.ZodOptional<z.ZodNumber>;
25
+ hitchesMaxLongestMs: z.ZodOptional<z.ZodNumber>;
26
+ appLaunchMaxTotalMs: z.ZodOptional<z.ZodNumber>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ hangsMaxLongestMs?: number | undefined;
29
+ hitchesMaxLongestMs?: number | undefined;
30
+ appLaunchMaxTotalMs?: number | undefined;
31
+ }, {
32
+ hangsMaxLongestMs?: number | undefined;
33
+ hitchesMaxLongestMs?: number | undefined;
34
+ appLaunchMaxTotalMs?: number | undefined;
35
+ }>>>;
36
+ hangsMinDurationMs: z.ZodDefault<z.ZodNumber>;
37
+ hitchesMinDurationMs: z.ZodDefault<z.ZodNumber>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ before: string;
40
+ after: string;
41
+ category: "animation-hitches" | "app-launch" | "hangs";
42
+ thresholds: {
43
+ hangsMaxLongestMs?: number | undefined;
44
+ hitchesMaxLongestMs?: number | undefined;
45
+ appLaunchMaxTotalMs?: number | undefined;
46
+ };
47
+ hangsMinDurationMs: number;
48
+ hitchesMinDurationMs: number;
49
+ }, {
50
+ before: string;
51
+ after: string;
52
+ category: "animation-hitches" | "app-launch" | "hangs";
53
+ thresholds?: {
54
+ hangsMaxLongestMs?: number | undefined;
55
+ hitchesMaxLongestMs?: number | undefined;
56
+ appLaunchMaxTotalMs?: number | undefined;
57
+ } | undefined;
58
+ hangsMinDurationMs?: number | undefined;
59
+ hitchesMinDurationMs?: number | undefined;
60
+ }>;
61
+ export type CompareTracesByPatternInput = z.infer<typeof compareTracesByPatternSchema>;
62
+ export type Verdict = "PASS" | "PARTIAL" | "FAIL";
63
+ export interface CategoryComparison {
64
+ count: number;
65
+ longestMs: number;
66
+ averageMs: number;
67
+ totalMs: number;
68
+ }
69
+ export interface CompareTracesByPatternResult {
70
+ ok: boolean;
71
+ before: string;
72
+ after: string;
73
+ category: "hangs" | "animation-hitches" | "app-launch";
74
+ verdict: Verdict;
75
+ beforeStats: CategoryComparison;
76
+ afterStats: CategoryComparison;
77
+ delta: {
78
+ count: number;
79
+ longestMs: number;
80
+ averageMs: number;
81
+ totalMs: number;
82
+ };
83
+ thresholdApplied: {
84
+ field: string;
85
+ value: number;
86
+ };
87
+ diagnosis: string;
88
+ suggestedNextCalls?: NextCallSuggestion[];
89
+ }
90
+ /** Pure: build the comparison from two analyzer results. */
91
+ export declare function compareHangs(before: AnalyzeHangsResult, after: AnalyzeHangsResult, thresholdLongestMs: number): {
92
+ beforeStats: CategoryComparison;
93
+ afterStats: CategoryComparison;
94
+ delta: CompareTracesByPatternResult["delta"];
95
+ verdict: Verdict;
96
+ };
97
+ /** Pure: same shape as `compareHangs` for animation-hitches. */
98
+ export declare function compareAnimationHitches(before: AnalyzeAnimationHitchesResult, after: AnalyzeAnimationHitchesResult, thresholdLongestMs: number): {
99
+ beforeStats: CategoryComparison;
100
+ afterStats: CategoryComparison;
101
+ delta: CompareTracesByPatternResult["delta"];
102
+ verdict: Verdict;
103
+ };
104
+ /** Pure: app-launch comparison. The "count" field reflects launch-event count
105
+ * (typically 1 per trace); the meaningful number is `totalMs`. */
106
+ export declare function compareAppLaunch(before: AnalyzeAppLaunchResult, after: AnalyzeAppLaunchResult, thresholdTotalMs: number): {
107
+ beforeStats: CategoryComparison;
108
+ afterStats: CategoryComparison;
109
+ delta: CompareTracesByPatternResult["delta"];
110
+ verdict: Verdict;
111
+ };
112
+ export declare function compareTracesByPattern(input: CompareTracesByPatternInput): Promise<CompareTracesByPatternResult>;
@@ -0,0 +1,312 @@
1
+ import { z } from "zod";
2
+ import { existsSync } from "node:fs";
3
+ import { resolve as resolvePath } from "node:path";
4
+ import { analyzeHangs, } from "./analyzeHangs.js";
5
+ import { analyzeAnimationHitches, } from "./analyzeAnimationHitches.js";
6
+ import { analyzeAppLaunch, } from "./analyzeAppLaunch.js";
7
+ /**
8
+ * Trace-side counterpart to `verifyFix` (which works on `.memgraph`).
9
+ * Compares before/after `.trace` bundles for a specific perf category
10
+ * (hangs, animation-hitches, app-launch) and returns a per-category
11
+ * PASS/PARTIAL/FAIL verdict + numerical deltas.
12
+ *
13
+ * Designed for CI gating: a build script can run a hangs-fix PR's
14
+ * before/after traces through this tool and fail the merge if the
15
+ * regression target isn't met.
16
+ *
17
+ * Composes with the underlying analyzers — same data shape, just
18
+ * surfaced as a diff.
19
+ */
20
+ export const compareTracesByPatternSchema = z.object({
21
+ before: z
22
+ .string()
23
+ .min(1)
24
+ .describe("Absolute path to the baseline `.trace` (pre-fix)."),
25
+ after: z
26
+ .string()
27
+ .min(1)
28
+ .describe("Absolute path to the post-fix `.trace`."),
29
+ category: z
30
+ .enum(["hangs", "animation-hitches", "app-launch"])
31
+ .describe("Which perf category to verify. `hangs` parses the `potential-hangs` schema, `animation-hitches` parses `animation-hitches`, `app-launch` parses the launch breakdown."),
32
+ thresholds: z
33
+ .object({
34
+ hangsMaxLongestMs: z
35
+ .number()
36
+ .nonnegative()
37
+ .optional()
38
+ .describe("For `category: hangs` — PASS requires `after.longestMs <= this`. Default 0 (i.e. PASS only when no hangs remain)."),
39
+ hitchesMaxLongestMs: z
40
+ .number()
41
+ .nonnegative()
42
+ .optional()
43
+ .describe("For `category: animation-hitches` — PASS requires `after.longestMs <= this`. Default 100 (Apple's user-perceptible threshold)."),
44
+ appLaunchMaxTotalMs: z
45
+ .number()
46
+ .nonnegative()
47
+ .optional()
48
+ .describe("For `category: app-launch` — PASS requires `after.totalMs <= this`. Default 1000 (1 second total cold-launch budget)."),
49
+ })
50
+ .optional()
51
+ .default({}),
52
+ hangsMinDurationMs: z
53
+ .number()
54
+ .nonnegative()
55
+ .default(250)
56
+ .describe("For `category: hangs` — only count hangs longer than this. Default 250ms (Apple's user-perceptible threshold for hangs)."),
57
+ hitchesMinDurationMs: z
58
+ .number()
59
+ .nonnegative()
60
+ .default(100)
61
+ .describe("For `category: animation-hitches` — only count hitches longer than this. Default 100ms (Apple's user-perceptible threshold)."),
62
+ });
63
+ /** Pure: build the comparison from two analyzer results. */
64
+ export function compareHangs(before, after, thresholdLongestMs) {
65
+ const beforeStats = {
66
+ count: before.totals.hangs,
67
+ longestMs: before.totals.longestMs,
68
+ averageMs: before.totals.averageMs,
69
+ totalMs: before.totals.totalDurationMs,
70
+ };
71
+ const afterStats = {
72
+ count: after.totals.hangs,
73
+ longestMs: after.totals.longestMs,
74
+ averageMs: after.totals.averageMs,
75
+ totalMs: after.totals.totalDurationMs,
76
+ };
77
+ const delta = {
78
+ count: afterStats.count - beforeStats.count,
79
+ longestMs: afterStats.longestMs - beforeStats.longestMs,
80
+ averageMs: afterStats.averageMs - beforeStats.averageMs,
81
+ totalMs: afterStats.totalMs - beforeStats.totalMs,
82
+ };
83
+ const verdict = decideVerdict({
84
+ beforeCount: beforeStats.count,
85
+ afterCount: afterStats.count,
86
+ afterLongestMs: afterStats.longestMs,
87
+ thresholdLongestMs,
88
+ });
89
+ return { beforeStats, afterStats, delta, verdict };
90
+ }
91
+ /** Pure: same shape as `compareHangs` for animation-hitches. */
92
+ export function compareAnimationHitches(before, after, thresholdLongestMs) {
93
+ // For animation-hitches, "count" reflects user-perceptible hitches (>100ms)
94
+ // — the metric users actually feel. The schema's `rows` field is total
95
+ // hitches including the imperceptible ones.
96
+ const beforeStats = {
97
+ count: before.totals.perceptible,
98
+ longestMs: before.totals.longestMs,
99
+ averageMs: before.totals.averageMs,
100
+ totalMs: before.totals.totalDurationMs,
101
+ };
102
+ const afterStats = {
103
+ count: after.totals.perceptible,
104
+ longestMs: after.totals.longestMs,
105
+ averageMs: after.totals.averageMs,
106
+ totalMs: after.totals.totalDurationMs,
107
+ };
108
+ const delta = {
109
+ count: afterStats.count - beforeStats.count,
110
+ longestMs: afterStats.longestMs - beforeStats.longestMs,
111
+ averageMs: afterStats.averageMs - beforeStats.averageMs,
112
+ totalMs: afterStats.totalMs - beforeStats.totalMs,
113
+ };
114
+ const verdict = decideVerdict({
115
+ beforeCount: beforeStats.count,
116
+ afterCount: afterStats.count,
117
+ afterLongestMs: afterStats.longestMs,
118
+ thresholdLongestMs,
119
+ });
120
+ return { beforeStats, afterStats, delta, verdict };
121
+ }
122
+ /** Pure: app-launch comparison. The "count" field reflects launch-event count
123
+ * (typically 1 per trace); the meaningful number is `totalMs`. */
124
+ export function compareAppLaunch(before, after, thresholdTotalMs) {
125
+ const beforeStats = {
126
+ count: 1,
127
+ longestMs: before.totalLaunchMs,
128
+ averageMs: before.totalLaunchMs,
129
+ totalMs: before.totalLaunchMs,
130
+ };
131
+ const afterStats = {
132
+ count: 1,
133
+ longestMs: after.totalLaunchMs,
134
+ averageMs: after.totalLaunchMs,
135
+ totalMs: after.totalLaunchMs,
136
+ };
137
+ const delta = {
138
+ count: 0,
139
+ longestMs: afterStats.longestMs - beforeStats.longestMs,
140
+ averageMs: afterStats.averageMs - beforeStats.averageMs,
141
+ totalMs: afterStats.totalMs - beforeStats.totalMs,
142
+ };
143
+ // Verdict semantics for app-launch differ: it's about absolute totalMs
144
+ // crossing the threshold, not "did the count drop".
145
+ let verdict;
146
+ if (afterStats.totalMs <= thresholdTotalMs) {
147
+ verdict = "PASS";
148
+ }
149
+ else if (afterStats.totalMs < beforeStats.totalMs) {
150
+ verdict = "PARTIAL";
151
+ }
152
+ else {
153
+ verdict = "FAIL";
154
+ }
155
+ return { beforeStats, afterStats, delta, verdict };
156
+ }
157
+ /** Shared verdict logic for hangs + hitches. */
158
+ function decideVerdict({ beforeCount, afterCount, afterLongestMs, thresholdLongestMs, }) {
159
+ // PASS: nothing left above the threshold.
160
+ if (afterCount === 0 || afterLongestMs <= thresholdLongestMs) {
161
+ return "PASS";
162
+ }
163
+ // PARTIAL: still present but reduced from before.
164
+ if (afterCount < beforeCount) {
165
+ return "PARTIAL";
166
+ }
167
+ // FAIL: same or worse.
168
+ return "FAIL";
169
+ }
170
+ function buildDiagnosis(category, beforeStats, afterStats, verdict, thresholdField, thresholdValue) {
171
+ const verb = category === "hangs"
172
+ ? "hangs"
173
+ : category === "animation-hitches"
174
+ ? "hitches"
175
+ : "launch time";
176
+ if (verdict === "PASS") {
177
+ if (category === "app-launch") {
178
+ return `Launch time fell to ${afterStats.totalMs.toFixed(0)}ms (was ${beforeStats.totalMs.toFixed(0)}ms), within the ${thresholdValue}ms budget. PASS.`;
179
+ }
180
+ if (afterStats.count === 0) {
181
+ return `All ${verb} resolved (was ${beforeStats.count}, now 0). PASS.`;
182
+ }
183
+ return `${verb} reduced to ${afterStats.count} (was ${beforeStats.count}); longest ${afterStats.longestMs.toFixed(0)}ms is below the ${thresholdValue}ms threshold. PASS.`;
184
+ }
185
+ if (verdict === "PARTIAL") {
186
+ return `${verb}: ${beforeStats.count}→${afterStats.count} count, ${beforeStats.longestMs.toFixed(0)}ms→${afterStats.longestMs.toFixed(0)}ms longest. Reduced but still above the ${thresholdValue}ms threshold. PARTIAL.`;
187
+ }
188
+ return `${verb}: ${beforeStats.count}→${afterStats.count} count, ${beforeStats.longestMs.toFixed(0)}ms→${afterStats.longestMs.toFixed(0)}ms longest. No improvement vs. before. FAIL — the fix did not address the regression.`;
189
+ }
190
+ export async function compareTracesByPattern(input) {
191
+ const beforePath = resolvePath(input.before);
192
+ const afterPath = resolvePath(input.after);
193
+ if (!existsSync(beforePath)) {
194
+ throw new Error(`Trace bundle not found: ${beforePath}`);
195
+ }
196
+ if (!existsSync(afterPath)) {
197
+ throw new Error(`Trace bundle not found: ${afterPath}`);
198
+ }
199
+ const t = input.thresholds ?? {};
200
+ if (input.category === "hangs") {
201
+ const threshold = t.hangsMaxLongestMs ?? 0;
202
+ const [b, a] = await Promise.all([
203
+ analyzeHangs({
204
+ tracePath: beforePath,
205
+ topN: 10,
206
+ minDurationMs: input.hangsMinDurationMs ?? 250,
207
+ }),
208
+ analyzeHangs({
209
+ tracePath: afterPath,
210
+ topN: 10,
211
+ minDurationMs: input.hangsMinDurationMs ?? 250,
212
+ }),
213
+ ]);
214
+ const cmp = compareHangs(b, a, threshold);
215
+ const diagnosis = buildDiagnosis("hangs", cmp.beforeStats, cmp.afterStats, cmp.verdict, "hangsMaxLongestMs", threshold);
216
+ return {
217
+ ok: true,
218
+ before: beforePath,
219
+ after: afterPath,
220
+ category: "hangs",
221
+ verdict: cmp.verdict,
222
+ beforeStats: cmp.beforeStats,
223
+ afterStats: cmp.afterStats,
224
+ delta: cmp.delta,
225
+ thresholdApplied: { field: "hangsMaxLongestMs", value: threshold },
226
+ diagnosis,
227
+ ...(cmp.verdict !== "PASS"
228
+ ? {
229
+ suggestedNextCalls: [
230
+ {
231
+ tool: "analyzeHangs",
232
+ args: { tracePath: afterPath, minDurationMs: 250 },
233
+ why: "Inspect the remaining post-fix hangs to identify which call sites still need attention.",
234
+ },
235
+ ],
236
+ }
237
+ : {}),
238
+ };
239
+ }
240
+ if (input.category === "animation-hitches") {
241
+ const threshold = t.hitchesMaxLongestMs ?? 100;
242
+ const [b, a] = await Promise.all([
243
+ analyzeAnimationHitches({
244
+ tracePath: beforePath,
245
+ topN: 10,
246
+ minDurationMs: input.hitchesMinDurationMs ?? 100,
247
+ }),
248
+ analyzeAnimationHitches({
249
+ tracePath: afterPath,
250
+ topN: 10,
251
+ minDurationMs: input.hitchesMinDurationMs ?? 100,
252
+ }),
253
+ ]);
254
+ const cmp = compareAnimationHitches(b, a, threshold);
255
+ const diagnosis = buildDiagnosis("animation-hitches", cmp.beforeStats, cmp.afterStats, cmp.verdict, "hitchesMaxLongestMs", threshold);
256
+ return {
257
+ ok: true,
258
+ before: beforePath,
259
+ after: afterPath,
260
+ category: "animation-hitches",
261
+ verdict: cmp.verdict,
262
+ beforeStats: cmp.beforeStats,
263
+ afterStats: cmp.afterStats,
264
+ delta: cmp.delta,
265
+ thresholdApplied: { field: "hitchesMaxLongestMs", value: threshold },
266
+ diagnosis,
267
+ ...(cmp.verdict !== "PASS"
268
+ ? {
269
+ suggestedNextCalls: [
270
+ {
271
+ tool: "analyzeAnimationHitches",
272
+ args: { tracePath: afterPath, minDurationMs: 100 },
273
+ why: "Identify which views still hitch in the post-fix trace.",
274
+ },
275
+ ],
276
+ }
277
+ : {}),
278
+ };
279
+ }
280
+ // app-launch
281
+ const threshold = t.appLaunchMaxTotalMs ?? 1000;
282
+ const [b, a] = await Promise.all([
283
+ analyzeAppLaunch({ tracePath: beforePath }),
284
+ analyzeAppLaunch({ tracePath: afterPath }),
285
+ ]);
286
+ const cmp = compareAppLaunch(b, a, threshold);
287
+ const diagnosis = buildDiagnosis("app-launch", cmp.beforeStats, cmp.afterStats, cmp.verdict, "appLaunchMaxTotalMs", threshold);
288
+ return {
289
+ ok: true,
290
+ before: beforePath,
291
+ after: afterPath,
292
+ category: "app-launch",
293
+ verdict: cmp.verdict,
294
+ beforeStats: cmp.beforeStats,
295
+ afterStats: cmp.afterStats,
296
+ delta: cmp.delta,
297
+ thresholdApplied: { field: "appLaunchMaxTotalMs", value: threshold },
298
+ diagnosis,
299
+ ...(cmp.verdict !== "PASS"
300
+ ? {
301
+ suggestedNextCalls: [
302
+ {
303
+ tool: "analyzeAppLaunch",
304
+ args: { tracePath: afterPath },
305
+ why: "Find which launch phase (process-creation / dyld / ObjC-init / AppDelegate / first-frame) still dominates the post-fix launch.",
306
+ },
307
+ ],
308
+ }
309
+ : {}),
310
+ };
311
+ }
312
+ //# sourceMappingURL=compareTracesByPattern.js.map