@perfonext/render-mcp 0.3.3 → 0.3.4
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/README.md +13 -0
- package/dist/index.js +1 -1
- package/dist/parser/analysis.d.ts.map +1 -1
- package/dist/parser/analysis.js +40 -52
- package/dist/parser/analysis.js.map +1 -1
- package/dist/parser/types.d.ts +0 -1
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/store.d.ts +5 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +13 -0
- package/dist/store.js.map +1 -1
- package/dist/tools/begin-render-analysis.d.ts.map +1 -1
- package/dist/tools/begin-render-analysis.js +14 -0
- package/dist/tools/begin-render-analysis.js.map +1 -1
- package/dist/tools/compare-renders.d.ts.map +1 -1
- package/dist/tools/compare-renders.js +4 -9
- package/dist/tools/compare-renders.js.map +1 -1
- package/dist/tools/get-hot-commits.d.ts.map +1 -1
- package/dist/tools/get-hot-commits.js +21 -16
- package/dist/tools/get-hot-commits.js.map +1 -1
- package/dist/tools/get-render-summary.d.ts.map +1 -1
- package/dist/tools/get-render-summary.js +3 -5
- package/dist/tools/get-render-summary.js.map +1 -1
- package/dist/tools/get-rerender-causes.d.ts.map +1 -1
- package/dist/tools/get-rerender-causes.js +5 -5
- package/dist/tools/get-rerender-causes.js.map +1 -1
- package/dist/tools/get-slow-components.d.ts.map +1 -1
- package/dist/tools/get-slow-components.js +7 -6
- package/dist/tools/get-slow-components.js.map +1 -1
- package/dist/tools/load-render-profile.d.ts.map +1 -1
- package/dist/tools/load-render-profile.js +1 -0
- package/dist/tools/load-render-profile.js.map +1 -1
- package/dist/tools/stop-render-capture.d.ts.map +1 -1
- package/dist/tools/stop-render-capture.js +8 -4
- package/dist/tools/stop-render-capture.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -120,6 +120,19 @@ Copilot will:
|
|
|
120
120
|
> expose the React DevTools profiling channel, so `changeDescription` data is unavailable and causes fall back
|
|
121
121
|
> to heuristics (`dataQuality: "heuristic"`).
|
|
122
122
|
|
|
123
|
+
> **Two preconditions commonly cause a silent `commitCount: 0`:**
|
|
124
|
+
>
|
|
125
|
+
> - **Build flavor.** A plain `next build`/`next start` compiles out React's profiling hooks entirely.
|
|
126
|
+
> Choose one of:
|
|
127
|
+
> - `next dev` — real component names, but dev-mode overhead means render timings and proportions
|
|
128
|
+
> may not match what real users experience in production.
|
|
129
|
+
> - `next build --profile` then `next start` — production-accurate timings, but component names get
|
|
130
|
+
> minified to 1-2 letters (e.g. `"V"`) by production minification, regardless of the profiling flag.
|
|
131
|
+
> `get_render_summary` surfaces a warning when this is detected.
|
|
132
|
+
> - **Instrumentation timing.** `instrument()` must run before React initializes — a static top-level import
|
|
133
|
+
> (as shown in the generated snippet) works; mounting it as a React component, or calling it inside a
|
|
134
|
+
> `useEffect`, runs too late and silently captures nothing.
|
|
135
|
+
|
|
123
136
|
The ingest server runs on a **fixed port (7721)**. Only the `sessionId` line in `instrumentation-client.js` changes between sessions — the file does not need to be re-wired each time.
|
|
124
137
|
|
|
125
138
|
**Option B — Manual DevTools export**
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { registerStopRenderCapture } from './tools/stop-render-capture.js';
|
|
|
13
13
|
import { registerGetCapturedRenders } from './tools/get-captured-renders.js';
|
|
14
14
|
const server = new McpServer({
|
|
15
15
|
name: 'perfonext-render-mcp',
|
|
16
|
-
version: '0.3.
|
|
16
|
+
version: '0.3.4',
|
|
17
17
|
});
|
|
18
18
|
registerLoadRenderProfile(server);
|
|
19
19
|
registerCompareRenders(server);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAIf,gBAAgB,EAChB,mBAAmB,EAEnB,gBAAgB,EAEhB,WAAW,EAGX,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EAId,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAIf,gBAAgB,EAChB,mBAAmB,EAEnB,gBAAgB,EAEhB,WAAW,EAGX,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EAId,MAAM,YAAY,CAAC;AAqCpB,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAgFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,cAAc,SAAI,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,gBAAgB,EAAE,CAsBpB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,GACT;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC;CACpC,CA6CA;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,MAAM,GAAE,OAAO,GAAG,SAAS,GAAG,KAAe,EAC7C,WAAW,SAAI,GACd,kBAAkB,EAAE,CA8BtB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAK,EACV,WAAW,SAAI,GACd,aAAa,EAAE,CAsKjB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,SAAI,GACjB,eAAe,GAAG,IAAI,CA8ExB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,SAAK,GACT,qBAAqB,EAAE,CA8JzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,SAAK,GAAG,WAAW,EAAE,CA6E1F;AAmDD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,mBAAmB,EAChC,cAAc,EAAE,mBAAmB,EACnC,KAAK,SAAK,EACV,QAAQ,SAAI,GACX,gBAAgB,CA6ClB"}
|
package/dist/parser/analysis.js
CHANGED
|
@@ -21,9 +21,14 @@ function isHostElement(name) {
|
|
|
21
21
|
function isAnonymousComponent(name) {
|
|
22
22
|
return name === 'Anonymous' || name.startsWith('(fiber:');
|
|
23
23
|
}
|
|
24
|
+
/** Returns true for internal framework boundary markers (e.g. `__next_metadata_boundary__`)
|
|
25
|
+
* that aren't user code and can't be optimized. */
|
|
26
|
+
function isInternalComponent(name) {
|
|
27
|
+
return /^__.+__$/.test(name);
|
|
28
|
+
}
|
|
24
29
|
/** Returns true for named React components that appear in ranked analysis output. */
|
|
25
30
|
export function isAnalyzableComponent(name) {
|
|
26
|
-
return !isHostElement(name) && !isAnonymousComponent(name);
|
|
31
|
+
return !isHostElement(name) && !isAnonymousComponent(name) && !isInternalComponent(name);
|
|
27
32
|
}
|
|
28
33
|
function getConfidence(evidenceCount) {
|
|
29
34
|
if (evidenceCount >= 3) {
|
|
@@ -72,7 +77,7 @@ function getCommitTopComponents(commit, limit) {
|
|
|
72
77
|
components.set(measurement.componentName, existing);
|
|
73
78
|
}
|
|
74
79
|
return Array.from(components.values())
|
|
75
|
-
.filter((component) =>
|
|
80
|
+
.filter((component) => isAnalyzableComponent(component.componentName))
|
|
76
81
|
.sort((left, right) => right.actualDuration - left.actualDuration)
|
|
77
82
|
.slice(0, limit)
|
|
78
83
|
.map((component) => ({
|
|
@@ -110,11 +115,24 @@ export function getRenderSummary(profile, limit = 10) {
|
|
|
110
115
|
.filter((c) => isAnonymousComponent(c.componentName))
|
|
111
116
|
.map((c) => c.componentName);
|
|
112
117
|
const uniqueAnonymous = [...new Set(anonymousNames)];
|
|
118
|
+
const analyzableNames = profile.components
|
|
119
|
+
.map((c) => c.componentName)
|
|
120
|
+
.filter((name) => isAnalyzableComponent(name));
|
|
121
|
+
// 1-2 letter names are the signature of a production build mangling displayName —
|
|
122
|
+
// real components essentially never end up this short on their own.
|
|
123
|
+
const minifiedNames = analyzableNames.filter((name) => /^[A-Za-z]{1,2}$/.test(name));
|
|
113
124
|
const warnings = [];
|
|
114
125
|
if (uniqueAnonymous.length > 0) {
|
|
115
126
|
warnings.push(`${uniqueAnonymous.length} unnamed component${uniqueAnonymous.length > 1 ? 's' : ''} found (e.g. "Anonymous"). ` +
|
|
116
127
|
`These are excluded from analysis. Add a displayName or convert arrow functions to named function expressions to get actionable results.`);
|
|
117
128
|
}
|
|
129
|
+
if (analyzableNames.length >= 3 && minifiedNames.length / analyzableNames.length >= 0.3) {
|
|
130
|
+
warnings.push(`${minifiedNames.length} of ${analyzableNames.length} component names look minified (e.g. "${minifiedNames[0]}"). ` +
|
|
131
|
+
'This is expected when capturing against `next build --profile` — production minification strips ' +
|
|
132
|
+
"displayName info regardless of the profiling flag, so findings naming these components aren't " +
|
|
133
|
+
"actionable as-is. If you don't need production-accurate timings, capture against `next dev` instead " +
|
|
134
|
+
"for real names; otherwise check each entry's `source` field (if present) to map back to a file.");
|
|
135
|
+
}
|
|
118
136
|
return {
|
|
119
137
|
profileId: profile.id,
|
|
120
138
|
filename: profile.filename,
|
|
@@ -133,8 +151,7 @@ export function getRenderSummary(profile, limit = 10) {
|
|
|
133
151
|
}
|
|
134
152
|
export function getSlowComponents(profile, limit = 10, sortBy = 'total', minDuration = 0) {
|
|
135
153
|
const entries = profile.components
|
|
136
|
-
.filter((component) =>
|
|
137
|
-
!isAnonymousComponent(component.componentName) &&
|
|
154
|
+
.filter((component) => isAnalyzableComponent(component.componentName) &&
|
|
138
155
|
component.totalActualDuration >= minDuration)
|
|
139
156
|
.map((component) => ({
|
|
140
157
|
componentName: component.componentName,
|
|
@@ -168,12 +185,10 @@ export function getRerenderCauses(profile, limit = 10, minDuration = 0) {
|
|
|
168
185
|
// on "every commit" instead of never reaching a fixed floor of 3.
|
|
169
186
|
const wideSpreadThreshold = Math.min(commitCount, Math.max(3, Math.ceil(commitCount * 0.6)));
|
|
170
187
|
const causes = profile.components
|
|
171
|
-
.filter((component) =>
|
|
172
|
-
!isAnonymousComponent(component.componentName) &&
|
|
188
|
+
.filter((component) => isAnalyzableComponent(component.componentName) &&
|
|
173
189
|
(component.updateCount > 0 || component.nestedUpdateCount > 0) &&
|
|
174
190
|
component.totalActualDuration >= minDuration)
|
|
175
191
|
.map((component) => {
|
|
176
|
-
const likelyCauses = [];
|
|
177
192
|
const evidence = [];
|
|
178
193
|
const selfToActualRatio = component.totalActualDuration > 0
|
|
179
194
|
? component.totalSelfDuration / component.totalActualDuration
|
|
@@ -195,15 +210,14 @@ export function getRerenderCauses(profile, limit = 10, minDuration = 0) {
|
|
|
195
210
|
if (cc.parentTriggered && parts.length === 0)
|
|
196
211
|
parts.push('parent re-rendered (no own prop/state change)');
|
|
197
212
|
if (parts.length > 0) {
|
|
198
|
-
likelyCauses.push(`${component.componentName} re-rendered because: ${parts.join('; ')}.` +
|
|
199
|
-
(cc.parentTriggered && parts.length > 1
|
|
200
|
-
? ' Also triggered by parent re-renders.'
|
|
201
|
-
: ''));
|
|
202
213
|
evidence.push({
|
|
203
214
|
signal: 'exact-change-description',
|
|
204
215
|
observed: parts.join('; '),
|
|
205
216
|
threshold: 'n/a',
|
|
206
|
-
detail:
|
|
217
|
+
detail: `${component.componentName} re-rendered because: ${parts.join('; ')}.` +
|
|
218
|
+
(cc.parentTriggered && parts.length > 1
|
|
219
|
+
? ' Also triggered by parent re-renders.'
|
|
220
|
+
: ''),
|
|
207
221
|
});
|
|
208
222
|
}
|
|
209
223
|
}
|
|
@@ -212,58 +226,41 @@ export function getRerenderCauses(profile, limit = 10, minDuration = 0) {
|
|
|
212
226
|
? Math.round((component.updateCount / component.renderCount) * 100)
|
|
213
227
|
: 0;
|
|
214
228
|
const mountPct = 100 - updatePct;
|
|
215
|
-
let
|
|
229
|
+
let advice;
|
|
216
230
|
if (updatePct >= 80) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
`It almost never remounts fresh, which means it is staying alive and re-rendering in place repeatedly. ` +
|
|
220
|
-
`The likely driver is a parent passing new object/array/function references on every render, or the component's own state being set more often than intended. ` +
|
|
221
|
-
`Check for inline object props, unstable callback references, or a context value that changes on every parent render.`;
|
|
231
|
+
advice =
|
|
232
|
+
'It almost never remounts fresh, staying alive and re-rendering in place — check for inline object/array/function props, unstable callback references, or a context value that changes on every parent render.';
|
|
222
233
|
}
|
|
223
234
|
else if (updatePct >= 40) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
`The component is sometimes remounting fresh and sometimes updating in place, which can mean it is conditionally included in the tree, ` +
|
|
227
|
-
`or its React key changes on some renders (causing a full unmount+mount). ` +
|
|
228
|
-
`Investigate whether key changes are intentional and whether conditional rendering could be replaced with CSS visibility to avoid remount cost.`;
|
|
235
|
+
advice =
|
|
236
|
+
'Mixed mount/update pattern — investigate whether key changes are intentional; conditional rendering could be replaced with CSS visibility to avoid remount cost.';
|
|
229
237
|
}
|
|
230
238
|
else {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
`This level of remounting usually points to unstable list keys, a parent that conditionally unmounts and recreates the component, ` +
|
|
234
|
-
`or a component defined inside a render function (which creates a new type on every render and forces React to unmount instead of update). ` +
|
|
235
|
-
`Ensure keys are stable identifiers and that the component is not defined inline.`;
|
|
239
|
+
advice =
|
|
240
|
+
'Mostly mounting rather than updating — check for unstable list keys, a parent conditionally unmounting/recreating this component, or a component type defined inline inside a render function.';
|
|
236
241
|
}
|
|
237
|
-
likelyCauses.push(causeText);
|
|
238
242
|
evidence.push({
|
|
239
243
|
signal: 'repeated-update-phases',
|
|
240
244
|
observed: component.updateCount,
|
|
241
245
|
threshold: 2,
|
|
242
|
-
detail: `${component.componentName} entered the update phase ${component.updateCount} times (${updatePct}%) across ${component.commitIndices.length} commit${component.commitIndices.length === 1 ? '' : 's'}.
|
|
246
|
+
detail: `${component.componentName} entered the update phase ${component.updateCount} of ${component.renderCount} times (${updatePct}% updates, ${mountPct}% mounts) across ${component.commitIndices.length} commit${component.commitIndices.length === 1 ? '' : 's'}. ${advice}`,
|
|
243
247
|
});
|
|
244
248
|
}
|
|
245
249
|
if (component.nestedUpdateCount > 0) {
|
|
246
|
-
likelyCauses.push(`${component.nestedUpdateCount} of ${component.componentName}'s renders were triggered as nested updates ` +
|
|
247
|
-
`(the component itself was listed as an updater for its own commit). ` +
|
|
248
|
-
`This is a strong indicator of a render-then-setState loop, an effect with missing or incorrect dependencies, ` +
|
|
249
|
-
`or a context provider that updates its value during render.`);
|
|
250
250
|
evidence.push({
|
|
251
251
|
signal: 'nested-update-propagation',
|
|
252
252
|
observed: component.nestedUpdateCount,
|
|
253
253
|
threshold: 1,
|
|
254
|
-
detail: `${component.componentName}
|
|
254
|
+
detail: `${component.nestedUpdateCount} of ${component.componentName}'s renders were nested updates (self-triggered as an updater for its own commit) — a strong indicator of a render-then-setState loop, an effect with missing/incorrect dependencies, or a context provider updating its value during render.`,
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
257
|
if (selfToActualRatio >= 0.9) {
|
|
258
258
|
const selfPct = Math.round(selfToActualRatio * 100);
|
|
259
|
-
likelyCauses.push(`${selfPct}% of ${component.componentName}'s render cost is self-contained (not delegated to children). ` +
|
|
260
|
-
`The component body itself is doing the heavy lifting — likely expensive JSX construction, inline computations, or heavy formatting on each render. ` +
|
|
261
|
-
`Wrapping with React.memo will prevent unnecessary calls, and moving expensive calculations into useMemo will avoid recomputing them when unrelated state changes.`);
|
|
262
259
|
evidence.push({
|
|
263
260
|
signal: 'self-intensive-render',
|
|
264
261
|
observed: Number(selfToActualRatio.toFixed(2)),
|
|
265
262
|
threshold: 0.9,
|
|
266
|
-
detail: `Self duration is ${selfPct}% of actual duration for ${component.componentName}
|
|
263
|
+
detail: `Self duration is ${selfPct}% of actual duration for ${component.componentName} — the component's own body (not children) does most of the work, likely expensive JSX construction, inline computations, or formatting. Wrap with React.memo and move expensive calculations into useMemo.`,
|
|
267
264
|
});
|
|
268
265
|
}
|
|
269
266
|
if (component.commitIndices.length >= wideSpreadThreshold) {
|
|
@@ -272,27 +269,19 @@ export function getRerenderCauses(profile, limit = 10, minDuration = 0) {
|
|
|
272
269
|
(component.commitIndices.length > 5
|
|
273
270
|
? ` … (+${component.commitIndices.length - 5} more)`
|
|
274
271
|
: '');
|
|
275
|
-
likelyCauses.push(`${component.componentName} appeared in ${component.commitIndices.length} of ${commitCount} commits (${spreadPct}%) (commits ${commitList}), ` +
|
|
276
|
-
`which means rerender pressure on this component is sustained across the session rather than a one-off spike. ` +
|
|
277
|
-
`Likely causes are an unstable context value, a subscription or timer that triggers frequent state updates, ` +
|
|
278
|
-
`or a prop that carries a new reference on every parent render.`);
|
|
279
272
|
evidence.push({
|
|
280
273
|
signal: 'wide-commit-spread',
|
|
281
274
|
observed: component.commitIndices.length,
|
|
282
275
|
threshold: wideSpreadThreshold,
|
|
283
|
-
detail: `${component.componentName} shows up across ${component.commitIndices.length} of ${commitCount} commits (${spreadPct}%) (${commitList})
|
|
276
|
+
detail: `${component.componentName} shows up across ${component.commitIndices.length} of ${commitCount} commits (${spreadPct}%) (${commitList}) — sustained rerender pressure rather than a one-off spike. Likely an unstable context value, a subscription/timer triggering frequent updates, or a prop carrying a new reference every parent render.`,
|
|
284
277
|
});
|
|
285
278
|
}
|
|
286
|
-
if (
|
|
287
|
-
likelyCauses.push(`${component.componentName} rendered ${component.updateCount} time${component.updateCount === 1 ? '' : 's'} in update phase, ` +
|
|
288
|
-
`but the signals are below the thresholds for specific heuristics. ` +
|
|
289
|
-
`React Profiler exports do not include prop/state diffs, so the exact trigger cannot be determined from this data alone. ` +
|
|
290
|
-
`Use why-did-you-render or React DevTools to capture the specific prop or state change.`);
|
|
279
|
+
if (evidence.length === 0) {
|
|
291
280
|
evidence.push({
|
|
292
281
|
signal: 'limited-export-evidence',
|
|
293
282
|
observed: component.commitIndices.length,
|
|
294
283
|
threshold: 'n/a',
|
|
295
|
-
detail:
|
|
284
|
+
detail: `${component.componentName} rendered ${component.updateCount} time${component.updateCount === 1 ? '' : 's'} in update phase, but signals are below the thresholds for specific heuristics. React Profiler exports lack prop/state diffs — use why-did-you-render or React DevTools to find the exact trigger.`,
|
|
296
285
|
});
|
|
297
286
|
}
|
|
298
287
|
// Score: update count (capped) + nested updates + commit spread + self-intensive + avg duration factor
|
|
@@ -316,7 +305,6 @@ export function getRerenderCauses(profile, limit = 10, minDuration = 0) {
|
|
|
316
305
|
scoreBand: getScoreBand(score, component.totalActualDuration),
|
|
317
306
|
confidence: getConfidence(evidence.filter((item) => item.signal !== 'limited-export-evidence').length),
|
|
318
307
|
evidence,
|
|
319
|
-
likelyCauses,
|
|
320
308
|
};
|
|
321
309
|
if (component.source)
|
|
322
310
|
result.source = component.source;
|
|
@@ -540,7 +528,7 @@ export function detectRenderIssues(profile, limit = 10) {
|
|
|
540
528
|
type: 'rerender-storm',
|
|
541
529
|
severity: cause.scoreBand,
|
|
542
530
|
title: `${cause.componentName} rerenders frequently`,
|
|
543
|
-
summary: cause.
|
|
531
|
+
summary: cause.evidence[0]?.detail ?? `${cause.componentName} shows repeated rerender pressure.`,
|
|
544
532
|
componentName: cause.componentName,
|
|
545
533
|
evidence: cause.evidence,
|
|
546
534
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/parser/analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/types.d.ts
CHANGED
|
@@ -149,7 +149,6 @@ export interface RerenderCause {
|
|
|
149
149
|
scoreBand: RerenderScoreBand;
|
|
150
150
|
confidence: RerenderConfidence;
|
|
151
151
|
evidence: RerenderEvidence[];
|
|
152
|
-
likelyCauses: string[];
|
|
153
152
|
source?: ComponentSource;
|
|
154
153
|
}
|
|
155
154
|
export type RenderIssueType = 'rerender-storm' | 'commit-spike' | 'cascading-render';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { ParsedRenderProfile } from './parser/types.js';
|
|
2
2
|
export declare function storeRenderProfile(profile: ParsedRenderProfile): void;
|
|
3
|
+
/** Test-only teardown hook — clears all stored profiles so test order can't leak state. */
|
|
4
|
+
export declare function clearRenderProfiles(): void;
|
|
3
5
|
export declare function getRenderProfile(id: string): ParsedRenderProfile | undefined;
|
|
6
|
+
/** Looks up a profile or throws a consistent, actionable error. `label` customizes
|
|
7
|
+
* the error for call sites juggling more than one profile id (e.g. compare_renders). */
|
|
8
|
+
export declare function requireRenderProfile(id: string, label?: string): ParsedRenderProfile;
|
|
4
9
|
export declare function listRenderProfiles(): Array<{
|
|
5
10
|
id: string;
|
|
6
11
|
filename: string;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAErE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE5E;AAED,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC,CAQD"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAErE;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE5E;AAED;yFACyF;AACzF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,mBAAmB,CAQvF;AAED,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC,CAQD"}
|
package/dist/store.js
CHANGED
|
@@ -2,9 +2,22 @@ const profiles = new Map();
|
|
|
2
2
|
export function storeRenderProfile(profile) {
|
|
3
3
|
profiles.set(profile.id, profile);
|
|
4
4
|
}
|
|
5
|
+
/** Test-only teardown hook — clears all stored profiles so test order can't leak state. */
|
|
6
|
+
export function clearRenderProfiles() {
|
|
7
|
+
profiles.clear();
|
|
8
|
+
}
|
|
5
9
|
export function getRenderProfile(id) {
|
|
6
10
|
return profiles.get(id);
|
|
7
11
|
}
|
|
12
|
+
/** Looks up a profile or throws a consistent, actionable error. `label` customizes
|
|
13
|
+
* the error for call sites juggling more than one profile id (e.g. compare_renders). */
|
|
14
|
+
export function requireRenderProfile(id, label = 'Profile') {
|
|
15
|
+
const profile = profiles.get(id);
|
|
16
|
+
if (!profile) {
|
|
17
|
+
throw new Error(`${label} "${id}" not found. Call get_render_summary without a profileId to list all loaded profiles.`);
|
|
18
|
+
}
|
|
19
|
+
return profile;
|
|
20
|
+
}
|
|
8
21
|
export function listRenderProfiles() {
|
|
9
22
|
return Array.from(profiles.values()).map((profile) => ({
|
|
10
23
|
id: profile.id,
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAOhC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QACnC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QACzC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED;yFACyF;AACzF,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,KAAK,GAAG,SAAS;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,KAAK,EAAE,uFAAuF,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAOhC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QACnC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QACzC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begin-render-analysis.d.ts","sourceRoot":"","sources":["../../src/tools/begin-render-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"begin-render-analysis.d.ts","sourceRoot":"","sources":["../../src/tools/begin-render-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2FnE"}
|
|
@@ -39,6 +39,20 @@ export function registerBeginRenderAnalysis(server) {
|
|
|
39
39
|
"3. Import it from your app's client-side entry point (e.g. _app.tsx, root layout, main.tsx)",
|
|
40
40
|
' — inspect the project structure to find the right file.',
|
|
41
41
|
' The import must run on the client (add "use client" if the entry is a Server Component).',
|
|
42
|
+
' Note: instrumentation-client.js requires Next.js 15.3+; on older versions, wire the import',
|
|
43
|
+
' directly into the client entry file instead.',
|
|
44
|
+
].join('\n'),
|
|
45
|
+
preconditions: [
|
|
46
|
+
"A plain `next build`/`next start` will NOT work — it compiles out React's profiling hooks " +
|
|
47
|
+
'entirely, silently yielding commitCount: 0. Choose one of:',
|
|
48
|
+
' `next dev` — real component names, but dev-mode overhead means render timings and ' +
|
|
49
|
+
'proportions may not match what real users experience in production.',
|
|
50
|
+
' `next build --profile` then `next start` — production-accurate timings, but component ' +
|
|
51
|
+
'names get minified to 1-2 letters (e.g. "V") by production minification; ' +
|
|
52
|
+
'get_render_summary will flag this when it happens.',
|
|
53
|
+
'instrument() must run before React initializes — a static top-level import (as shown in `snippet`) ' +
|
|
54
|
+
'works; mounting it as a React component (e.g. inside a layout, or in a useEffect) runs too late ' +
|
|
55
|
+
'and will also silently yield commitCount: 0.',
|
|
42
56
|
].join('\n'),
|
|
43
57
|
nextStep: `run_render_capture({ sessionId: "${session.sessionId}", method: <ask the user> })`,
|
|
44
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begin-render-analysis.js","sourceRoot":"","sources":["../../src/tools/begin-render-analysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,yDAAyD;YACzD,uHAAuH;YACvH,oHAAoH;YACpH,mEAAmE;QACrE,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACxB,QAAQ,CACP,yEAAyE;gBACvE,4EAA4E,CAC/E;SACJ;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAE7C,MAAM,OAAO,GAAG;gBACd,+CAA+C;gBAC/C,cAAc;gBACd,gBAAgB,OAAO,CAAC,QAAQ,IAAI;gBACpC,iBAAiB,OAAO,CAAC,SAAS,IAAI;gBACtC,mCAAmC;gBACnC,6BAA6B;gBAC7B,+BAA+B;gBAC/B,KAAK;aACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO;gBACP,WAAW,EAAE,2BAA2B;gBACxC,KAAK,EAAE;oBACL,sCAAsC;oBACtC,wGAAwG;oBACxG,+GAA+G;oBAC/G,6FAA6F;oBAC7F,4DAA4D;oBAC5D,6FAA6F;
|
|
1
|
+
{"version":3,"file":"begin-render-analysis.js","sourceRoot":"","sources":["../../src/tools/begin-render-analysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,yDAAyD;YACzD,uHAAuH;YACvH,oHAAoH;YACpH,mEAAmE;QACrE,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACxB,QAAQ,CACP,yEAAyE;gBACvE,4EAA4E,CAC/E;SACJ;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAE7C,MAAM,OAAO,GAAG;gBACd,+CAA+C;gBAC/C,cAAc;gBACd,gBAAgB,OAAO,CAAC,QAAQ,IAAI;gBACpC,iBAAiB,OAAO,CAAC,SAAS,IAAI;gBACtC,mCAAmC;gBACnC,6BAA6B;gBAC7B,+BAA+B;gBAC/B,KAAK;aACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO;gBACP,WAAW,EAAE,2BAA2B;gBACxC,KAAK,EAAE;oBACL,sCAAsC;oBACtC,wGAAwG;oBACxG,+GAA+G;oBAC/G,6FAA6F;oBAC7F,4DAA4D;oBAC5D,6FAA6F;oBAC7F,+FAA+F;oBAC/F,iDAAiD;iBAClD,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE;oBACb,4FAA4F;wBAC1F,4DAA4D;oBAC9D,sFAAsF;wBACpF,qEAAqE;oBACvE,0FAA0F;wBACxF,2EAA2E;wBAC3E,oDAAoD;oBACtD,qGAAqG;wBACnG,kGAAkG;wBAClG,8CAA8C;iBACjD,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,oCAAoC,OAAO,CAAC,SAAS,8BAA8B;aAC9F,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE;gBACL,uFAAuF;gBACvF,2CAA2C;gBAC3C,mEAAmE;gBACnE,kEAAkE;gBAClE,yEAAyE;gBACzE,oDAAoD;gBACpD,4GAA4G;gBAC5G,kFAAkF;aACnF,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,8DAA8D;SACzE,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-renders.d.ts","sourceRoot":"","sources":["../../src/tools/compare-renders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"compare-renders.d.ts","sourceRoot":"","sources":["../../src/tools/compare-renders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD9D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { formatMs } from '../format.js';
|
|
3
3
|
import { compareRenders } from '../parser/analysis.js';
|
|
4
|
-
import {
|
|
4
|
+
import { requireRenderProfile } from '../store.js';
|
|
5
5
|
function formatDiffEntry(entry) {
|
|
6
6
|
return {
|
|
7
7
|
...entry,
|
|
@@ -34,14 +34,8 @@ export function registerCompareRenders(server) {
|
|
|
34
34
|
.describe('Minimum absolute total render delta in ms for changed components. Defaults to 0.'),
|
|
35
35
|
},
|
|
36
36
|
}, async ({ baseProfileId, currentProfileId, limit, minDeltaMs }) => {
|
|
37
|
-
const baseProfile =
|
|
38
|
-
|
|
39
|
-
throw new Error(`Base profile "${baseProfileId}" not found.`);
|
|
40
|
-
}
|
|
41
|
-
const currentProfile = getRenderProfile(currentProfileId);
|
|
42
|
-
if (!currentProfile) {
|
|
43
|
-
throw new Error(`Current profile "${currentProfileId}" not found.`);
|
|
44
|
-
}
|
|
37
|
+
const baseProfile = requireRenderProfile(baseProfileId, 'Base profile');
|
|
38
|
+
const currentProfile = requireRenderProfile(currentProfileId, 'Current profile');
|
|
45
39
|
const comparison = compareRenders(baseProfile, currentProfile, limit ?? 10, minDeltaMs ?? 0);
|
|
46
40
|
return {
|
|
47
41
|
content: [
|
|
@@ -53,6 +47,7 @@ export function registerCompareRenders(server) {
|
|
|
53
47
|
improvements: comparison.improvements.map(formatDiffEntry),
|
|
54
48
|
added: comparison.added.map(formatDiffEntry),
|
|
55
49
|
removed: comparison.removed.map(formatDiffEntry),
|
|
50
|
+
nextStep: `call get_rerender_causes with profileId "${currentProfileId}" to see why the regressed components are rerendering`,
|
|
56
51
|
}, null, 2),
|
|
57
52
|
},
|
|
58
53
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-renders.js","sourceRoot":"","sources":["../../src/tools/compare-renders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compare-renders.js","sourceRoot":"","sources":["../../src/tools/compare-renders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,SAAS,eAAe,CAStB,KAAQ;IACR,OAAO;QACL,GAAG,KAAK;QACR,uBAAuB,EAAE,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC;QAChE,0BAA0B,EAAE,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC;QACtE,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC;QAClE,0BAA0B,EAAE,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC;QACtE,sBAAsB,EAAE,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC9D,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;KACzF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,0GAA0G;QAC5G,WAAW,EAAE;YACX,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YAClF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACpF,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;SACJ;KACF,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/D,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEjF,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QAE7F,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,GAAG,UAAU;wBACb,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;wBACxD,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;wBAC1D,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;wBAC5C,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;wBAChD,QAAQ,EAAE,4CAA4C,gBAAgB,uDAAuD;qBAC9H,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-hot-commits.d.ts","sourceRoot":"","sources":["../../src/tools/get-hot-commits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-hot-commits.d.ts","sourceRoot":"","sources":["../../src/tools/get-hot-commits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+E7D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { formatMs, formatPct } from '../format.js';
|
|
3
3
|
import { getHotCommits } from '../parser/analysis.js';
|
|
4
|
-
import {
|
|
4
|
+
import { requireRenderProfile } from '../store.js';
|
|
5
5
|
export function registerGetHotCommits(server) {
|
|
6
6
|
server.registerTool('get_hot_commits', {
|
|
7
7
|
title: 'Get Hot Commits',
|
|
@@ -28,21 +28,24 @@ export function registerGetHotCommits(server) {
|
|
|
28
28
|
.describe('Filter to commits with this priority level only. Common values: "Immediate" (synchronous, input-blocking), "Normal" (async, e.g. API responses). Omit to include all priorities.'),
|
|
29
29
|
},
|
|
30
30
|
}, async ({ profileId, limit, componentLimit, priorityLevel }) => {
|
|
31
|
-
const profile =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
const profile = requireRenderProfile(profileId);
|
|
32
|
+
const hotCommits = getHotCommits(profile, limit ?? 10, componentLimit ?? 3, priorityLevel).map((commit) => {
|
|
33
|
+
// Omit when empty — react-scan/lite live capture never populates this field;
|
|
34
|
+
// only the React DevTools manual-export path can report real updater names.
|
|
35
|
+
const { updaterComponentNames, ...rest } = commit;
|
|
36
|
+
return {
|
|
37
|
+
...rest,
|
|
38
|
+
duration: formatMs(commit.duration),
|
|
39
|
+
totalActualDuration: formatMs(commit.totalActualDuration),
|
|
40
|
+
topComponents: commit.topComponents.map((component) => ({
|
|
41
|
+
...component,
|
|
42
|
+
actualDuration: formatMs(component.actualDuration),
|
|
43
|
+
selfDuration: formatMs(component.selfDuration),
|
|
44
|
+
shareOfCommitWork: formatPct(component.shareOfCommitWork),
|
|
45
|
+
})),
|
|
46
|
+
...(updaterComponentNames.length > 0 ? { updaterComponentNames } : {}),
|
|
47
|
+
};
|
|
48
|
+
});
|
|
46
49
|
return {
|
|
47
50
|
content: [
|
|
48
51
|
{
|
|
@@ -50,7 +53,9 @@ export function registerGetHotCommits(server) {
|
|
|
50
53
|
text: JSON.stringify({
|
|
51
54
|
profileId,
|
|
52
55
|
timestampNote: 'timestamp values are milliseconds since the profiling session started, not Unix epoch',
|
|
56
|
+
measurementCountNote: 'measurementCount is the total fiber renders in this commit (all components, before ranking) — not the count of topComponents below',
|
|
53
57
|
hotCommits,
|
|
58
|
+
nextStep: `call get_slow_components with profileId "${profileId}" to rank components across the whole session, not just this commit`,
|
|
54
59
|
}, null, 2),
|
|
55
60
|
},
|
|
56
61
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-hot-commits.js","sourceRoot":"","sources":["../../src/tools/get-hot-commits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-hot-commits.js","sourceRoot":"","sources":["../../src/tools/get-hot-commits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,2GAA2G;QAC7G,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kLAAkL,CACnL;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,aAAa,CAC9B,OAAO,EACP,KAAK,IAAI,EAAE,EACX,cAAc,IAAI,CAAC,EACnB,aAAa,CACd,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,6EAA6E;YAC7E,4EAA4E;YAC5E,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YAClD,OAAO;gBACL,GAAG,IAAI;gBACP,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnC,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBACzD,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACtD,GAAG,SAAS;oBACZ,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC;oBAClD,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;oBAC9C,iBAAiB,EAAE,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC;iBAC1D,CAAC,CAAC;gBACH,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,SAAS;wBACT,aAAa,EACX,uFAAuF;wBACzF,oBAAoB,EAClB,oIAAoI;wBACtI,UAAU;wBACV,QAAQ,EAAE,4CAA4C,SAAS,qEAAqE;qBACrI,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-render-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-render-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-render-summary.d.ts","sourceRoot":"","sources":["../../src/tools/get-render-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiFhE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { formatMs, formatPct } from '../format.js';
|
|
3
3
|
import { getRenderSummary as summarizeRenderProfile } from '../parser/analysis.js';
|
|
4
|
-
import {
|
|
4
|
+
import { listRenderProfiles, requireRenderProfile } from '../store.js';
|
|
5
5
|
export function registerGetRenderSummary(server) {
|
|
6
6
|
server.registerTool('get_render_summary', {
|
|
7
7
|
title: 'Get Render Summary',
|
|
@@ -35,10 +35,7 @@ export function registerGetRenderSummary(server) {
|
|
|
35
35
|
],
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
const profile =
|
|
39
|
-
if (!profile) {
|
|
40
|
-
throw new Error(`Profile "${profileId}" not found. Call get_render_summary without a profileId to list all loaded profiles.`);
|
|
41
|
-
}
|
|
38
|
+
const profile = requireRenderProfile(profileId);
|
|
42
39
|
const summary = summarizeRenderProfile(profile, limit ?? 10);
|
|
43
40
|
return {
|
|
44
41
|
content: [
|
|
@@ -65,6 +62,7 @@ export function registerGetRenderSummary(server) {
|
|
|
65
62
|
shareOfCommitWork: formatPct(component.shareOfCommitWork),
|
|
66
63
|
})),
|
|
67
64
|
})),
|
|
65
|
+
nextStep: `call get_rerender_causes with profileId "${profileId}" for why the top components are rerendering, or compare_renders against a baseline profile`,
|
|
68
66
|
}, null, 2),
|
|
69
67
|
},
|
|
70
68
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-render-summary.js","sourceRoot":"","sources":["../../src/tools/get-render-summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-render-summary.js","sourceRoot":"","sources":["../../src/tools/get-render-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-rerender-causes.d.ts","sourceRoot":"","sources":["../../src/tools/get-rerender-causes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-rerender-causes.d.ts","sourceRoot":"","sources":["../../src/tools/get-rerender-causes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmEjE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { formatMs } from '../format.js';
|
|
3
3
|
import { getRerenderCauses } from '../parser/analysis.js';
|
|
4
|
-
import {
|
|
4
|
+
import { requireRenderProfile } from '../store.js';
|
|
5
5
|
export function registerGetRerenderCauses(server) {
|
|
6
6
|
server.registerTool('get_rerender_causes', {
|
|
7
7
|
title: 'Get Rerender Causes',
|
|
@@ -22,10 +22,7 @@ export function registerGetRerenderCauses(server) {
|
|
|
22
22
|
.describe('Minimum total actual duration in ms for a component to appear. Filters sub-millisecond noise. Defaults to 0.'),
|
|
23
23
|
},
|
|
24
24
|
}, async ({ profileId, limit, minDuration }) => {
|
|
25
|
-
const profile =
|
|
26
|
-
if (!profile) {
|
|
27
|
-
throw new Error(`Profile "${profileId}" not found. Call get_render_summary without a profileId to list all loaded profiles.`);
|
|
28
|
-
}
|
|
25
|
+
const profile = requireRenderProfile(profileId);
|
|
29
26
|
const causes = getRerenderCauses(profile, limit ?? 10, minDuration ?? 0).map((cause) => ({
|
|
30
27
|
...cause,
|
|
31
28
|
score: Number(cause.score.toFixed(1)),
|
|
@@ -48,6 +45,9 @@ export function registerGetRerenderCauses(server) {
|
|
|
48
45
|
thresholds: { low: '0.0-2.9', medium: '3.0-5.9', high: '6.0-10.0' },
|
|
49
46
|
},
|
|
50
47
|
causes,
|
|
48
|
+
nextStep: causes[0]?.source != null
|
|
49
|
+
? `open "${causes[0].source.fileName}" at line ${causes[0].source.lineNumber} to inspect the top-ranked cause`
|
|
50
|
+
: `call get_slow_components with profileId "${profileId}" for a duration-only ranking`,
|
|
51
51
|
}, null, 2),
|
|
52
52
|
},
|
|
53
53
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-rerender-causes.js","sourceRoot":"","sources":["../../src/tools/get-rerender-causes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-rerender-causes.js","sourceRoot":"","sources":["../../src/tools/get-rerender-causes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,4HAA4H;QAC9H,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CACP,8GAA8G,CAC/G;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvF,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,mBAAmB,EAAE,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;SACzD,CAAC,CAAC,CAAC;QAEJ,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB;YAC/C,CAAC,CAAC,mFAAmF;YACrF,CAAC,CAAC,wKAAwK,CAAC;QAE7K,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,SAAS;wBACT,WAAW;wBACX,IAAI,EAAE,WAAW;wBACjB,kBAAkB,EAAE;4BAClB,OAAO,EACL,qIAAqI;4BACvI,UAAU,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;yBACpE;wBACD,MAAM;wBACN,QAAQ,EACN,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI;4BACvB,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,aAAa,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,kCAAkC;4BAC9G,CAAC,CAAC,4CAA4C,SAAS,+BAA+B;qBAC3F,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-slow-components.d.ts","sourceRoot":"","sources":["../../src/tools/get-slow-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-slow-components.d.ts","sourceRoot":"","sources":["../../src/tools/get-slow-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiEjE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { formatMs } from '../format.js';
|
|
3
3
|
import { getSlowComponents } from '../parser/analysis.js';
|
|
4
|
-
import {
|
|
4
|
+
import { requireRenderProfile } from '../store.js';
|
|
5
5
|
export function registerGetSlowComponents(server) {
|
|
6
6
|
server.registerTool('get_slow_components', {
|
|
7
7
|
title: 'Get Slow Components',
|
|
@@ -26,10 +26,7 @@ export function registerGetSlowComponents(server) {
|
|
|
26
26
|
.describe('Minimum total actual duration in ms to include. Filters sub-millisecond noise. Defaults to 0.'),
|
|
27
27
|
},
|
|
28
28
|
}, async ({ profileId, limit, sortBy, minDuration }) => {
|
|
29
|
-
const profile =
|
|
30
|
-
if (!profile) {
|
|
31
|
-
throw new Error(`Profile "${profileId}" not found. Call get_render_summary without a profileId to list all loaded profiles.`);
|
|
32
|
-
}
|
|
29
|
+
const profile = requireRenderProfile(profileId);
|
|
33
30
|
const slowComponents = getSlowComponents(profile, limit ?? 10, sortBy ?? 'total', minDuration ?? 0).map((component, index) => ({
|
|
34
31
|
rank: index + 1,
|
|
35
32
|
...component,
|
|
@@ -41,7 +38,11 @@ export function registerGetSlowComponents(server) {
|
|
|
41
38
|
content: [
|
|
42
39
|
{
|
|
43
40
|
type: 'text',
|
|
44
|
-
text: JSON.stringify({
|
|
41
|
+
text: JSON.stringify({
|
|
42
|
+
profileId,
|
|
43
|
+
slowComponents,
|
|
44
|
+
nextStep: `call get_rerender_causes with profileId "${profileId}" to see why these components are rerendering`,
|
|
45
|
+
}, null, 2),
|
|
45
46
|
},
|
|
46
47
|
],
|
|
47
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-slow-components.js","sourceRoot":"","sources":["../../src/tools/get-slow-components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-slow-components.js","sourceRoot":"","sources":["../../src/tools/get-slow-components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,uGAAuG;QACzG,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;iBACjC,QAAQ,EAAE;iBACV,QAAQ,CACP,sHAAsH,CACvH;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CACP,+FAA+F,CAChG;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,iBAAiB,CACtC,OAAO,EACP,KAAK,IAAI,EAAE,EACX,MAAM,IAAI,OAAO,EACjB,WAAW,IAAI,CAAC,CACjB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,KAAK,GAAG,CAAC;YACf,GAAG,SAAS;YACZ,mBAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC5D,qBAAqB,EAAE,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CAAC;YAChE,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC;SACzD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,SAAS;wBACT,cAAc;wBACd,QAAQ,EAAE,4CAA4C,SAAS,+CAA+C;qBAC/G,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-render-profile.d.ts","sourceRoot":"","sources":["../../src/tools/load-render-profile.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"load-render-profile.d.ts","sourceRoot":"","sources":["../../src/tools/load-render-profile.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2CjE"}
|
|
@@ -31,6 +31,7 @@ export function registerLoadRenderProfile(server) {
|
|
|
31
31
|
commitCount: profile.commits.length,
|
|
32
32
|
componentCount: profile.components.length,
|
|
33
33
|
totalCommitDuration: formatMs(profile.totalCommitDuration),
|
|
34
|
+
nextStep: `call get_render_summary with profileId "${profile.id}"`,
|
|
34
35
|
}, null, 2),
|
|
35
36
|
},
|
|
36
37
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-render-profile.js","sourceRoot":"","sources":["../../src/tools/load-render-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,8CAA8C;YAC9C,gLAAgL;YAChL,8HAA8H;QAChI,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,oEAAoE,CAAC;SAClF;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE5B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;wBACnC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;wBACzC,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"load-render-profile.js","sourceRoot":"","sources":["../../src/tools/load-render-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,8CAA8C;YAC9C,gLAAgL;YAChL,8HAA8H;QAChI,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,oEAAoE,CAAC;SAClF;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE5B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;wBACnC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;wBACzC,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBAC1D,QAAQ,EAAE,2CAA2C,OAAO,CAAC,EAAE,GAAG;qBACnE,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-render-capture.d.ts","sourceRoot":"","sources":["../../src/tools/stop-render-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"stop-render-capture.d.ts","sourceRoot":"","sources":["../../src/tools/stop-render-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0FjE"}
|
|
@@ -43,10 +43,14 @@ export function registerStopRenderCapture(server) {
|
|
|
43
43
|
if (commitCount === 0) {
|
|
44
44
|
const warning = session.profilingAvailable === false
|
|
45
45
|
? 'No commits captured. The app reported profiling-hooks-status: false — ' +
|
|
46
|
-
|
|
47
|
-
'
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
"this means the app is running a plain production build. React's profiling hooks are only " +
|
|
47
|
+
'compiled in by `next dev`, or `next build --profile` followed by `next start` — a plain ' +
|
|
48
|
+
'`next build`/`next start` will not work.'
|
|
49
|
+
: 'No commits captured, even though profiling hooks were available. The most common cause is ' +
|
|
50
|
+
'timing: instrument() must run before React initializes (a static top-level import in your ' +
|
|
51
|
+
'client entry module), not inside a useEffect or a mounted component — by the time a component ' +
|
|
52
|
+
'mounts, React has already decided whether to install its hooks. Also confirm you interacted ' +
|
|
53
|
+
'with the app while the session was active.';
|
|
50
54
|
return {
|
|
51
55
|
content: [
|
|
52
56
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-render-capture.js","sourceRoot":"","sources":["../../src/tools/stop-render-capture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,0FAA0F;YAC1F,mFAAmF;YACnF,2CAA2C;QAC7C,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SACjF;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,SAAS,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAE3C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GACX,OAAO,CAAC,kBAAkB,KAAK,KAAK;gBAClC,CAAC,CAAC,wEAAwE;oBACxE,
|
|
1
|
+
{"version":3,"file":"stop-render-capture.js","sourceRoot":"","sources":["../../src/tools/stop-render-capture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perfonext/render-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "MCP server for analyzing Next.js React Profiler exports: render summaries, rerender causes, hot commits, and profile diffing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|