@buoy-gg/mcp 7.0.45 → 7.0.47

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/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{ALL_DEVICES as e,BROKER_PORT as o,BROKER_URL as r,DASHBOARD_NAME as t,DEFAULT_ACTION_TIMEOUT_MS as s,DEFAULT_SNAPSHOT_TIMEOUT_MS as i,PACKAGE_NAME as T,SyncClient as n,VERSION as a,buildAutomationConfig as g,compareReportStats as l,createMcpServer as E,estimateBatchMs as R,formatRankingMarkdown as A,getUpdateNotice as S,rankBatchFromIndex as _,registerConsoleTools as c,registerEventsTools as M,registerGenericTools as O,registerJotaiTools as m,registerPerfMonitorTools as u,registerReactQueryTools as I,registerReduxTools as d,registerRoutesTools as p,registerScreenshotTools as C,registerStorageTools as N,registerZustandTools as U,runInit as B}from"./chunk-GFFMF22U.mjs";export{e as ALL_DEVICES,o as BROKER_PORT,r as BROKER_URL,t as DASHBOARD_NAME,s as DEFAULT_ACTION_TIMEOUT_MS,i as DEFAULT_SNAPSHOT_TIMEOUT_MS,T as PACKAGE_NAME,n as SyncClient,a as VERSION,g as buildAutomationConfig,l as compareReportStats,E as createMcpServer,R as estimateBatchMs,A as formatRankingMarkdown,S as getUpdateNotice,_ as rankBatchFromIndex,c as registerConsoleTools,M as registerEventsTools,O as registerGenericTools,m as registerJotaiTools,u as registerPerfMonitorTools,I as registerReactQueryTools,d as registerReduxTools,p as registerRoutesTools,C as registerScreenshotTools,N as registerStorageTools,U as registerZustandTools,B as runInit};
1
+ import{ALL_DEVICES as e,BROKER_PORT as o,BROKER_URL as r,DASHBOARD_NAME as t,DEFAULT_ACTION_TIMEOUT_MS as s,DEFAULT_SNAPSHOT_TIMEOUT_MS as i,PACKAGE_NAME as T,SyncClient as n,VERSION as a,buildAutomationConfig as g,compareReportStats as l,createMcpServer as E,estimateBatchMs as R,formatRankingMarkdown as A,getUpdateNotice as S,rankBatchFromIndex as _,registerConsoleTools as c,registerEventsTools as M,registerGenericTools as O,registerJotaiTools as m,registerPerfMonitorTools as u,registerReactQueryTools as I,registerReduxTools as d,registerRoutesTools as p,registerScreenshotTools as C,registerStorageTools as N,registerZustandTools as U,runInit as B}from"./chunk-QF624MC2.mjs";export{e as ALL_DEVICES,o as BROKER_PORT,r as BROKER_URL,t as DASHBOARD_NAME,s as DEFAULT_ACTION_TIMEOUT_MS,i as DEFAULT_SNAPSHOT_TIMEOUT_MS,T as PACKAGE_NAME,n as SyncClient,a as VERSION,g as buildAutomationConfig,l as compareReportStats,E as createMcpServer,R as estimateBatchMs,A as formatRankingMarkdown,S as getUpdateNotice,_ as rankBatchFromIndex,c as registerConsoleTools,M as registerEventsTools,O as registerGenericTools,m as registerJotaiTools,u as registerPerfMonitorTools,I as registerReactQueryTools,d as registerReduxTools,p as registerRoutesTools,C as registerScreenshotTools,N as registerStorageTools,U as registerZustandTools,B as runInit};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@buoy-gg/mcp",
3
3
  "mcpName": "io.github.Buoy-gg/mcp",
4
- "version": "7.0.45",
4
+ "version": "7.0.47",
5
5
  "buoy": {
6
6
  "dashboardAuthVersion": 1
7
7
  },
@@ -35,8 +35,8 @@
35
35
  "socket.io-client": "^4.8.1",
36
36
  "zod": "^3.25.0",
37
37
  "ws": "^8.18.0",
