Decouple run telemetry context from providers#12925
Conversation
📝 WalkthroughWalkthroughExtracts the ChangesRun-button telemetry refactor and AppMode extraction
Sequence Diagram(s)sequenceDiagram
participant Caller as useCoreCommands / SubscribeToRun / ui.ts
participant useRunButtonTelemetry
participant getRunButtonTelemetryProperties
participant getExecutionContext
participant useAppMode
participant getShellLayoutSnapshot
participant TelemetryRegistry
participant Provider as GTM / Mixpanel / PostHog
Caller->>useRunButtonTelemetry: trackRunButton(options?)
useRunButtonTelemetry->>getRunButtonTelemetryProperties: build(options)
getRunButtonTelemetryProperties->>getExecutionContext: fetch workflow & node data
getRunButtonTelemetryProperties->>useAppMode: fetch view_mode, is_app_mode
getRunButtonTelemetryProperties->>getShellLayoutSnapshot: fetch dock_state
getRunButtonTelemetryProperties-->>useRunButtonTelemetry: RunButtonProperties
useRunButtonTelemetry->>TelemetryRegistry: trackRunButton(RunButtonProperties)
TelemetryRegistry->>Provider: trackRunButton(RunButtonProperties)
Provider-->>TelemetryRegistry: dispatched event
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error, 1 warning)
✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #12925 +/- ##
========================================
Coverage 76.20% 76.20%
========================================
Files 1569 1571 +2
Lines 102069 102065 -4
Branches 31751 31047 -704
========================================
- Hits 77783 77782 -1
+ Misses 23463 23457 -6
- Partials 823 826 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 7 files with indirect coverage changes 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 23d479a772
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| export function useRunButtonTelemetry() { | ||
| function trackRunButton(options?: RunButtonTelemetryOptions): void { | ||
| useTelemetry()?.trackRunButton(getRunButtonTelemetryProperties(options)) |
There was a problem hiding this comment.
Keep telemetry payload failures from blocking runs
When telemetry is enabled, this evaluates getRunButtonTelemetryProperties() before entering TelemetryRegistry.trackRunButton, so exceptions from context collection such as getExecutionContext() or getActionbarDockState() now occur outside the registry's provider-level try/catch. In cloud, a telemetry-only failure while collecting graph context or reading storage will bubble through the Queue/Subscribe click handlers and prevent the workflow from queueing or the subscription dialog from opening; previously those failures were isolated inside provider dispatch. Please guard payload construction so telemetry cannot block the user action.
Useful? React with 👍 / 👎.
|
Made two more improvements. |
bfab471 to
128e035
Compare
128e035 to
0fcbdb0
Compare
|
Deployment failed with the following error: Learn More: https://vercel.com/uy-tieu-s-projects?upgradeToPro=build-rate-limit |
🎭 Playwright: ✅ 1667 passed, 0 failed · 3 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle: 7.44 MB gzip 🟢 -1.02 kBDetailsSummary
Category Glance App Entry Points — 45.8 kB (baseline 45.8 kB) • 🔴 +1 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.25 MB (baseline 1.25 MB) • 🟢 -108 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 95.3 kB (baseline 95.3 kB) • 🔴 +6 BTop-level views, pages, and routed surfaces
Status: 12 added / 12 removed Panels & Settings — 523 kB (baseline 523 kB) • 🔴 +6 BConfiguration panels, inspectors, and settings screens
Status: 10 added / 10 removed / 14 unchanged User & Accounts — 19.9 kB (baseline 19.9 kB) • 🔴 +1 BAuthentication, profile, and account management bundles
Status: 7 added / 7 removed / 2 unchanged Editors & Dialogs — 112 kB (baseline 112 kB) • 🔴 +2 BModals, dialogs, drawers, and in-app editors
Status: 5 added / 5 removed UI Components — 57.2 kB (baseline 57.2 kB) • 🟢 -1 BReusable component library chunks
Status: 13 added / 13 removed Data & Services — 266 kB (baseline 266 kB) • 🔴 +1 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 2 unchanged Utilities & Hooks — 3.32 MB (baseline 3.31 MB) • 🔴 +5.11 kBHelpers, composables, and utility bundles
Status: 23 added / 23 removed / 7 unchanged Vendor & Third-Party — 15.3 MB (baseline 15.3 MB) • 🟢 -87 BExternal libraries and shared vendor chunks
Status: 4 added / 4 removed / 12 unchanged Other — 10.4 MB (baseline 10.4 MB) • 🔴 +15 BBundles that do not match a named category
Status: 96 added / 96 removed / 52 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-06-19T01:55:42.581Z",
"gitSha": "948c15c227e57195caedd81f8c069add4398852d",
"branch": "bl/telemetry-run-button-context",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2011.9499999999846,
"styleRecalcs": 3,
"styleRecalcDurationMs": 3.949999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 386.342,
"heapDeltaBytes": 18854512,
"heapUsedBytes": 64859408,
"domNodes": 6,
"jsHeapTotalBytes": 18874368,
"scriptDurationMs": 21.244000000000003,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2054.6359999999595,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.128999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 441.638,
"heapDeltaBytes": -2369452,
"heapUsedBytes": 55890860,
"domNodes": 20,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 27.929000000000002,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1834.066000000007,
"styleRecalcs": 75,
"styleRecalcDurationMs": 38.760000000000005,
"layouts": 12,
"layoutDurationMs": 3.501,
"taskDurationMs": 814.1030000000001,
"heapDeltaBytes": -7288752,
"heapUsedBytes": 51256328,
"domNodes": 59,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 135.02999999999997,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1790.0240000000167,
"styleRecalcs": 75,
"styleRecalcDurationMs": 38.013,
"layouts": 12,
"layoutDurationMs": 3.3350000000000004,
"taskDurationMs": 779.758,
"heapDeltaBytes": -7541804,
"heapUsedBytes": 50737280,
"domNodes": 58,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 128.01,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1741.2459999999896,
"styleRecalcs": 31,
"styleRecalcDurationMs": 17.471,
"layouts": 6,
"layoutDurationMs": 0.544,
"taskDurationMs": 335.188,
"heapDeltaBytes": 1825128,
"heapUsedBytes": 60137296,
"domNodes": 77,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 26.973999999999997,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1726.6029999999546,
"styleRecalcs": 31,
"styleRecalcDurationMs": 18.695999999999998,
"layouts": 6,
"layoutDurationMs": 0.77,
"taskDurationMs": 322.534,
"heapDeltaBytes": 1457352,
"heapUsedBytes": 60135328,
"domNodes": 77,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 22.199999999999996,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 627.6610000000176,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.346,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 412.52299999999997,
"heapDeltaBytes": -18997392,
"heapUsedBytes": 48820264,
"domNodes": -282,
"jsHeapTotalBytes": 11460608,
"scriptDurationMs": 57.63499999999999,
"eventListeners": -201,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 575.6339999999796,
"styleRecalcs": 13,
"styleRecalcDurationMs": 8.771999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 365.26,
"heapDeltaBytes": 7577820,
"heapUsedBytes": 65893396,
"domNodes": 22,
"jsHeapTotalBytes": 18612224,
"scriptDurationMs": 66.309,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2000.8810000000494,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.939,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 613.6089999999999,
"heapDeltaBytes": -10032796,
"heapUsedBytes": 61909356,
"domNodes": 20,
"jsHeapTotalBytes": 10104832,
"scriptDurationMs": 121.93100000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2014.521000000002,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.806,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 581.9019999999999,
"heapDeltaBytes": -8870692,
"heapUsedBytes": 61603680,
"domNodes": 22,
"jsHeapTotalBytes": 10629120,
"scriptDurationMs": 108.13400000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2077.6759999999967,
"styleRecalcs": 68,
"styleRecalcDurationMs": 17.986999999999995,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1046.023,
"heapDeltaBytes": 9612396,
"heapUsedBytes": 82262872,
"domNodes": 16,
"jsHeapTotalBytes": 10018816,
"scriptDurationMs": 380.255,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2156.0719999999947,
"styleRecalcs": 69,
"styleRecalcDurationMs": 19.578000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1184.719,
"heapDeltaBytes": 12070200,
"heapUsedBytes": 84943316,
"domNodes": 16,
"jsHeapTotalBytes": 11067392,
"scriptDurationMs": 452.81699999999995,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3123.034999999959,
"styleRecalcs": 66,
"styleRecalcDurationMs": 20.401000000000003,
"layouts": 60,
"layoutDurationMs": 7.566999999999999,
"taskDurationMs": 1346.0189999999998,
"heapDeltaBytes": 13828340,
"heapUsedBytes": 68675996,
"domNodes": 16,
"jsHeapTotalBytes": 7602176,
"scriptDurationMs": 508.388,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3139.230999999995,
"styleRecalcs": 66,
"styleRecalcDurationMs": 20.208999999999996,
"layouts": 60,
"layoutDurationMs": 7.384,
"taskDurationMs": 1308.526,
"heapDeltaBytes": 13634576,
"heapUsedBytes": 68597148,
"domNodes": 14,
"jsHeapTotalBytes": 7077888,
"scriptDurationMs": 497.02900000000005,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "minimap-idle",
"durationMs": 1996.6989999999782,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.113,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 556.784,
"heapDeltaBytes": -10564128,
"heapUsedBytes": 63024872,
"domNodes": 18,
"jsHeapTotalBytes": 7745536,
"scriptDurationMs": 99.61599999999999,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2020.1459999999543,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.845999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 538.7610000000001,
"heapDeltaBytes": -9073976,
"heapUsedBytes": 62679820,
"domNodes": 20,
"jsHeapTotalBytes": 9842688,
"scriptDurationMs": 106.247,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 598.021000000017,
"styleRecalcs": 47,
"styleRecalcDurationMs": 11.921000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 388.71199999999993,
"heapDeltaBytes": 8387648,
"heapUsedBytes": 66958600,
"domNodes": 20,
"jsHeapTotalBytes": 19136512,
"scriptDurationMs": 130.673,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666682,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 588.1829999999582,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.078000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 409.419,
"heapDeltaBytes": -22421904,
"heapUsedBytes": 46291284,
"domNodes": -291,
"jsHeapTotalBytes": 7266304,
"scriptDurationMs": 121.084,
"eventListeners": -195,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 1991.4430000000038,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.687999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 405.793,
"heapDeltaBytes": -2443520,
"heapUsedBytes": 56204108,
"domNodes": 22,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 21.862,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2020.8259999999996,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.625000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 410.34100000000007,
"heapDeltaBytes": -2754932,
"heapUsedBytes": 55952192,
"domNodes": 22,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 22.298000000000002,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1688.2459999999924,
"styleRecalcs": 75,
"styleRecalcDurationMs": 36.824999999999996,
"layouts": 16,
"layoutDurationMs": 4.555,
"taskDurationMs": 687.829,
"heapDeltaBytes": -11121420,
"heapUsedBytes": 47619072,
"domNodes": 61,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 96.187,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1684.3609999999671,
"styleRecalcs": 77,
"styleRecalcDurationMs": 37.565,
"layouts": 16,
"layoutDurationMs": 4.15,
"taskDurationMs": 681.963,
"heapDeltaBytes": -11076624,
"heapUsedBytes": 47627232,
"domNodes": 66,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 94.867,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 984.8220000000083,
"styleRecalcs": 16,
"styleRecalcDurationMs": 28.347000000000005,
"layouts": 4,
"layoutDurationMs": 14.161,
"taskDurationMs": 744.739,
"heapDeltaBytes": 4712368,
"heapUsedBytes": 79895324,
"domNodes": 13833,
"jsHeapTotalBytes": 17301504,
"scriptDurationMs": 28.324,
"eventListeners": 2529,
"totalBlockingTimeMs": 160,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8180.363000000057,
"styleRecalcs": 252,
"styleRecalcDurationMs": 57.366,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4006.3909999999996,
"heapDeltaBytes": -113224,
"heapUsedBytes": 69972492,
"domNodes": 20,
"jsHeapTotalBytes": 20242432,
"scriptDurationMs": 1344.824,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.669999999999952,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8101.267000000007,
"styleRecalcs": 250,
"styleRecalcDurationMs": 53.991,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3767.157,
"heapDeltaBytes": -4858420,
"heapUsedBytes": 67156092,
"domNodes": 20,
"jsHeapTotalBytes": 15261696,
"scriptDurationMs": 1243.316,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13032.690000000002,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13016.062999999998,
"heapDeltaBytes": -54525508,
"heapUsedBytes": 156703232,
"domNodes": -3308,
"jsHeapTotalBytes": 19632128,
"scriptDurationMs": 631.179,
"eventListeners": -16472,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12940.938999999958,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12924.803999999998,
"heapDeltaBytes": -38503352,
"heapUsedBytes": 170092060,
"domNodes": -3308,
"jsHeapTotalBytes": 21991424,
"scriptDurationMs": 603.3380000000001,
"eventListeners": -16474,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 15173.562000000004,
"styleRecalcs": 71,
"styleRecalcDurationMs": 18.05899999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 15149.480000000001,
"heapDeltaBytes": -36249384,
"heapUsedBytes": 157734824,
"domNodes": -3308,
"jsHeapTotalBytes": 20680704,
"scriptDurationMs": 943.6949999999999,
"eventListeners": -16473,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333237,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14964.270999999939,
"styleRecalcs": 69,
"styleRecalcDurationMs": 17.825000000000035,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14942.09,
"heapDeltaBytes": -53411216,
"heapUsedBytes": 158980900,
"domNodes": -3337,
"jsHeapTotalBytes": 19369984,
"scriptDurationMs": 903.2860000000001,
"eventListeners": -16468,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 447.2729999999956,
"styleRecalcs": 16,
"styleRecalcDurationMs": 21.822,
"layouts": 5,
"layoutDurationMs": 1.379,
"taskDurationMs": 115.948,
"heapDeltaBytes": 5460872,
"heapUsedBytes": 65143948,
"domNodes": 168,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 20.695999999999998,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 459.6569999999929,
"styleRecalcs": 18,
"styleRecalcDurationMs": 24.406,
"layouts": 5,
"layoutDurationMs": 1.408,
"taskDurationMs": 118.91799999999999,
"heapDeltaBytes": 5185472,
"heapUsedBytes": 64900920,
"domNodes": 157,
"jsHeapTotalBytes": 2883584,
"scriptDurationMs": 18.359,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Summary
Move run-button context assembly out of telemetry providers so telemetry can initialize without importing app-mode/workspace state.
Changes
RunButtonProperties; run-button call sites use a workspace composable to build that payload.