Skip to content

fix: sanitize null/NaN widget values when loading workflows#11884

Open
kaili-yang wants to merge 3 commits intomainfrom
fix/sanitize-nan-widget-values
Open

fix: sanitize null/NaN widget values when loading workflows#11884
kaili-yang wants to merge 3 commits intomainfrom
fix/sanitize-nan-widget-values

Conversation

@kaili-yang
Copy link
Copy Markdown
Collaborator

@kaili-yang kaili-yang commented May 4, 2026

Summary

When a workflow JSON contains null in widgets_values for a numeric widget (which happens when a widget's value is NaN and gets JSON-serialized — JSON.stringify(NaN) === "null"), the value was directly assigned to the widget without any sanitization.

With control_after_generate set to fixed, the null value is preserved through graphToPrompt and sent to the backend as null, causing:

int() argument must be a string, a bytes-like object or a real number, not 'NoneType'

Root cause: LGraphNode.configure (LGraphNode.ts:922) had no guard against null/NaN in widgets_values for numeric widget types.

Fix: In the configure loop, skip the assignment when the incoming value is null/undefined/NaN and the widget is a numeric type (number, slider, knob). The widget retains its initial default value instead.

Red-Green Verification

Commit Purpose
test: add failing tests for null/NaN numeric widget value sanitization on configure Proves the test catches the bug (CI red)
fix: sanitize null/NaN widget values when loading workflows Proves the fix resolves the bug (CI green)

Test Plan

before
Screenshot 2026-05-03 at 8 56 31 PM
after
Screenshot 2026-05-03 at 9 05 57 PM


Note

Medium Risk
Touches workflow/node deserialization: numeric widget values from widgets_values are now conditionally ignored, which could change how some saved graphs load if they previously relied on null/non-finite numbers being applied.

Overview
Prevents invalid numeric widget values from being applied when loading a node from serialized data: LGraphNode.configure now skips assigning widgets_values entries that are null, undefined, or non-finite for numeric widget types (number, slider, knob), leaving the widget’s existing default intact.

Adds a focused Vitest suite covering null (including JSON round-tripped NaN), NaN, normal numeric values, and ensuring non-numeric widgets are unaffected.

Reviewed by Cursor Bugbot for commit 5013d81. Bugbot is set up for automated code reviews on this repo. Configure here.

@kaili-yang kaili-yang requested a review from a team May 4, 2026 04:04
@dosubot dosubot Bot added the size:S This PR changes 10-29 lines, ignoring generated files. label May 4, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7bc3d918-8cca-4ecd-b8bb-ff37329cc691

📥 Commits

Reviewing files that changed from the base of the PR and between 5013d81 and 92162df.

📒 Files selected for processing (2)
  • src/lib/litegraph/src/LGraphNode.configure.test.ts
  • src/lib/litegraph/src/LGraphNode.ts
✅ Files skipped from review due to trivial changes (1)
  • src/lib/litegraph/src/LGraphNode.configure.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/lib/litegraph/src/LGraphNode.ts

📝 Walkthrough

Walkthrough

Adds sanitization in LGraphNode.configure(): numeric-like widgets (number, slider, gradientslider, knob) skip assigning incoming null, undefined, or non-finite values, while non-numeric widgets keep previous behavior. A Vitest suite exercises null, NaN, and valid numeric cases plus a non-numeric text case.

Changes

Widget Value Sanitization in Node Configuration

Layer / File(s) Summary
Core Implementation
src/lib/litegraph/src/LGraphNode.ts
During configure(), incoming widget values are read and, for types number, slider, gradientslider, knob, assignment is skipped if the incoming value is null, undefined, or not finite. Previously values were assigned unconditionally.
Tests
src/lib/litegraph/src/LGraphNode.configure.test.ts
Adds tests that ensure numeric widgets preserve defaults when given null or NaN, accept valid numeric values, and that a non-numeric text widget preserves null (no sanitization).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through nodes and found a clue,
Nulls and NaNs no longer break the view,
Numbers stay steady, defaults keep warm,
Text stays as-text through every storm,
Tests applaud the fix—hooray, woohoo! 🥕


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore (reviewers only)

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
End-To-End Regression Coverage For Fixes ❌ Error PR uses bug-fix language ('fix:') but lacks browser_tests/ changes or explanation of why E2E regression testing was not added. Add Playwright regression test under browser_tests/ or provide concrete explanation in PR description of why E2E testing is not practical.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix: sanitize null/NaN widget values when loading workflows' clearly and concisely describes the main change: preventing invalid numeric values from being applied to widgets during deserialization.
Description check ✅ Passed The description is comprehensive and follows the template structure: it includes a clear Summary section explaining the problem and fix, detailed Changes section describing what was modified, explains the root cause, provides Red-Green verification with commit messages, and includes test plans with before/after screenshots demonstrating the fix.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Adr Compliance For Entity/Litegraph Changes ✅ Passed The PR modifies only internal validation logic within LGraphNode.configure() method to guard against null/NaN values in numeric widgets, introducing no new methods, properties, or extension-facing callbacks.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/sanitize-nan-widget-values

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.

❤️ Share
Review rate limit: 6/8 reviews remaining, refill in 8 minutes and 49 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

🎭 Playwright: ✅ 1461 passed, 0 failed · 3 flaky

📊 Browser Reports
  • chromium: View Report (✅ 1442 / ❌ 0 / ⚠️ 3 / ⏭️ 5)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 16 / ❌ 0 / ⚠️ 0 / ⏭️ 0)

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 05/04/2026, 04:09:35 AM UTC

Links

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5013d81. Configure here.

Comment thread src/lib/litegraph/src/LGraphNode.ts Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

📦 Bundle: 5.26 MB gzip 🟢 -2.06 kB

Details

Summary

  • Raw size: 24.2 MB baseline 24.2 MB — 🟢 -8.93 kB
  • Gzip: 5.26 MB baseline 5.26 MB — 🟢 -2.06 kB
  • Brotli: 4.07 MB baseline 4.07 MB — 🟢 -1.42 kB
  • Bundles: 258 current • 258 baseline • 118 added / 118 removed

Category Glance
Data & Services 🟢 -8.93 kB (3.04 MB) · Vendor & Third-Party ⚪ 0 B (9.94 MB) · Other ⚪ 0 B (8.84 MB) · Graph Workspace ⚪ 0 B (1.24 MB) · Panels & Settings ⚪ 0 B (489 kB) · Utilities & Hooks ⚪ 0 B (365 kB) · + 5 more