38
- "@buoy-gg/sync-broker": "^7.0.45",
39
- "@buoy-gg/license": "^7.0.45"
38
+ "@buoy-gg/license": "^7.0.47",
39
+ "@buoy-gg/sync-broker": "^7.0.47"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^22.0.0",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: buoy-optimize
3
- description: Use when the user asks to investigate a slow React Native screen or compare rendering approaches with a connected Buoy MCP server. Measure a baseline and selected variants, check visual behavior, and explain the observed performance trade-offs. Triggers include "buoy optimize", "optimize this screen", "find the fastest way to render X", and "why is this laggy".
3
+ description: Use when the user asks to investigate a slow React Native or web screen or compare rendering approaches with a connected Buoy MCP server. Measure a baseline and selected variants, check visual behavior, and explain the observed performance trade-offs. Triggers include "buoy optimize", "optimize this screen", "find the fastest way to render X", and "why is this laggy".
4
4
  ---
5
5
 
6
6
  # Optimize React Native rendering with Buoy
@@ -53,6 +53,47 @@ Keep candidates that meet the behavior requirements and offer a useful measured
53
53
 
54
54
  Stop when the requested issue is resolved with appropriate checks, the agreed budget is reached, or further measurements require unavailable hardware or input. Report the selected implementation, baseline, workload, device/build conditions, settings, observed differences, failures and remaining uncertainty. Distinguish completed checks from proposed follow-up tests. Validation on one device does not establish results for all devices on that platform.
55
55
 
56
+ ## When the target is a browser
57
+
58
+ `list_devices` shows `platform: "web"` for a browser tab. There, Bench measures the page's own main thread. The report uses a browser table with different columns.
59
+
60
+ Read it this way:
61
+
62
+ - FPS is the main thread's frame rate from `requestAnimationFrame`. It can't see frames the GPU or compositor drops later. It shows once, because a page has one main thread.
63
+ - p95 frame gap, worst gap and long frames come from the time between frames in that run. A gap over 1.5 frames missed at least one frame.
64
+ - Long tasks % is the share of the run the main thread spent in tasks over 50 ms. It is not CPU use, and it misses many shorter tasks.
65
+ - A metric the browser can't measure shows as —. Safari and Firefox have no long tasks or JS heap. A — can't win or lose.
66
+
67
+ Set up the run:
68
+
69
+ - Keep the tab in front and the window the same size. A run with a hidden tab or a resize is saved as a failure.
70
+ - Rank on a production build when you can. Dev React is slower and can pick a different winner. Put the test page behind its own bench flag, not just `__DEV__`. Keep it out of public builds. If you ranked on a dev build, say so in the report.
71
+ - Keep DevTools closed while ranking. Record the screen size and pixel ratio. A pixel ratio of 3 draws 9 times the canvas pixels of 1.
72
+
73
+ Test in this order, and tell the user which step you are on:
74
+
75
+ 1. Desktop Chrome.
76
+ 2. The same page with Chrome's CPU slowed 4x and 6x. Set this in the DevTools Performance panel. Close DevTools before the batch, and record the setting. This slows the CPU only, not the GPU, memory or heat.
77
+ 3. A real iPhone in Safari.
78
+ 4. A real mid-range Android phone in Chrome.
79
+ 5. Desktop Firefox and Safari, if the user supports them.
80
+
81
+ Take a quick look in Safari early, so you don't spend rounds on an idea that breaks there.
82
+
83
+ Ideas to try for heavy drawing on web:
84
+
85
+ - Canvas2D with pre-drawn sprites.
86
+ - WebGL with one draw call for many items.
87
+ - An OffscreenCanvas in a worker.
88
+ - CSS or Web Animations API transforms. The compositor can run these.
89
+ - List windowing, and `content-visibility` for things off screen.
90
+
91
+ Traps on react-native-web:
92
+
93
+ - `Animated` with `useNativeDriver` still runs on the main thread.
94
+ - Reanimated worklets run as plain JS on the main thread.
95
+ - Skia on web loads CanvasKit, a large WASM file. Count its load time and first draw.
96
+
56
97
  ## Tool reference
57
98
 
58
99
  | Tool | Use |