App Entry Points — 22.6 kB (baseline 22.6 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-0YDVVNxK.js (new) 22.6 kB 🔴 +22.6 kB 🔴 +8 kB 🔴 +6.87 kB
assets/index-DnU2wpu3.js (removed) 22.6 kB 🟢 -22.6 kB 🟢 -8 kB 🟢 -6.87 kB

Status: 1 added / 1 removed

Graph Workspace — 1.24 MB (baseline 1.24 MB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-CARY76n7.js (new) 1.24 MB 🔴 +1.24 MB 🔴 +265 kB 🔴 +199 kB
assets/GraphView-DQEchrsF.js (removed) 1.24 MB 🟢 -1.24 MB 🟢 -265 kB 🟢 -199 kB

Status: 1 added / 1 removed

Views & Navigation — 81.8 kB (baseline 81.8 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-CBu00oio.js (removed) 19.6 kB 🟢 -19.6 kB 🟢 -5.14 kB 🟢 -4.57 kB
assets/CloudSurveyView-qT5C5NFR.js (new) 19.6 kB 🔴 +19.6 kB 🔴 +5.14 kB 🔴 +4.58 kB
assets/CloudLoginView--WKpLdkm.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -3.45 kB 🟢 -3.05 kB
assets/CloudLoginView-I1WdaoW4.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +3.45 kB 🔴 +3.05 kB
assets/CloudSignupView-BkZ5b80d.js (new) 9.97 kB 🔴 +9.97 kB 🔴 +2.95 kB 🔴 +2.6 kB
assets/CloudSignupView-CrYUB7rl.js (removed) 9.97 kB 🟢 -9.97 kB 🟢 -2.95 kB 🟢 -2.6 kB
assets/UserCheckView-C23eYb9f.js (new) 9.07 kB 🔴 +9.07 kB 🔴 +2.34 kB 🔴 +2.04 kB
assets/UserCheckView-DMuWIRir.js (removed) 9.07 kB 🟢 -9.07 kB 🟢 -2.33 kB 🟢 -2.04 kB
assets/CloudLayoutView-DXHA84Qk.js (new) 7.73 kB 🔴 +7.73 kB 🔴 +2.46 kB 🔴 +2.15 kB
assets/CloudLayoutView-WWhAqj9t.js (removed) 7.73 kB 🟢 -7.73 kB 🟢 -2.46 kB 🟢 -2.15 kB
assets/CloudForgotPasswordView-D793OyMx.js (removed) 6.14 kB 🟢 -6.14 kB 🟢 -2.19 kB 🟢 -1.91 kB
assets/CloudForgotPasswordView-DgsrhMP-.js (new) 6.14 kB 🔴 +6.14 kB 🔴 +2.19 kB 🔴 +1.95 kB
assets/CloudAuthTimeoutView-CN5DPhwU.js (new) 5.5 kB 🔴 +5.5 kB 🔴 +2.02 kB 🔴 +1.78 kB
assets/CloudAuthTimeoutView-DPfbTunS.js (removed) 5.5 kB 🟢 -5.5 kB 🟢 -2.02 kB 🟢 -1.79 kB
assets/CloudSubscriptionRedirectView-BwcfxoII.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -2 kB 🟢 -1.79 kB
assets/CloudSubscriptionRedirectView-CsqWieS8.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +2 kB 🔴 +1.78 kB
assets/UserSelectView-BFXCJ0ra.js (removed) 4.73 kB 🟢 -4.73 kB 🟢 -1.76 kB 🟢 -1.55 kB
assets/UserSelectView-DZRTW73O.js (new) 4.73 kB 🔴 +4.73 kB 🔴 +1.75 kB 🔴 +1.55 kB

Status: 9 added / 9 removed / 2 unchanged

Panels & Settings — 489 kB (baseline 489 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-ChG02WZk.js (removed) 46.7 kB 🟢 -46.7 kB 🟢 -9.62 kB 🟢 -8.56 kB
assets/KeybindingPanel-DrpFCsCK.js (new) 46.7 kB 🔴 +46.7 kB 🔴 +9.62 kB 🔴 +8.55 kB
assets/SecretsPanel-BoKQRaTb.js (removed) 22.9 kB 🟢 -22.9 kB 🟢 -5.55 kB 🟢 -4.87 kB
assets/SecretsPanel-GNpO0DS6.js (new) 22.9 kB 🔴 +22.9 kB 🔴 +5.55 kB 🔴 +4.87 kB
assets/LegacyCreditsPanel-Bcrdtmlg.js (new) 21.7 kB 🔴 +21.7 kB 🔴 +5.91 kB 🔴 +5.23 kB
assets/LegacyCreditsPanel-CiQcvvGZ.js (removed) 21.7 kB 🟢 -21.7 kB 🟢 -5.91 kB 🟢 -5.22 kB
assets/SubscriptionPanel-BEO_s2rU.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -5.09 kB 🟢 -4.46 kB
assets/SubscriptionPanel-CQQXjdf1.js (new) 19.9 kB 🔴 +19.9 kB 🔴 +5.09 kB 🔴 +4.48 kB
assets/AboutPanel-ByNehORI.js (new) 12 kB 🔴 +12 kB 🔴 +3.33 kB 🔴 +2.99 kB
assets/AboutPanel-DikWJ3ak.js (removed) 12 kB 🟢 -12 kB 🟢 -3.33 kB 🟢 -2.99 kB
assets/ExtensionPanel-BMjejPhQ.js (new) 9.97 kB 🔴 +9.97 kB 🔴 +2.91 kB 🔴 +2.58 kB
assets/ExtensionPanel-D6119gu7.js (removed) 9.97 kB 🟢 -9.97 kB 🟢 -2.91 kB 🟢 -2.59 kB
assets/ServerConfigPanel-Dhm9-8yv.js (new) 7.05 kB 🔴 +7.05 kB 🔴 +2.36 kB 🔴 +2.1 kB
assets/ServerConfigPanel-kCGAET3H.js (removed) 7.05 kB 🟢 -7.05 kB 🟢 -2.37 kB 🟢 -2.11 kB
assets/UserPanel-69VLTFFq.js (new) 6.75 kB 🔴 +6.75 kB 🔴 +2.25 kB 🔴 +1.98 kB
assets/UserPanel-BBdFQ0zM.js (removed) 6.75 kB 🟢 -6.75 kB 🟢 -2.25 kB 🟢 -1.97 kB
assets/cloudRemoteConfig-CvwrhDmK.js (new) 2.05 kB 🔴 +2.05 kB 🔴 +988 B 🔴 +848 B
assets/cloudRemoteConfig-D3t5iJ4K.js (removed) 2.05 kB 🟢 -2.05 kB 🟢 -989 B 🟢 -848 B
assets/refreshRemoteConfig-D-0tDUmz.js (new) 1.45 kB 🔴 +1.45 kB 🔴 +647 B 🔴 +548 B
assets/refreshRemoteConfig-n4GGQnbx.js (removed) 1.45 kB 🟢 -1.45 kB 🟢 -648 B 🟢 -552 B

Status: 10 added / 10 removed / 11 unchanged

User & Accounts — 17.5 kB (baseline 17.5 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-BLkwS5iF.js (removed) 3.57 kB 🟢 -3.57 kB 🟢 -1.26 kB 🟢 -1.08 kB
assets/auth-Bpla0OK5.js (new) 3.57 kB 🔴 +3.57 kB 🔴 +1.26 kB 🔴 +1.08 kB
assets/SignUpForm-BtAZY6_U.js (new) 3.19 kB 🔴 +3.19 kB 🔴 +1.29 kB 🔴 +1.15 kB
assets/SignUpForm-CXqflNEb.js (removed) 3.19 kB 🟢 -3.19 kB 🟢 -1.29 kB 🟢 -1.15 kB
assets/UpdatePasswordContent-BYFTLbUy.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -1.3 kB 🟢 -1.15 kB
assets/UpdatePasswordContent-D3Z7-HA1.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +1.3 kB 🔴 +1.15 kB
assets/authStore-BaBPKCK-.js (removed) 1.19 kB 🟢 -1.19 kB 🟢 -568 B 🟢 -505 B
assets/authStore-CVUd-_KP.js (new) 1.19 kB 🔴 +1.19 kB 🔴 +569 B 🔴 +509 B
assets/auth-BX6BE486.js (new) 348 B 🔴 +348 B 🔴 +219 B 🔴 +187 B
assets/auth-TddgQqHg.js (removed) 348 B 🟢 -348 B 🟢 -216 B 🟢 -188 B

Status: 5 added / 5 removed / 2 unchanged

Editors & Dialogs — 112 kB (baseline 112 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyHubPublishDialog-CxhK_MiT.js (removed) 85.8 kB 🟢 -85.8 kB 🟢 -18.6 kB 🟢 -15.9 kB
assets/ComfyHubPublishDialog-h2B0dWxU.js (new) 85.8 kB 🔴 +85.8 kB 🔴 +18.6 kB 🔴 +15.9 kB
assets/useShareDialog-CHdZ1MaM.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.78 kB 🟢 -5.13 kB
assets/useShareDialog-CyUV0IuQ.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.78 kB 🔴 +5.12 kB
assets/ComfyHubPublishDialog-DbQ28TED.js (new) 1.35 kB 🔴 +1.35 kB 🔴 +628 B 🔴 +552 B
assets/ComfyHubPublishDialog-De4n05Ys.js (removed) 1.35 kB 🟢 -1.35 kB 🟢 -629 B 🟢 -554 B
assets/useSubscriptionDialog-COsy3C4o.js (new) 1.17 kB 🔴 +1.17 kB 🔴 +560 B 🔴 +490 B
assets/useSubscriptionDialog-D0Cq5Ep2.js (removed) 1.17 kB 🟢 -1.17 kB 🟢 -560 B 🟢 -484 B

Status: 4 added / 4 removed

UI Components — 62.9 kB (baseline 62.9 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-BjUl680A.js (new) 13.5 kB 🔴 +13.5 kB 🔴 +3.79 kB 🔴 +3.38 kB
assets/ComfyQueueButton-ZEFbKQ3o.js (removed) 13.5 kB 🟢 -13.5 kB 🟢 -3.79 kB 🟢 -3.38 kB
assets/useTerminalTabs-DJ3VrNmi.js (new) 11 kB 🔴 +11 kB 🔴 +3.73 kB 🔴 +3.28 kB
assets/useTerminalTabs-DqeG1zN_.js (removed) 11 kB 🟢 -11 kB 🟢 -3.73 kB 🟢 -3.29 kB
assets/SubscribeButton-Cf8wCmMx.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +948 B
assets/SubscribeButton-De1ccFhv.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.05 kB 🟢 -936 B
assets/cloudFeedbackTopbarButton-DgQgW03d.js (removed) 1.83 kB 🟢 -1.83 kB 🟢 -947 B 🟢 -830 B
assets/cloudFeedbackTopbarButton-DsP2Tve-.js (new) 1.83 kB 🔴 +1.83 kB 🔴 +947 B 🔴 +828 B
assets/ComfyQueueButton-DvsAbmaz.js (new) 1.27 kB 🔴 +1.27 kB 🔴 +597 B 🔴 +527 B
assets/ComfyQueueButton-z6l_DW9C.js (removed) 1.27 kB 🟢 -1.27 kB 🟢 -597 B 🟢 -527 B

Status: 5 added / 5 removed / 9 unchanged

Data & Services — 3.04 MB (baseline 3.05 MB) • 🟢 -8.93 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-DAwHmAWz.js (removed) 1.99 MB 🟢 -1.99 MB 🟢 -458 kB 🟢 -347 kB
assets/dialogService-BCyouL-r.js (new) 1.98 MB 🔴 +1.98 MB 🔴 +456 kB 🔴 +345 kB
assets/api-DbujmAGv.js (new) 888 kB 🔴 +888 kB 🔴 +212 kB 🔴 +167 kB
assets/api-DPOly-Nk.js (removed) 887 kB 🟢 -887 kB 🟢 -212 kB 🟢 -167 kB
assets/load3dService-BIz_HJfq.js (new) 115 kB 🔴 +115 kB 🔴 +25 kB 🔴 +21.3 kB
assets/load3dService-DtbjDCh9.js (removed) 115 kB 🟢 -115 kB 🟢 -25 kB 🟢 -21.3 kB
assets/workflowShareService-B-lvEVrK.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.89 kB 🔴 +4.33 kB
assets/workflowShareService-BbHMaYMf.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.89 kB 🟢 -4.34 kB
assets/keybindingService-00_-h18_.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.67 kB 🔴 +3.22 kB
assets/keybindingService-C1hen6Wx.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.67 kB 🟢 -3.22 kB
assets/releaseStore-D1o4_Pwf.js (removed) 8.12 kB 🟢 -8.12 kB 🟢 -2.28 kB 🟢 -2 kB
assets/releaseStore-FpVtz2om.js (new) 8.12 kB 🔴 +8.12 kB 🔴 +2.28 kB 🔴 +2 kB
assets/userStore-DEAIq4Ln.js (removed) 2.24 kB 🟢 -2.24 kB 🟢 -870 B 🟢 -759 B
assets/userStore-j-b4l32z.js (new) 2.24 kB 🔴 +2.24 kB 🔴 +870 B 🔴 +760 B
assets/audioService-0q1bwG0p.js (new) 1.8 kB 🔴 +1.8 kB 🔴 +877 B 🔴 +757 B
assets/audioService-D0yN6GcT.js (removed) 1.8 kB 🟢 -1.8 kB 🟢 -878 B 🟢 -764 B
assets/releaseStore-CJiOdeFz.js (new) 1.19 kB 🔴 +1.19 kB 🔴 +562 B 🔴 +500 B
assets/releaseStore-pOcHZ3up.js (removed) 1.19 kB 🟢 -1.19 kB 🟢 -563 B 🟢 -495 B
assets/workflowDraftStore-BxsGrJTU.js (removed) 1.17 kB 🟢 -1.17 kB 🟢 -559 B 🟢 -494 B
assets/workflowDraftStore-CS5G0Ixh.js (new) 1.17 kB 🔴 +1.17 kB 🔴 +559 B 🔴 +493 B
assets/dialogService-BcVM47GC.js (removed) 1.16 kB 🟢 -1.16 kB 🟢 -551 B 🟢 -488 B
assets/dialogService-DwiGE1ph.js (new) 1.16 kB 🔴 +1.16 kB 🔴 +551 B 🔴 +490 B
assets/settingStore-BvI5g_Eu.js (removed) 1.15 kB 🟢 -1.15 kB 🟢 -554 B 🟢 -485 B
assets/settingStore-CcA2oz9L.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +555 B 🔴 +491 B
assets/assetsStore-CXG6dh-u.js (removed) 1.15 kB 🟢 -1.15 kB 🟢 -554 B 🟢 -486 B
assets/assetsStore-Mee_Fffv.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +555 B 🔴 +492 B

Status: 13 added / 13 removed / 4 unchanged

Utilities & Hooks — 365 kB (baseline 365 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-Cq4oBB43.js (new) 233 kB 🔴 +233 kB 🔴 +51.8 kB 🔴 +42.3 kB
assets/useConflictDetection-D70JTENY.js (removed) 233 kB 🟢 -233 kB 🟢 -51.8 kB 🟢 -42.2 kB
assets/useLoad3d-BJwlEo96.js (removed) 22.3 kB 🟢 -22.3 kB 🟢 -5.09 kB 🟢 -4.51 kB
assets/useLoad3d-DQmNFA_q.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +5.09 kB 🔴 +4.51 kB
assets/useLoad3dViewer-BQA5021v.js (new) 20.8 kB 🔴 +20.8 kB 🔴 +4.91 kB 🔴 +4.31 kB
assets/useLoad3dViewer-Co3ZY_lI.js (removed) 20.8 kB 🟢 -20.8 kB 🟢 -4.91 kB 🟢 -4.3 kB
assets/useFeatureFlags-CqEnxfhM.js (new) 5.95 kB 🔴 +5.95 kB 🔴 +1.79 kB 🔴 +1.53 kB
assets/useFeatureFlags-EksjwOWC.js (removed) 5.95 kB 🟢 -5.95 kB 🟢 -1.79 kB 🟢 -1.53 kB
assets/useCopyToClipboard-BRAdmGNE.js (new) 5.29 kB 🔴 +5.29 kB 🔴 +1.86 kB 🔴 +1.57 kB
assets/useCopyToClipboard-BZWSSh-c.js (removed) 5.29 kB 🟢 -5.29 kB 🟢 -1.86 kB 🟢 -1.57 kB
assets/useWorkspaceUI-BzGiMbk5.js (removed) 3.34 kB 🟢 -3.34 kB 🟢 -982 B 🟢 -811 B
assets/useWorkspaceUI-VaVi9iX0.js (new) 3.34 kB 🔴 +3.34 kB 🔴 +980 B 🔴 +812 B
assets/subscriptionCheckoutUtil-Biefdgyn.js (new) 3.31 kB 🔴 +3.31 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/subscriptionCheckoutUtil-DzIFGzhc.js (removed) 3.31 kB 🟢 -3.31 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/assetPreviewUtil-DJ2fA5-l.js (removed) 2.27 kB 🟢 -2.27 kB 🟢 -959 B 🟢 -835 B
assets/assetPreviewUtil-i8UtleOZ.js (new) 2.27 kB 🔴 +2.27 kB 🔴 +953 B 🔴 +831 B
assets/useUpstreamValue-B1YIrzgh.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -805 B 🟢 -711 B
assets/useUpstreamValue-G8cjjlvX.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +803 B 🔴 +708 B
assets/useLoad3d-B3w9SURh.js (removed) 1.33 kB 🟢 -1.33 kB 🟢 -619 B 🟢 -559 B
assets/useLoad3d-CMfpF30q.js (new) 1.33 kB 🔴 +1.33 kB 🔴 +621 B 🔴 +554 B
assets/useLoad3dViewer-BT8CG67c.js (new) 1.27 kB 🔴 +1.27 kB 🔴 +589 B 🔴 +529 B
assets/useLoad3dViewer-BWWO-5R7.js (removed) 1.27 kB 🟢 -1.27 kB 🟢 -587 B 🟢 -525 B
assets/useCurrentUser-Q6AMhyOT.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +555 B 🔴 +490 B
assets/useCurrentUser-r0tAGfGt.js (removed) 1.15 kB 🟢 -1.15 kB 🟢 -554 B 🟢 -485 B
assets/useWorkspaceSwitch-CvGh3EVu.js (removed) 747 B 🟢 -747 B 🟢 -383 B 🟢 -332 B
assets/useWorkspaceSwitch-CZ2pzAwM.js (new) 747 B 🔴 +747 B 🔴 +384 B 🔴 +331 B

Status: 13 added / 13 removed / 18 unchanged

Vendor & Third-Party — 9.94 MB (baseline 9.94 MB) • ⚪ 0 B

External libraries and shared vendor chunks

Status: 16 unchanged

Other — 8.84 MB (baseline 8.84 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-BadrIg8V.js (new) 76.6 kB 🔴 +76.6 kB 🔴 +19.8 kB 🔴 +16.9 kB
assets/core-CHh805tI.js (removed) 76.6 kB 🟢 -76.6 kB 🟢 -19.8 kB 🟢 -16.9 kB
assets/groupNode-CcYVXS2x.js (new) 74.9 kB 🔴 +74.9 kB 🔴 +18.7 kB 🔴 +16.5 kB
assets/groupNode-fX92vpLu.js (removed) 74.9 kB 🟢 -74.9 kB 🟢 -18.7 kB 🟢 -16.5 kB
assets/WidgetSelect-Bbw8X3d6.js (new) 67.2 kB 🔴 +67.2 kB 🔴 +14.6 kB 🔴 +12.7 kB
assets/WidgetSelect-Dn-KeIJz.js (removed) 67.2 kB 🟢 -67.2 kB 🟢 -14.6 kB 🟢 -12.7 kB
assets/SubscriptionRequiredDialogContentWorkspace-CMHyolGN.js (removed) 48.8 kB 🟢 -48.8 kB 🟢 -9.53 kB 🟢 -8.23 kB
assets/SubscriptionRequiredDialogContentWorkspace-Cs2dlF7D.js (new) 48.8 kB 🔴 +48.8 kB 🔴 +9.53 kB 🔴 +8.21 kB
assets/Load3DControls-B17MEHuW.js (new) 46.1 kB 🔴 +46.1 kB 🔴 +7.51 kB 🔴 +6.54 kB
assets/Load3DControls-CipL9U-X.js (removed) 46.1 kB 🟢 -46.1 kB 🟢 -7.51 kB 🟢 -6.54 kB
assets/WidgetPainter-CAJE2JVa.js (removed) 34 kB 🟢 -34 kB 🟢 -8.3 kB 🟢 -7.37 kB
assets/WidgetPainter-GNy1l-YY.js (new) 34 kB 🔴 +34 kB 🔴 +8.3 kB 🔴 +7.36 kB
assets/WorkspacePanelContent-D_UH0q9L.js (new) 32.8 kB 🔴 +32.8 kB 🔴 +7.01 kB 🔴 +6.2 kB
assets/WorkspacePanelContent-DLfDZ6h_.js (removed) 32.8 kB 🟢 -32.8 kB 🟢 -7.01 kB 🟢 -6.19 kB
assets/Load3dViewerContent-BEVFd7X4.js (new) 28 kB 🔴 +28 kB 🔴 +5.85 kB 🔴 +5.07 kB
assets/Load3dViewerContent-CTXMb-ol.js (removed) 28 kB 🟢 -28 kB 🟢 -5.85 kB 🟢 -5.07 kB
assets/SubscriptionRequiredDialogContent-BQUsJtyY.js (new) 27.5 kB 🔴 +27.5 kB 🔴 +6.98 kB 🔴 +6.17 kB
assets/SubscriptionRequiredDialogContent-Df7gcUBO.js (removed) 27.5 kB 🟢 -27.5 kB 🟢 -6.98 kB 🟢 -6.17 kB
assets/WidgetImageCrop--RlrfzJb.js (removed) 24.3 kB 🟢 -24.3 kB 🟢 -6.2 kB 🟢 -5.46 kB
assets/WidgetImageCrop-BWV4r82X.js (new) 24.3 kB 🔴 +24.3 kB 🔴 +6.2 kB 🔴 +5.46 kB
assets/SubscriptionPanelContentWorkspace-C-y3ka1i.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.17 kB 🟢 -4.55 kB
assets/SubscriptionPanelContentWorkspace-sdsKYpaf.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.17 kB 🔴 +4.56 kB
assets/SignInContent-CVXD_el1.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.37 kB 🔴 +4.69 kB
assets/SignInContent-D_R-mega.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.38 kB 🟢 -4.71 kB
assets/CurrentUserPopoverWorkspace-BfHHqjPU.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -4.92 kB 🟢 -4.4 kB
assets/CurrentUserPopoverWorkspace-CAvugT8T.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +4.91 kB 🔴 +4.41 kB
assets/WidgetInputNumber-cPql4ybc.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.84 kB 🟢 -4.3 kB
assets/WidgetInputNumber-DFVJL1Uy.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.84 kB 🔴 +4.29 kB
assets/Load3D-C6wg_Uue.js (new) 18.5 kB 🔴 +18.5 kB 🔴 +4.39 kB 🔴 +3.83 kB
assets/Load3D-CdiRySaY.js (removed) 18.5 kB 🟢 -18.5 kB 🟢 -4.39 kB 🟢 -3.83 kB
assets/WidgetRecordAudio-BnoXCYTB.js (new) 17.4 kB 🔴 +17.4 kB 🔴 +5.02 kB 🔴 +4.49 kB
assets/WidgetRecordAudio-CNMi9ayM.js (removed) 17.4 kB 🟢 -17.4 kB 🟢 -5.02 kB 🟢 -4.48 kB
assets/WidgetRange-B0DwgX5v.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.61 kB 🔴 +4.12 kB
assets/WidgetRange-prwRL6Qj.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.61 kB 🟢 -4.12 kB
assets/load3d-Btvbm28r.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +4.6 kB 🔴 +3.98 kB
assets/load3d-DU60tfer.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -4.59 kB 🟢 -3.97 kB
assets/WaveAudioPlayer-BKdOvQf5.js (removed) 13.4 kB 🟢 -13.4 kB 🟢 -3.69 kB 🟢 -3.23 kB
assets/WaveAudioPlayer-DkWQX51k.js (new) 13.4 kB 🔴 +13.4 kB 🔴 +3.69 kB 🔴 +3.23 kB
assets/WidgetCurve-BFXQKEo0.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +3.93 kB 🔴 +3.55 kB
assets/WidgetCurve-DHT1QUBd.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -3.94 kB 🟢 -3.56 kB
assets/TeamWorkspacesDialogContent-2NzN0oLk.js (removed) 11.3 kB 🟢 -11.3 kB 🟢 -3.43 kB 🟢 -3.05 kB
assets/TeamWorkspacesDialogContent-TLoVu4R-.js (new) 11.3 kB 🔴 +11.3 kB 🔴 +3.42 kB 🔴 +3.05 kB
assets/nodeTemplates-CmRCbCbP.js (new) 9.84 kB 🔴 +9.84 kB 🔴 +3.48 kB 🔴 +3.07 kB
assets/nodeTemplates-D354Wnyn.js (removed) 9.84 kB 🟢 -9.84 kB 🟢 -3.48 kB 🟢 -3.06 kB
assets/NightlySurveyController-BqebATHK.js (new) 9.02 kB 🔴 +9.02 kB 🔴 +3.16 kB 🔴 +2.79 kB
assets/NightlySurveyController-C7MYOhkq.js (removed) 9.02 kB 🟢 -9.02 kB 🟢 -3.17 kB 🟢 -2.79 kB
assets/Load3DConfiguration-0tF6rswC.js (new) 8.03 kB 🔴 +8.03 kB 🔴 +2.36 kB 🔴 +2.06 kB
assets/Load3DConfiguration-BNtgda6F.js (removed) 8.03 kB 🟢 -8.03 kB 🟢 -2.36 kB 🟢 -2.06 kB
assets/InviteMemberDialogContent-Bn95nDaC.js (removed) 7.94 kB 🟢 -7.94 kB 🟢 -2.53 kB 🟢 -2.21 kB
assets/InviteMemberDialogContent-qm39f4tH.js (new) 7.94 kB 🔴 +7.94 kB 🔴 +2.53 kB 🔴 +2.21 kB
assets/onboardingCloudRoutes-BE8oeA7F.js (removed) 6.59 kB 🟢 -6.59 kB 🟢 -2.06 kB 🟢 -1.78 kB
assets/onboardingCloudRoutes-D8GlEXDX.js (new) 6.59 kB 🔴 +6.59 kB 🔴 +2.06 kB 🔴 +1.77 kB
assets/CreateWorkspaceDialogContent-B5wlK_xx.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +2.24 kB 🔴 +1.96 kB
assets/CreateWorkspaceDialogContent-DxkgmItf.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -2.24 kB 🟢 -1.94 kB
assets/WidgetWithControl-CSVPcb46.js (removed) 6.05 kB 🟢 -6.05 kB 🟢 -2.42 kB 🟢 -2.15 kB
assets/WidgetWithControl-CyR2VUEL.js (new) 6.05 kB 🔴 +6.05 kB 🔴 +2.42 kB 🔴 +2.16 kB
assets/FreeTierDialogContent-DDN-816d.js (new) 6.01 kB 🔴 +6.01 kB 🔴 +2.14 kB 🔴 +1.88 kB
assets/FreeTierDialogContent-mXTK0rUl.js (removed) 6.01 kB 🟢 -6.01 kB 🟢 -2.14 kB 🟢 -1.88 kB
assets/EditWorkspaceDialogContent-B_gQ-b8f.js (removed) 5.95 kB 🟢 -5.95 kB 🟢 -2.2 kB 🟢 -1.93 kB
assets/EditWorkspaceDialogContent-ff1RMkl2.js (new) 5.95 kB 🔴 +5.95 kB 🔴 +2.2 kB 🔴 +1.93 kB
assets/WidgetTextarea-Dg2VQKHM.js (new) 5.76 kB 🔴 +5.76 kB 🔴 +2.27 kB 🔴 +2.02 kB
assets/WidgetTextarea-J0I_8ivJ.js (removed) 5.76 kB 🟢 -5.76 kB 🟢 -2.27 kB 🟢 -2.02 kB
assets/Preview3d-FIrc1VzH.js (removed) 5.73 kB 🟢 -5.73 kB 🟢 -1.93 kB 🟢 -1.68 kB
assets/Preview3d-KIv0zTcQ.js (new) 5.73 kB 🔴 +5.73 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/ValueControlPopover-D6NaCv_w.js (new) 5.53 kB 🔴 +5.53 kB 🔴 +2.02 kB 🔴 +1.81 kB
assets/ValueControlPopover-DQypFrHJ.js (removed) 5.53 kB 🟢 -5.53 kB 🟢 -2.02 kB 🟢 -1.79 kB
assets/CancelSubscriptionDialogContent-BDiOVAhh.js (new) 5.49 kB 🔴 +5.49 kB 🔴 +2.06 kB 🔴 +1.81 kB
assets/CancelSubscriptionDialogContent-DcmIi9d7.js (removed) 5.49 kB 🟢 -5.49 kB 🟢 -2.06 kB 🟢 -1.8 kB
assets/DeleteWorkspaceDialogContent-B7jc2LKc.js (new) 4.85 kB 🔴 +4.85 kB 🔴 +1.88 kB 🔴 +1.63 kB
assets/DeleteWorkspaceDialogContent-DeLhy7mk.js (removed) 4.85 kB 🟢 -4.85 kB 🟢 -1.88 kB 🟢 -1.63 kB
assets/LeaveWorkspaceDialogContent-BW4azMvw.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.82 kB 🔴 +1.59 kB
assets/LeaveWorkspaceDialogContent-eqeDDdDg.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.82 kB 🟢 -1.59 kB
assets/RemoveMemberDialogContent-CF0GOIeO.js (new) 4.66 kB 🔴 +4.66 kB 🔴 +1.78 kB 🔴 +1.55 kB
assets/RemoveMemberDialogContent-Dd5Dm378.js (removed) 4.66 kB 🟢 -4.66 kB 🟢 -1.78 kB 🟢 -1.55 kB
assets/RevokeInviteDialogContent-CATB0g9S.js (removed) 4.57 kB 🟢 -4.57 kB 🟢 -1.79 kB 🟢 -1.57 kB
assets/RevokeInviteDialogContent-n4oI2T2b.js (new) 4.57 kB 🔴 +4.57 kB 🔴 +1.79 kB 🔴 +1.59 kB
assets/InviteMemberUpsellDialogContent-Cky_mK2Z.js (removed) 4.47 kB 🟢 -4.47 kB 🟢 -1.65 kB 🟢 -1.44 kB
assets/InviteMemberUpsellDialogContent-D4uTItwP.js (new) 4.47 kB 🔴 +4.47 kB 🔴 +1.65 kB 🔴 +1.45 kB
assets/tierBenefits-CuD-YlaS.js (removed) 4.45 kB 🟢 -4.45 kB 🟢 -1.57 kB 🟢 -1.36 kB
assets/tierBenefits-oUVUKcWq.js (new) 4.45 kB 🔴 +4.45 kB 🔴 +1.57 kB 🔴 +1.36 kB
assets/cloudSessionCookie-CeCmeYVO.js (new) 4.31 kB 🔴 +4.31 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/cloudSessionCookie-lkrpLThU.js (removed) 4.31 kB 🟢 -4.31 kB 🟢 -1.58 kB 🟢 -1.38 kB
assets/Media3DTop-BFOrF-Re.js (removed) 4.04 kB 🟢 -4.04 kB 🟢 -1.71 kB 🟢 -1.51 kB
assets/Media3DTop-D01dOiMv.js (new) 4.04 kB 🔴 +4.04 kB 🔴 +1.71 kB 🔴 +1.52 kB
assets/saveMesh-BaLCZdum.js (new) 4.03 kB 🔴 +4.03 kB 🔴 +1.76 kB 🔴 +1.56 kB
assets/saveMesh-CdsYcgtH.js (removed) 4.03 kB 🟢 -4.03 kB 🟢 -1.76 kB 🟢 -1.55 kB
assets/GlobalToast-B9nzaOdA.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.26 kB 🔴 +1.11 kB
assets/GlobalToast-DIVUnBPN.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.26 kB 🟢 -1.08 kB
assets/CloudRunButtonWrapper-DGVpuUpb.js (removed) 2.23 kB 🟢 -2.23 kB 🟢 -1.02 kB 🟢 -906 B
assets/CloudRunButtonWrapper-IVHU1_KL.js (new) 2.23 kB 🔴 +2.23 kB 🔴 +1.02 kB 🔴 +905 B
assets/SubscribeToRun-Cg76JWvz.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +981 B 🔴 +863 B
assets/SubscribeToRun-DtCmdbZi.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -980 B 🟢 -864 B
assets/MediaAudioTop-C8tAzb5h.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +1.01 kB 🔴 +861 B
assets/MediaAudioTop-E8ykZ8ad.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -1.01 kB 🟢 -868 B
assets/cloudBadges-B8YMbDgn.js (removed) 1.96 kB 🟢 -1.96 kB 🟢 -979 B 🟢 -845 B
assets/cloudBadges-D_Jr9Csb.js (new) 1.96 kB 🔴 +1.96 kB 🔴 +978 B 🔴 +850 B
assets/cloudSubscription-_aXlyEwJ.js (new) 1.88 kB 🔴 +1.88 kB 🔴 +900 B 🔴 +774 B
assets/cloudSubscription-B2L8VD4p.js (removed) 1.88 kB 🟢 -1.88 kB 🟢 -901 B 🟢 -776 B
assets/graphHasMissingNodes-BAYXej6_.js (new) 1.83 kB 🔴 +1.83 kB 🔴 +860 B 🔴 +772 B
assets/graphHasMissingNodes-C2DUBs9i.js (removed) 1.83 kB 🟢 -1.83 kB 🟢 -859 B 🟢 -754 B
assets/Load3D-BPEqPm3h.js (new) 1.58 kB 🔴 +1.58 kB 🔴 +714 B 🔴 +632 B
assets/Load3D-UV30UtvI.js (removed) 1.58 kB 🟢 -1.58 kB 🟢 -712 B 🟢 -629 B
assets/previousFullPath-B5O2iRzV.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -695 B 🟢 -619 B
assets/previousFullPath-Cec5ltzd.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +690 B 🔴 +594 B
assets/nightlyBadges-_JxFxNfx.js (new) 1.49 kB 🔴 +1.49 kB 🔴 +747 B 🔴 +688 B
assets/nightlyBadges-Dv7npNfq.js (removed) 1.49 kB 🟢 -1.49 kB 🟢 -744 B 🟢 -666 B
assets/Load3dViewerContent-DsSBrd7w.js (removed) 1.46 kB 🟢 -1.46 kB 🟢 -663 B 🟢 -603 B
assets/Load3dViewerContent-DxZMUNXM.js (new) 1.46 kB 🔴 +1.46 kB 🔴 +665 B 🔴 +602 B
assets/SubscriptionPanelContentWorkspace-0DCdJehp.js (new) 1.35 kB 🔴 +1.35 kB 🔴 +617 B 🔴 +538 B
assets/SubscriptionPanelContentWorkspace-DCxXY6JF.js (removed) 1.35 kB 🟢 -1.35 kB 🟢 -618 B 🟢 -537 B
assets/WidgetLegacy-CbwXgg1-.js (removed) 1.18 kB 🟢 -1.18 kB 🟢 -566 B 🟢 -494 B
assets/WidgetLegacy-Tbfz0zYp.js (new) 1.18 kB 🔴 +1.18 kB 🔴 +567 B 🔴 +496 B
assets/changeTracker-7DMmoTdl.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +555 B 🔴 +487 B
assets/changeTracker-Cdp6jrcr.js (removed) 1.15 kB 🟢 -1.15 kB 🟢 -554 B 🟢 -484 B

Status: 57 added / 57 removed / 78 unchanged

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 68.4 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 50.2 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 46.5 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 54.6 MB heap
large-graph-idle: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 58.8 MB heap
large-graph-pan: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.9 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 66.0 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 60.6 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 55.1 MB heap
subgraph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 67.7 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 46.2 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 65.2 MB heap
vue-large-graph-idle: · 58.1 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 163.5 MB heap
vue-large-graph-pan: · 58.1 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 157.7 MB heap
workflow-execution: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.5 MB heap

No regressions detected.

All metrics
Metric Baseline PR (median) Δ Sig
canvas-idle: avg frame time 17ms 17ms +0% z=-0.1
canvas-idle: p95 frame time 17ms 17ms -1%
canvas-idle: layout duration 0ms 0ms +0%
canvas-idle: style recalc duration 8ms 9ms +9% z=-2.6
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 8 8 +0% z=-5.6
canvas-idle: task duration 378ms 340ms -10% z=-1.7
canvas-idle: script duration 19ms 16ms -15% z=-4.1
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 68.4 MB 68.4 MB +0%
canvas-idle: DOM nodes 16 16 +0% z=-5.2
canvas-idle: event listeners 4 4 +0% z=-1.6
canvas-mouse-sweep: avg frame time 17ms 17ms +0% z=-0.4
canvas-mouse-sweep: p95 frame time 17ms 17ms -1%
canvas-mouse-sweep: layout duration 4ms 4ms -1% z=0.3
canvas-mouse-sweep: style recalc duration 42ms 39ms -6% z=-1.0
canvas-mouse-sweep: layout count 12 12 +0%
canvas-mouse-sweep: style recalc count 72 75 +4% z=-1.6
canvas-mouse-sweep: task duration 821ms 781ms -5% z=-1.5
canvas-mouse-sweep: script duration 128ms 127ms -1% z=-1.4
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 46.5 MB 50.2 MB +8%
canvas-mouse-sweep: DOM nodes -265 -263 -1% z=-125.8
canvas-mouse-sweep: event listeners -133 -133 +0% z=-33.9
canvas-zoom-sweep: avg frame time 17ms 17ms +0% z=0.5
canvas-zoom-sweep: p95 frame time 17ms 17ms -1%
canvas-zoom-sweep: layout duration 1ms 1ms -1% z=0.4
canvas-zoom-sweep: style recalc duration 18ms 16ms -10% z=-1.9
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 32 31 -3% z=-0.6
canvas-zoom-sweep: task duration 310ms 273ms -12% z=-2.3
canvas-zoom-sweep: script duration 22ms 18ms -15% z=-2.9
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 46.3 MB 46.5 MB +1%
canvas-zoom-sweep: DOM nodes 76 75 -1% z=-5.4
canvas-zoom-sweep: event listeners 19 19 +0% z=-0.9
dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
dom-widget-clipping: p95 frame time 17ms 17ms +1%
dom-widget-clipping: layout duration 0ms 0ms +0%
dom-widget-clipping: style recalc duration 7ms 8ms +10% z=-2.9
dom-widget-clipping: layout count 0 0 +0%
dom-widget-clipping: style recalc count 10 11 +10% z=-4.2
dom-widget-clipping: task duration 338ms 317ms -6% z=-2.9
dom-widget-clipping: script duration 59ms 57ms -4% z=-3.5
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 54.8 MB 54.6 MB -0%
dom-widget-clipping: DOM nodes 16 18 +13% z=-2.9
dom-widget-clipping: event listeners 0 0 +0% variance too high
large-graph-idle: avg frame time 17ms 17ms +0% z=-0.2
large-graph-idle: p95 frame time 17ms 17ms +1%
large-graph-idle: layout duration 0ms 0ms +0%
large-graph-idle: style recalc duration 8ms 7ms -15% z=-4.9
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 9 8 -11% z=-11.5
large-graph-idle: task duration 583ms 511ms -12% z=-0.6
large-graph-idle: script duration 94ms 87ms -8% z=-1.5
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 58.0 MB 58.8 MB +1%
large-graph-idle: DOM nodes -261 -264 +1% z=-319.4
large-graph-idle: event listeners -129 -129 +0% z=-25.4
large-graph-pan: avg frame time 17ms 17ms +0% z=0.3
large-graph-pan: p95 frame time 17ms 17ms +0%
large-graph-pan: layout duration 0ms 0ms +0%
large-graph-pan: style recalc duration 19ms 17ms -9% z=-0.4
large-graph-pan: layout count 0 0 +0%
large-graph-pan: style recalc count 68 68 +0% z=-2.4
large-graph-pan: task duration 1094ms 1049ms -4% z=-0.8
large-graph-pan: script duration 378ms 381ms +1% z=-1.4
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 61.7 MB 56.9 MB -8%
large-graph-pan: DOM nodes -265 -265 +0% z=-172.1
large-graph-pan: event listeners -129 -127 -2% z=-159.3
large-graph-zoom: avg frame time 17ms 17ms +0%
large-graph-zoom: p95 frame time 17ms 17ms -1%
large-graph-zoom: layout duration 8ms 7ms -15%
large-graph-zoom: style recalc duration 19ms 18ms -7%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 65 65 +0%
large-graph-zoom: task duration 1340ms 1281ms -4%
large-graph-zoom: script duration 494ms 479ms -3%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 69.3 MB 66.0 MB -5%
large-graph-zoom: DOM nodes -270 -268 -1%
large-graph-zoom: event listeners -125 -125 +0%
minimap-idle: avg frame time 17ms 17ms -0% z=-0.9
minimap-idle: p95 frame time 17ms 17ms +0%
minimap-idle: layout duration 0ms 0ms +0%
minimap-idle: style recalc duration 8ms 11ms +44% z=1.5
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 8 8 +0% z=-2.3
minimap-idle: task duration 598ms 516ms -14% z=-0.2
minimap-idle: script duration 97ms 90ms -7% z=-0.8
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 62.0 MB 60.6 MB -2%
minimap-idle: DOM nodes -265 -266 +0% z=-208.5
minimap-idle: event listeners -129 -129 +0% z=-202.3
subgraph-dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
subgraph-dom-widget-clipping: p95 frame time 17ms 17ms -1%
subgraph-dom-widget-clipping: layout duration 0ms 0ms +0%
subgraph-dom-widget-clipping: style recalc duration 11ms 11ms +5% z=-1.4
subgraph-dom-widget-clipping: layout count 0 0 +0%
subgraph-dom-widget-clipping: style recalc count 46 46 +0% z=-3.3
subgraph-dom-widget-clipping: task duration 367ms 355ms -3% z=-1.3
subgraph-dom-widget-clipping: script duration 130ms 122ms -6% z=-0.9
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 54.8 MB 55.1 MB +0%
subgraph-dom-widget-clipping: DOM nodes 18 18 +0% z=-3.7
subgraph-dom-widget-clipping: event listeners 6 6 +0% z=-1.7
subgraph-idle: avg frame time 17ms 17ms +0% z=0.4
subgraph-idle: p95 frame time 17ms 17ms -1%
subgraph-idle: layout duration 0ms 0ms +0%
subgraph-idle: style recalc duration 9ms 7ms -18% z=-3.8
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 9 9 +0% z=-2.9
subgraph-idle: task duration 362ms 322ms -11% z=-1.5
subgraph-idle: script duration 16ms 12ms -23% z=-3.0
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 68.5 MB 67.7 MB -1%
subgraph-idle: DOM nodes 18 18 +0% z=-2.5
subgraph-idle: event listeners 4 4 +0% variance too high
subgraph-mouse-sweep: avg frame time 17ms 17ms +0% z=0.4
subgraph-mouse-sweep: p95 frame time 17ms 17ms +0%
subgraph-mouse-sweep: layout duration 4ms 4ms -8% z=-2.1
subgraph-mouse-sweep: style recalc duration 38ms 35ms -6% z=-2.1
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 75 75 +0% z=-2.7
subgraph-mouse-sweep: task duration 723ms 671ms -7% z=-1.4
subgraph-mouse-sweep: script duration 95ms 90ms -5% z=-1.7
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 48.2 MB 46.2 MB -4%
subgraph-mouse-sweep: DOM nodes -265 -261 -2% z=-146.8
subgraph-mouse-sweep: event listeners -131 -131 +0% variance too high
viewport-pan-sweep: avg frame time 17ms 17ms +0%
viewport-pan-sweep: p95 frame time 17ms 17ms -1%
viewport-pan-sweep: layout duration 0ms 0ms +0%
viewport-pan-sweep: style recalc duration 59ms 52ms -12%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 250 250 +0%
viewport-pan-sweep: task duration 3880ms 3566ms -8%
viewport-pan-sweep: script duration 1329ms 1251ms -6%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 73.3 MB 65.2 MB -11%
viewport-pan-sweep: DOM nodes -264 -260 -2%
viewport-pan-sweep: event listeners -113 -113 +0%
vue-large-graph-idle: avg frame time 18ms 17ms -3%
vue-large-graph-idle: p95 frame time 17ms 17ms +0%
vue-large-graph-idle: layout duration 0ms 0ms +0%
vue-large-graph-idle: style recalc duration 0ms 0ms +0%
vue-large-graph-idle: layout count 0 0 +0%
vue-large-graph-idle: style recalc count 0 0 +0%
vue-large-graph-idle: task duration 13290ms 11209ms -16%
vue-large-graph-idle: script duration 650ms 575ms -11%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 162.7 MB 163.5 MB +0%
vue-large-graph-idle: DOM nodes -8331 -8331 +0%
vue-large-graph-idle: event listeners -16461 -16466 +0%
vue-large-graph-pan: avg frame time 17ms 17ms +0%
vue-large-graph-pan: p95 frame time 17ms 17ms +0%
vue-large-graph-pan: layout duration 0ms 0ms +0%
vue-large-graph-pan: style recalc duration 20ms 16ms -22%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 77 66 -14%
vue-large-graph-pan: task duration 15451ms 14062ms -9%
vue-large-graph-pan: script duration 890ms 884ms -1%
vue-large-graph-pan: TBT 0ms 0ms +0%
vue-large-graph-pan: heap used 166.2 MB 157.7 MB -5%
vue-large-graph-pan: DOM nodes -8331 -8331 +0%
vue-large-graph-pan: event listeners -16488 -16464 -0%
workflow-execution: avg frame time 17ms 17ms -0% z=-0.4
workflow-execution: p95 frame time 17ms 17ms +0%
workflow-execution: layout duration 2ms 1ms -18% z=-1.1
workflow-execution: style recalc duration 24ms 22ms -6% z=-0.9
workflow-execution: layout count 5 5 +0% z=0.1
workflow-execution: style recalc count 18 16 -11% z=-0.9
workflow-execution: task duration 126ms 116ms -8% z=-0.6
workflow-execution: script duration 25ms 24ms -3% z=-1.7
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 52.4 MB 53.5 MB +2%
workflow-execution: DOM nodes 166 155 -7% z=-0.8
workflow-execution: event listeners 69 69 +0% z=3.9
Historical variance (last 15 runs)
Metric μ σ CV
canvas-idle: avg frame time 17ms 0ms 0.0%
canvas-idle: layout duration 0ms 0ms 0.0%
canvas-idle: style recalc duration 11ms 1ms 8.2%
canvas-idle: layout count 0 0 0.0%
canvas-idle: style recalc count 11 1 5.0%
canvas-idle: task duration 395ms 31ms 7.9%
canvas-idle: script duration 25ms 2ms 8.8%
canvas-idle: TBT 0ms 0ms 0.0%
canvas-idle: DOM nodes 23 1 5.6%
canvas-idle: event listeners 12 5 40.9%
canvas-mouse-sweep: avg frame time 17ms 0ms 0.0%
canvas-mouse-sweep: layout duration 4ms 0ms 5.4%
canvas-mouse-sweep: style recalc duration 43ms 3ms 7.4%
canvas-mouse-sweep: layout count 12 0 0.0%
canvas-mouse-sweep: style recalc count 79 2 3.0%
canvas-mouse-sweep: task duration 865ms 58ms 6.7%
canvas-mouse-sweep: script duration 136ms 6ms 4.8%
canvas-mouse-sweep: TBT 0ms 0ms 0.0%
canvas-mouse-sweep: DOM nodes 62 3 4.2%
canvas-mouse-sweep: event listeners 8 4 49.4%
canvas-zoom-sweep: avg frame time 17ms 0ms 0.0%
canvas-zoom-sweep: layout duration 1ms 0ms 7.0%
canvas-zoom-sweep: style recalc duration 19ms 2ms 8.0%
canvas-zoom-sweep: layout count 6 0 0.0%
canvas-zoom-sweep: style recalc count 31 0 1.5%
canvas-zoom-sweep: task duration 327ms 23ms 7.1%
canvas-zoom-sweep: script duration 27ms 3ms 11.1%
canvas-zoom-sweep: TBT 0ms 0ms 0.0%
canvas-zoom-sweep: DOM nodes 79 1 1.0%
canvas-zoom-sweep: event listeners 24 5 21.8%
dom-widget-clipping: avg frame time 17ms 0ms 0.0%
dom-widget-clipping: layout duration 0ms 0ms 0.0%
dom-widget-clipping: style recalc duration 10ms 1ms 8.0%
dom-widget-clipping: layout count 0 0 0.0%
dom-widget-clipping: style recalc count 13 0 3.8%
dom-widget-clipping: task duration 365ms 16ms 4.5%
dom-widget-clipping: script duration 68ms 3ms 4.8%
dom-widget-clipping: TBT 0ms 0ms 0.0%
dom-widget-clipping: DOM nodes 22 1 6.4%
dom-widget-clipping: event listeners 8 6 81.2%
large-graph-idle: avg frame time 17ms 0ms 0.0%
large-graph-idle: layout duration 0ms 0ms 0.0%
large-graph-idle: style recalc duration 12ms 1ms 8.6%
large-graph-idle: layout count 0 0 0.0%
large-graph-idle: style recalc count 12 0 2.7%
large-graph-idle: task duration 542ms 54ms 10.0%
large-graph-idle: script duration 102ms 11ms 10.3%
large-graph-idle: TBT 0ms 0ms 0.0%
large-graph-idle: DOM nodes 25 1 3.7%
large-graph-idle: event listeners 26 6 23.2%
large-graph-pan: avg frame time 17ms 0ms 0.0%
large-graph-pan: layout duration 0ms 0ms 0.0%
large-graph-pan: style recalc duration 17ms 1ms 4.6%
large-graph-pan: layout count 0 0 0.0%
large-graph-pan: style recalc count 70 1 0.9%
large-graph-pan: task duration 1082ms 43ms 4.0%
large-graph-pan: script duration 408ms 20ms 4.8%
large-graph-pan: TBT 0ms 0ms 0.0%
large-graph-pan: DOM nodes 19 2 8.7%
large-graph-pan: event listeners 5 1 16.8%
minimap-idle: avg frame time 17ms 0ms 0.0%
minimap-idle: layout duration 0ms 0ms 0.0%
minimap-idle: style recalc duration 10ms 1ms 8.6%
minimap-idle: layout count 0 0 0.0%
minimap-idle: style recalc count 10 1 7.1%
minimap-idle: task duration 527ms 47ms 9.0%
minimap-idle: script duration 98ms 10ms 10.1%
minimap-idle: TBT 0ms 0ms 0.0%
minimap-idle: DOM nodes 19 1 7.1%
minimap-idle: event listeners 5 1 14.4%
subgraph-dom-widget-clipping: avg frame time 17ms 0ms 0.0%
subgraph-dom-widget-clipping: layout duration 0ms 0ms 0.0%
subgraph-dom-widget-clipping: style recalc duration 13ms 1ms 7.4%
subgraph-dom-widget-clipping: layout count 0 0 0.0%
subgraph-dom-widget-clipping: style recalc count 48 1 1.2%
subgraph-dom-widget-clipping: task duration 378ms 18ms 4.9%
subgraph-dom-widget-clipping: script duration 128ms 6ms 4.9%
subgraph-dom-widget-clipping: TBT 0ms 0ms 0.0%
subgraph-dom-widget-clipping: DOM nodes 22 1 5.0%
subgraph-dom-widget-clipping: event listeners 16 6 36.0%
subgraph-idle: avg frame time 17ms 0ms 0.0%
subgraph-idle: layout duration 0ms 0ms 0.0%
subgraph-idle: style recalc duration 10ms 1ms 7.5%
subgraph-idle: layout count 0 0 0.0%
subgraph-idle: style recalc count 11 1 6.0%
subgraph-idle: task duration 370ms 31ms 8.5%
subgraph-idle: script duration 20ms 3ms 13.2%
subgraph-idle: TBT 0ms 0ms 0.0%
subgraph-idle: DOM nodes 22 1 6.9%
subgraph-idle: event listeners 10 7 64.5%
subgraph-mouse-sweep: avg frame time 17ms 0ms 0.0%
subgraph-mouse-sweep: layout duration 5ms 0ms 6.8%
subgraph-mouse-sweep: style recalc duration 42ms 3ms 7.8%
subgraph-mouse-sweep: layout count 16 0 0.0%
subgraph-mouse-sweep: style recalc count 80 2 2.4%
subgraph-mouse-sweep: task duration 766ms 69ms 9.0%
subgraph-mouse-sweep: script duration 101ms 7ms 6.5%
subgraph-mouse-sweep: TBT 0ms 0ms 0.0%
subgraph-mouse-sweep: DOM nodes 67 2 3.3%
subgraph-mouse-sweep: event listeners 8 4 52.6%
workflow-execution: avg frame time 17ms 0ms 0.0%
workflow-execution: layout duration 2ms 0ms 9.4%
workflow-execution: style recalc duration 24ms 2ms 9.1%
workflow-execution: layout count 5 1 11.0%
workflow-execution: style recalc count 18 2 11.5%
workflow-execution: task duration 123ms 11ms 8.8%
workflow-execution: script duration 29ms 3ms 10.2%
workflow-execution: TBT 0ms 0ms 0.0%
workflow-execution: DOM nodes 161 7 4.4%
workflow-execution: event listeners 52 4 8.4%
Trend (last 15 commits on main)
Metric Trend Dir Latest
canvas-idle: avg frame time ▆▃▆▁▆▃▆█▆▆▄▃▃▄▃ ➡️ 17ms
canvas-idle: p95 frame time ➡️ NaNms
canvas-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-idle: style recalc duration ▇▇▆▆▃█▄▃▄▃▇▄▁▆▇ ➡️ 11ms
canvas-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
canvas-idle: style recalc count █▃▅▂▅▆▃▁▂▁▂▅▆▅▆ ➡️ 12
canvas-idle: task duration ▃▃▃▆▂▃▃▅▆▂█▃▁▃▃ ➡️ 391ms
canvas-idle: script duration ▄▃▅▇▂▅▃▆▇▅█▄▁▅▆ ➡️ 27ms
canvas-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-idle: heap used ➡️ NaN MB
canvas-idle: DOM nodes █▇▆▅▃▇▃▁▂▂▅▆▆▆▇ ➡️ 24
canvas-idle: event listeners ▅█▅▄▁▅▁▁▁▄▅▅▁▅▄ 📉 11
canvas-mouse-sweep: avg frame time ▆█▆▃▁▃▁▆▆▁▃▆▆▃▃ ➡️ 17ms
canvas-mouse-sweep: p95 frame time ➡️ NaNms
canvas-mouse-sweep: layout duration ▁▃▂▄▁▂▁▃▆▂█▇▆▄▃ ➡️ 4ms
canvas-mouse-sweep: style recalc duration ▄▄▂▄▁▂▃▃▅▄█▆▂▄▄ ➡️ 43ms
canvas-mouse-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 12
canvas-mouse-sweep: style recalc count █▅▄▃▂▂▁▄▄▅▆▅▂▇▄ ➡️ 79
canvas-mouse-sweep: task duration █▆▄▂▂▃▂▄▄▅█▆▁▆▄ ➡️ 868ms
canvas-mouse-sweep: script duration ▄▅▄▆▄▆▆▆▅▅█▆▁▅▆ ➡️ 139ms
canvas-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-mouse-sweep: heap used ➡️ NaN MB
canvas-mouse-sweep: DOM nodes █▅▃▃▁▂▂▃▂▄▆▅▃▅▅ ➡️ 64
canvas-mouse-sweep: event listeners █▁▁▁▁▁▇▁▁▁██▇▁█ 📈 13
canvas-zoom-sweep: avg frame time ▅▅█▄▅▁▁▁▅▁▁▅▄▅▁ ➡️ 17ms
canvas-zoom-sweep: p95 frame time ➡️ NaNms
canvas-zoom-sweep: layout duration ▆▅▅▄▁▁█▅▃▅▇▆▁▂▆ ➡️ 1ms
canvas-zoom-sweep: style recalc duration ▆▅▄▆▅▃█▆▇▅▇▄▁▃▅ ➡️ 20ms
canvas-zoom-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 6
canvas-zoom-sweep: style recalc count ▁▁▃▄▆▃▆█▄▄▆▁▆▁▆ ➡️ 32
canvas-zoom-sweep: task duration ▄▂▁▇▂▂▄▅▆▃█▄▁▁▅ ➡️ 338ms
canvas-zoom-sweep: script duration ▃▃▂▇▂▂▅▇▆▅█▄▁▂▆ ➡️ 30ms
canvas-zoom-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-zoom-sweep: heap used ➡️ NaN MB
canvas-zoom-sweep: DOM nodes ▄▃▁▅█▁▃▆▄▅▅▃▃▄▃ ➡️ 79
canvas-zoom-sweep: event listeners ▁▁▂▅█▂▁▅▁▅▅▄▁▅▁ ➡️ 19
dom-widget-clipping: avg frame time ▂▄▅▅▂▄█▇▅▇▇▅▅▁▇ ➡️ 17ms
dom-widget-clipping: p95 frame time ➡️ NaNms
dom-widget-clipping: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
dom-widget-clipping: style recalc duration ▆▆▂▆▄▃██▄▁▆▇▆▃▅ ➡️ 10ms
dom-widget-clipping: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
dom-widget-clipping: style recalc count ▇█▅█▅▄█▇▇▁▇▄▇▂▅ ➡️ 13
dom-widget-clipping: task duration ▃▃▁▅▄▃▅▆▅▂▇█▁▅▅ ➡️ 371ms
dom-widget-clipping: script duration ▅▄▄▆▆▅▇▇▆▃█▇▁▇▇ ➡️ 71ms
dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
dom-widget-clipping: heap used ➡️ NaN MB
dom-widget-clipping: DOM nodes ▇▇▄▇▅▄█▇▅▁▅▄▇▃▄ ➡️ 21
dom-widget-clipping: event listeners ▅▅▅▅▁▅██▁▁▁▁█▁▁ 📉 2
large-graph-idle: avg frame time ▅▅▅▅▅▂▁▂▄▅▄▂▂▅█ ➡️ 17ms
large-graph-idle: p95 frame time ➡️ NaNms
large-graph-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-idle: style recalc duration ▅▅▅▆▄▅▃▄▅▅▆█▁▄▆ ➡️ 13ms
large-graph-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-idle: style recalc count █▆█▃▃▁▃▆▃▆▆▃▆██ ➡️ 12
large-graph-idle: task duration ▂▃▂▆▂▃▃▇▅▃██▁▂▅ ➡️ 569ms
large-graph-idle: script duration ▄▅▄▆▄▅▅▇▆▅█▆▁▃▆ ➡️ 110ms
large-graph-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-idle: heap used ➡️ NaN MB
large-graph-idle: DOM nodes ▆█▅▂▅▃▁▂▃▅▅▆▂▆▅ ➡️ 25
large-graph-idle: event listeners ███▇██▄▁▄▇▇█▂█▇ ➡️ 29
large-graph-pan: avg frame time ▆▃▃▆█▃▁█▆▆▆▆█▁▆ ➡️ 17ms
large-graph-pan: p95 frame time ➡️ NaNms
large-graph-pan: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-pan: style recalc duration ▃▂▄▄▁▅▂▂▁▄▄█▃▁▂ ➡️ 17ms
large-graph-pan: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-pan: style recalc count ▆▃█▂▃▂▂▂▁▇▅▃█▆▃ ➡️ 69
large-graph-pan: task duration ▄▃▄▆▄▄▄▆▄▄█▆▁▂▅ ➡️ 1100ms
large-graph-pan: script duration ▅▄▅▆▆▅▄▆▄▅█▄▁▄▅ ➡️ 413ms
large-graph-pan: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-pan: heap used ➡️ NaN MB
large-graph-pan: DOM nodes ▅▃▆▂▄▁▃▁▁▅▁▂█▅▂ ➡️ 18
large-graph-pan: event listeners █▆█▁▁▆▁▁▃▆▁▃██▃ ➡️ 5
minimap-idle: avg frame time ▃▆▆▃█▁█▆▆▃▃▆█▆█ ➡️ 17ms
minimap-idle: p95 frame time ➡️ NaNms
minimap-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
minimap-idle: style recalc duration ▄█▁█▅▅█▅▅▃▅▁▁▄▆ ➡️ 10ms
minimap-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
minimap-idle: style recalc count ▃▅▂▄█▃▆▁▂▅▂▁▅▆▃ ➡️ 9
minimap-idle: task duration ▃▄▁▅▁▃▄▅▇▃█▅▁▁▅ ➡️ 547ms
minimap-idle: script duration ▄▆▃▇▃▅▆▆▇▅█▅▁▃▆ ➡️ 106ms
minimap-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
minimap-idle: heap used ➡️ NaN MB
minimap-idle: DOM nodes ▃▅▂▄█▃▆▁▂▅▂▁▅▆▃ ➡️ 19
minimap-idle: event listeners ▃▃▆▁▁▁▃▁▁▆▁▃█▆▁ ➡️ 4
subgraph-dom-widget-clipping: avg frame time ▅▄▄▄▄▄█▄▄▄▃▁▆▃▃ ➡️ 17ms
subgraph-dom-widget-clipping: p95 frame time ➡️ NaNms
subgraph-dom-widget-clipping: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-dom-widget-clipping: style recalc duration ▂▄▃▅▅▃▂▅▇▃▄█▁▄▆ ➡️ 14ms
subgraph-dom-widget-clipping: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-dom-widget-clipping: style recalc count ▇█▆▃▆▃▁▆█▇▃▆▇█▅ ➡️ 48
subgraph-dom-widget-clipping: task duration ▂▃▃▆▅▅▂▅█▂▆█▁▂▇ ➡️ 398ms
subgraph-dom-widget-clipping: script duration ▃▃▃▄▅▅▂▄█▂▅▇▁▂▅ ➡️ 131ms
subgraph-dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-dom-widget-clipping: heap used ➡️ NaN MB
subgraph-dom-widget-clipping: DOM nodes ▅▇▅▂▅▂▁▅▅▅▁▇▅█▄ ➡️ 22
subgraph-dom-widget-clipping: event listeners ▅▅▅▂▅▁▅██▁▁█▅█▅ 📈 16
subgraph-idle: avg frame time ▆▆█▁▆▃▆▆▆▃▆▁▃▆█ ➡️ 17ms
subgraph-idle: p95 frame time ➡️ NaNms
subgraph-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-idle: style recalc duration ▁▇▃▆▂▄▂▃▃▆▆▄▃▇█ ➡️ 12ms
subgraph-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-idle: style recalc count ▃▆▃▃▂▅▁▂▁▆▃▃██▇ ➡️ 12
subgraph-idle: task duration ▁▃▁▇▁▁▃▆▅▂█▅▁▁▄ ➡️ 378ms
subgraph-idle: script duration ▁▃▂▇▁▂▃▇▆▂█▅▂▁▅ ➡️ 22ms
subgraph-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-idle: heap used ➡️ NaN MB
subgraph-idle: DOM nodes ▃▅▃▂▁▄▁▂▁▅▃▂▇█▇ ➡️ 24
subgraph-idle: event listeners ▁▅▁▁▁▁▁▁▁▅▄▁███ 📈 21
subgraph-mouse-sweep: avg frame time ▅▄▁▃▃▄▆▄▆▃▃█▁▃▃ ➡️ 17ms
subgraph-mouse-sweep: p95 frame time ➡️ NaNms
subgraph-mouse-sweep: layout duration ▁▄▄▄▃▃▅▅▅▂█▇▂▃▆ ➡️ 5ms
subgraph-mouse-sweep: style recalc duration ▃▂▄▅▂▃▄▅█▃█▆▁▂▅ ➡️ 43ms
subgraph-mouse-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 16
subgraph-mouse-sweep: style recalc count ▅▂▅▅▁▄▃▅█▅▆▄▂▄▅ ➡️ 81
subgraph-mouse-sweep: task duration ▃▂▄▅▂▄▄▅▇▄█▆▁▃▅ ➡️ 785ms
subgraph-mouse-sweep: script duration ▄▅▄▇▅▅▆▇▆▅██▁▄▆ ➡️ 105ms
subgraph-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-mouse-sweep: heap used ➡️ NaN MB
subgraph-mouse-sweep: DOM nodes ▅▁▄▅▁▄▃▃█▅▅▄▂▅▃ ➡️ 66
subgraph-mouse-sweep: event listeners ▇▁▂▇▁▂▂▂█▇▂▂▇▇▂ 📈 5
workflow-execution: avg frame time ▆▆▆▄▆▆▃▄▁▄█▆▅▄▆ ➡️ 17ms
workflow-execution: p95 frame time ➡️ NaNms
workflow-execution: layout duration ▁▆▁▃▂▄▃▂▃▃▅█▄▂▅ ➡️ 2ms
workflow-execution: style recalc duration ▃▇▅▇▁▅▆▇█▁██▂▄▆ ➡️ 25ms
workflow-execution: layout count ▁█▂▃▂▃▃▁▃▃▄▃▂▃▂ ➡️ 5
workflow-execution: style recalc count ▃█▅▇▁▄▅▆▅▅▅▅▄▄▂ ➡️ 15
workflow-execution: task duration ▂▅▄▅▁▄▆▆▆▁▇█▁▃▃ ➡️ 120ms
workflow-execution: script duration ▄▃▄▄▃▅▄▅▆▂▇█▁▃▄ ➡️ 29ms
workflow-execution: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
workflow-execution: heap used ➡️ NaN MB
workflow-execution: DOM nodes ▂█▃▆▁▄▃▅▃█▃▃▄▃▁ ➡️ 152
workflow-execution: event listeners ▅███▁▅███▁██▅█▅ ➡️ 49
Raw data
{
  "timestamp": "2026-05-04T04:32:30.380Z",
  "gitSha": "06139fe84c4a4ef26bfbb38597c210eabd84bc1f",
  "branch": "fix/sanitize-nan-widget-values",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2033.7770000000432,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 6.637999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 340.23199999999997,
      "heapDeltaBytes": 23454480,
      "heapUsedBytes": 71746548,
      "domNodes": 16,
      "jsHeapTotalBytes": 14942208,
      "scriptDurationMs": 15.099,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2019.535000000019,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 8.500999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 324.65199999999993,
      "heapDeltaBytes": 22785888,
      "heapUsedBytes": 72201160,
      "domNodes": 16,
      "jsHeapTotalBytes": 14680064,
      "scriptDurationMs": 16.1,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-idle",
      "durationMs": 2036.848999999961,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.411999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 350.919,
      "heapDeltaBytes": 1514628,
      "heapUsedBytes": 66988496,
      "domNodes": 20,
      "jsHeapTotalBytes": 19755008,
      "scriptDurationMs": 24.403,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1940.041000000008,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 42.270999999999994,
      "layouts": 12,
      "layoutDurationMs": 4.041,
      "taskDurationMs": 854.9279999999999,
      "heapDeltaBytes": 4616844,
      "heapUsedBytes": 52652044,
      "domNodes": -268,
      "jsHeapTotalBytes": 15069184,
      "scriptDurationMs": 126.65100000000001,
      "eventListeners": -133,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1837.135000000103,
      "styleRecalcs": 73,
      "styleRecalcDurationMs": 38.062,
      "layouts": 12,
      "layoutDurationMs": 3.437,
      "taskDurationMs": 780.661,
      "heapDeltaBytes": -1192600,
      "heapUsedBytes": 47234344,
      "domNodes": -263,
      "jsHeapTotalBytes": 15593472,
      "scriptDurationMs": 124.844,
      "eventListeners": -133,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1821.7359999999871,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 39.32899999999999,
      "layouts": 12,
      "layoutDurationMs": 3.678,
      "taskDurationMs": 744.546,
      "heapDeltaBytes": -3185236,
      "heapUsedBytes": 62347856,
      "domNodes": 58,
      "jsHeapTotalBytes": 21065728,
      "scriptDurationMs": 128.927,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1714.1039999999634,
      "styleRecalcs": 30,
      "styleRecalcDurationMs": 15.347,
      "layouts": 6,
      "layoutDurationMs": 0.6629999999999999,
      "taskDurationMs": 273.324,
      "heapDeltaBytes": 135004,
      "heapUsedBytes": 48797392,
      "domNodes": 75,
      "jsHeapTotalBytes": 14942208,
      "scriptDurationMs": 16.30700000000001,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1730.0900000000183,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 17.310000000000002,
      "layouts": 6,
      "layoutDurationMs": 0.667,
      "taskDurationMs": 300.088,
      "heapDeltaBytes": 166152,
      "heapUsedBytes": 48533276,
      "domNodes": 75,
      "jsHeapTotalBytes": 14417920,
      "scriptDurationMs": 19.903,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1717.649999999935,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 16.284000000000002,
      "layouts": 6,
      "layoutDurationMs": 0.5810000000000002,
      "taskDurationMs": 273.248,
      "heapDeltaBytes": 87584,
      "heapUsedBytes": 48864280,
      "domNodes": 75,
      "jsHeapTotalBytes": 15466496,
      "scriptDurationMs": 18.334,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 500.95199999998385,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 6.804000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 316.839,
      "heapDeltaBytes": 8785428,
      "heapUsedBytes": 57272596,
      "domNodes": 16,
      "jsHeapTotalBytes": 15990784,
      "scriptDurationMs": 57.343,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666682,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 540.2480000000196,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.311,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 323.396,
      "heapDeltaBytes": 8797852,
      "heapUsedBytes": 57172684,
      "domNodes": 18,
      "jsHeapTotalBytes": 15728640,
      "scriptDurationMs": 56.45799999999999,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 535.8189999999468,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 7.563999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 312.43,
      "heapDeltaBytes": 9065044,
      "heapUsedBytes": 57410916,
      "domNodes": 18,
      "jsHeapTotalBytes": 15466496,
      "scriptDurationMs": 56.562,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2028.6060000000248,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.075000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 499.905,
      "heapDeltaBytes": 3101116,
      "heapUsedBytes": 61658960,
      "domNodes": -264,
      "jsHeapTotalBytes": 552960,
      "scriptDurationMs": 86.418,
      "eventListeners": -129,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2029.5350000000099,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.645000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 531.748,
      "heapDeltaBytes": 3457420,
      "heapUsedBytes": 60414936,
      "domNodes": -262,
      "jsHeapTotalBytes": 5009408,
      "scriptDurationMs": 90.99499999999999,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2014.2740000000003,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.140000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 511.447,
      "heapDeltaBytes": 11523884,
      "heapUsedBytes": 70198692,
      "domNodes": -266,
      "jsHeapTotalBytes": 290816,
      "scriptDurationMs": 86.506,
      "eventListeners": -129,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2132.7850000000126,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 17.183000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1048.769,
      "heapDeltaBytes": -5794528,
      "heapUsedBytes": 53445928,
      "domNodes": -265,
      "jsHeapTotalBytes": 5795840,
      "scriptDurationMs": 383.431,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2106.6619999999148,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 16.366999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1052.913,
      "heapDeltaBytes": 507244,
      "heapUsedBytes": 59715176,
      "domNodes": -266,
      "jsHeapTotalBytes": 757760,
      "scriptDurationMs": 379.454,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2114.2429999999877,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 16.977,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1025.568,
      "heapDeltaBytes": 2456584,
      "heapUsedBytes": 61755504,
      "domNodes": -263,
      "jsHeapTotalBytes": 757760,
      "scriptDurationMs": 380.68500000000006,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3132.7720000000454,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 18.553,
      "layouts": 60,
      "layoutDurationMs": 6.963,
      "taskDurationMs": 1312.336,
      "heapDeltaBytes": 6413732,
      "heapUsedBytes": 67303032,
      "domNodes": -266,
      "jsHeapTotalBytes": 6582272,
      "scriptDurationMs": 492.71999999999997,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3115.385999999944,
      "styleRecalcs": 64,
      "styleRecalcDurationMs": 16.830000000000002,
      "layouts": 60,
      "layoutDurationMs": 7.170000000000001,
      "taskDurationMs": 1280.635,
      "heapDeltaBytes": 12188732,
      "heapUsedBytes": 73071932,
      "domNodes": -268,
      "jsHeapTotalBytes": 815104,
      "scriptDurationMs": 479.22099999999995,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3130.3230000000895,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 17.579000000000004,
      "layouts": 60,
      "layoutDurationMs": 7.0889999999999995,
      "taskDurationMs": 1275.799,
      "heapDeltaBytes": 8520688,
      "heapUsedBytes": 69230796,
      "domNodes": -269,
      "jsHeapTotalBytes": 4222976,
      "scriptDurationMs": 475.74899999999997,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2041.8650000000298,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 6.943999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 507.39,
      "heapDeltaBytes": 2903012,
      "heapUsedBytes": 63563560,
      "domNodes": -266,
      "jsHeapTotalBytes": 4747264,
      "scriptDurationMs": 86.51,
      "eventListeners": -129,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2048.2500000000528,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 11.670000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 555.792,
      "heapDeltaBytes": 2945848,
      "heapUsedBytes": 63231700,
      "domNodes": -266,
      "jsHeapTotalBytes": 552960,
      "scriptDurationMs": 95.81800000000001,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "minimap-idle",
      "durationMs": 2048.1230000000323,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 10.798000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 515.8990000000001,
      "heapDeltaBytes": 15540200,
      "heapUsedBytes": 75728452,
      "domNodes": -259,
      "jsHeapTotalBytes": -1019904,
      "scriptDurationMs": 90.21600000000002,
      "eventListeners": -129,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 519.3439999999896,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 11.401000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 343.612,
      "heapDeltaBytes": 9456220,
      "heapUsedBytes": 57520048,
      "domNodes": 21,
      "jsHeapTotalBytes": 15466496,
      "scriptDurationMs": 122.337,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 549.9899999999798,
      "styleRecalcs": 45,
      "styleRecalcDurationMs": 10.554,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 356.9560000000001,
      "heapDeltaBytes": 9150588,
      "heapUsedBytes": 57775192,
      "domNodes": 16,
      "jsHeapTotalBytes": 15728640,
      "scriptDurationMs": 121.145,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 563.4249999999383,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 13.841,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 354.799,
      "heapDeltaBytes": 9045512,
      "heapUsedBytes": 57915376,
      "domNodes": 18,
      "jsHeapTotalBytes": 15466496,
      "scriptDurationMs": 125.03,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2002.6309999999512,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.418000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 314.852,
      "heapDeltaBytes": 22556336,
      "heapUsedBytes": 71269996,
      "domNodes": 18,
      "jsHeapTotalBytes": 14942208,
      "scriptDurationMs": 12.322999999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1989.373999999998,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.047000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 322.69499999999994,
      "heapDeltaBytes": 22326064,
      "heapUsedBytes": 71016140,
      "domNodes": 17,
      "jsHeapTotalBytes": 14942208,
      "scriptDurationMs": 13.346000000000002,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2002.6530000000093,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.115999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 322.382,
      "heapDeltaBytes": 22293688,
      "heapUsedBytes": 70604176,
      "domNodes": 18,
      "jsHeapTotalBytes": 15204352,
      "scriptDurationMs": 12.197,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1672.042000000033,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 33.571999999999996,
      "layouts": 16,
      "layoutDurationMs": 4.002000000000001,
      "taskDurationMs": 670.819,
      "heapDeltaBytes": -1972788,
      "heapUsedBytes": 46659704,
      "domNodes": -261,
      "jsHeapTotalBytes": 14544896,
      "scriptDurationMs": 88.364,
      "eventListeners": -131,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1711.8390000000545,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 35.479,
      "layouts": 16,
      "layoutDurationMs": 4.029999999999999,
      "taskDurationMs": 658.234,
      "heapDeltaBytes": 14316056,
      "heapUsedBytes": 62912520,
      "domNodes": 61,
      "jsHeapTotalBytes": 14942208,
      "scriptDurationMs": 89.542,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1705.5410000000393,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 36.79,
      "layouts": 16,
      "layoutDurationMs": 4.556,
      "taskDurationMs": 692.001,
      "heapDeltaBytes": -325100,
      "heapUsedBytes": 48397424,
      "domNodes": -262,
      "jsHeapTotalBytes": 15331328,
      "scriptDurationMs": 90.532,
      "eventListeners": -131,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8193.564999999979,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 49.64600000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3538.766,
      "heapDeltaBytes": 10292772,
      "heapUsedBytes": 68410460,
      "domNodes": -263,
      "jsHeapTotalBytes": 2068480,
      "scriptDurationMs": 1244.178,
      "eventListeners": -113,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8162.4910000000455,
      "styleRecalcs": 249,
      "styleRecalcDurationMs": 51.794000000000004,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3867.725,
      "heapDeltaBytes": 24043592,
      "heapUsedBytes": 82307972,
      "domNodes": -259,
      "jsHeapTotalBytes": 2854912,
      "scriptDurationMs": 1272.2169999999999,
      "eventListeners": -113,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8172.626000000037,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 51.98,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3566.42,
      "heapDeltaBytes": 10799480,
      "heapUsedBytes": 67606596,
      "domNodes": -260,
      "jsHeapTotalBytes": 6262784,
      "scriptDurationMs": 1250.983,
      "eventListeners": -113,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11221.625000000018,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11209.247000000001,
      "heapDeltaBytes": -31903664,
      "heapUsedBytes": 179504676,
      "domNodes": -8331,
      "jsHeapTotalBytes": 17887232,
      "scriptDurationMs": 575.3950000000001,
      "eventListeners": -16466,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 12308.074999999917,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 12292.521999999999,
      "heapDeltaBytes": -47091924,
      "heapUsedBytes": 150365972,
      "domNodes": -8331,
      "jsHeapTotalBytes": 11857920,
      "scriptDurationMs": 619.407,
      "eventListeners": -16464,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.333333333333332,
      "p95FrameDurationMs": 33.400000000001455
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11078.196000000047,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11064.847,
      "heapDeltaBytes": -32681532,
      "heapUsedBytes": 171425008,
      "domNodes": -8331,
      "jsHeapTotalBytes": 23916544,
      "scriptDurationMs": 544.501,
      "eventListeners": -16466,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333338,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14194.64199999993,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 16.323000000000032,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14169.643,
      "heapDeltaBytes": -41362992,
      "heapUsedBytes": 163258808,
      "domNodes": -8331,
      "jsHeapTotalBytes": -4132864,
      "scriptDurationMs": 892.458,
      "eventListeners": -16486,
      "totalBlockingTimeMs": 40,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14007.036999999968,
      "styleRecalcs": 64,
      "styleRecalcDurationMs": 15.703999999999995,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 13986.196,
      "heapDeltaBytes": -24962568,
      "heapUsedBytes": 170277804,
      "domNodes": -8331,
      "jsHeapTotalBytes": 26013696,
      "scriptDurationMs": 882.9759999999999,
      "eventListeners": -16464,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.220000000000073,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14078.890000000001,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 15.639999999999986,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14061.927000000001,
      "heapDeltaBytes": -32284092,
      "heapUsedBytes": 165351312,
      "domNodes": -8329,
      "jsHeapTotalBytes": -5005312,
      "scriptDurationMs": 884.2,
      "eventListeners": -16460,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.779999999999927,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 463.72699999994893,
      "styleRecalcs": 19,
      "styleRecalcDurationMs": 29.497000000000003,
      "layouts": 6,
      "layoutDurationMs": 1.828,
      "taskDurationMs": 138.179,
      "heapDeltaBytes": 5415664,
      "heapUsedBytes": 55309460,
      "domNodes": 168,
      "jsHeapTotalBytes": 524288,
      "scriptDurationMs": 27.867,
      "eventListeners": 69,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "workflow-execution",
      "durationMs": 460.474999999974,
      "styleRecalcs": 16,
      "styleRecalcDurationMs": 22.163000000000004,
      "layouts": 5,
      "layoutDurationMs": 1.2209999999999999,
      "taskDurationMs": 116.35700000000001,
      "heapDeltaBytes": 5013624,
      "heapUsedBytes": 56124600,
      "domNodes": 155,
      "jsHeapTotalBytes": 262144,
      "scriptDurationMs": 24.081,
      "eventListeners": 69,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "workflow-execution",
      "durationMs": 456.88799999993535,
      "styleRecalcs": 15,
      "styleRecalcDurationMs": 21.507,
      "layouts": 5,
      "layoutDurationMs": 1.386,
      "taskDurationMs": 110.571,
      "heapDeltaBytes": 5024124,
      "heapUsedBytes": 56207872,
      "domNodes": 155,
      "jsHeapTotalBytes": 524288,
      "scriptDurationMs": 22.908000000000005,
      "eventListeners": 69,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    }
  ]
}

@codecov
Copy link
Copy Markdown

codecov Bot commented May 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@             Coverage Diff             @@
##             main   #11884       +/-   ##
===========================================
- Coverage   71.44%   55.96%   -15.49%     
===========================================
  Files        1492     1383      -109     
  Lines       86361    70622    -15739     
  Branches    24117    19669     -4448     
===========================================
- Hits        61703    39524    -22179     
- Misses      23763    30571     +6808     
+ Partials      895      527      -368     
Flag Coverage Δ
e2e ?
unit 55.96% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 994 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants