Skip to content

test: add e2e tests for subgraph promoted widget panel regressions#10502

Closed
jaeone94 wants to merge 1 commit intomainfrom
test/subgraph-promoted-widget-hide-regression
Closed

test: add e2e tests for subgraph promoted widget panel regressions#10502
jaeone94 wants to merge 1 commit intomainfrom
test/subgraph-promoted-widget-hide-regression

Conversation

@jaeone94
Copy link
Copy Markdown
Collaborator

@jaeone94 jaeone94 commented Mar 25, 2026

Summary

Tests added

Test Expected on main Bug
Linked promoted widgets have hide toggle disabled FAIL Hide button is enabled for linked widgets that cannot be demoted
Linked promoted widgets show link icon instead of eye FAIL Eye icon shown instead of link icon
Widget labels display renamed values instead of raw names FAIL widget.name shown instead of widget.label
Linked promoted widget menu should not show Hide/Show input FAIL Hide/Show input option exposed in three-dot menu

Test plan

  • All 4 tests fail on main (confirming bugs exist)
  • Tests pass after fix PR is applied

┆Issue is synchronized with this Notion page by Unito

Add Playwright tests that expose three regressions in the subgraph
promoted widget panel introduced by the proxy-widget-v2 refactor:

- Linked promoted widgets (backed by subgraph input slots) show an
  enabled hide toggle in SubgraphEditor instead of a disabled link icon
- Linked promoted widgets expose Hide/Show input in the WidgetActions
  three-dot menu on the Parameters tab
- Widget labels in SubgraphEditor display raw widget.name instead of
  the renamed label from the subgraph input slot

Also adds data-testid attributes to SubgraphEditor, SubgraphNodeWidget,
and RightSidePanel for stable test selectors.
@jaeone94 jaeone94 requested a review from a team March 25, 2026 06:17
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Mar 25, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 25, 2026

📝 Walkthrough

Walkthrough

These changes add test identifiers to subgraph editor UI components and introduce a comprehensive browser test suite validating the behavior of promoted widget panels within subgraph editors.

Changes

Cohort / File(s) Summary
Test Selectors
browser_tests/fixtures/selectors.ts
Added TestIds.subgraphEditor namespace with stable data-testid strings for toggle, shown/hidden sections, and widget elements.
Browser Test Suite
browser_tests/tests/subgraphPromotedWidgetPanel.spec.ts
New test suite validating subgraph promoted widget panel behavior, including helper functions for panel visibility, editor access, and assertions on widget labels, disable states, and menu options.
UI Component Test IDs
src/components/rightSidePanel/RightSidePanel.vue, src/components/rightSidePanel/subgraph/SubgraphEditor.vue, src/components/rightSidePanel/subgraph/SubgraphNodeWidget.vue
Added data-testid attributes to subgraph editor toggle button, section containers, widget labels, and widget toggle buttons for test targeting.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Hoppy test IDs now shine,
Selectors precise, tests align,
Subgraph panels dance with care,
Widget toggles everywhere!

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
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 (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding e2e regression tests for the subgraph promoted widget panel, which is the core focus of the PR.
End-To-End Regression Coverage For Fixes ✅ Passed PR title uses 'test:' prefix without bug-fix language, and multiple files under browser_tests/ are changed including new regression test suite.
Description check ✅ Passed The pull request description includes a clear summary of changes, detailed test specifications with expected failures, and a test plan with verification steps.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 test/subgraph-promoted-widget-hide-regression

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

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

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 03/25/2026, 06:18:21 AM UTC

Links

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

🎭 Playwright: ❌ 691 passed, 4 failed · 6 flaky

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 677 / ❌ 4 / ⚠️ 6 / ⏭️ 10)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 11 / ❌ 0 / ⚠️ 0 / ⏭️ 0)

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

📦 Bundle: 5.08 MB gzip 🔴 +217 B

Details

Summary

  • Raw size: 23.4 MB baseline 23.4 MB — 🔴 +232 B
  • Gzip: 5.08 MB baseline 5.08 MB — 🔴 +217 B
  • Brotli: 3.93 MB baseline 3.93 MB — 🟢 -154 B
  • Bundles: 249 current • 249 baseline • 114 added / 114 removed

Category Glance
Graph Workspace 🔴 +232 B (1.13 MB) · Vendor & Third-Party ⚪ 0 B (9.8 MB) · Other ⚪ 0 B (8.41 MB) · Data & Services ⚪ 0 B (2.95 MB) · Panels & Settings ⚪ 0 B (484 kB) · Utilities & Hooks ⚪ 0 B (334 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-CLXFuyt-.js (new) 23 kB 🔴 +23 kB 🔴 +8.13 kB 🔴 +6.97 kB
assets/index-LUp--3u0.js (removed) 23 kB 🟢 -23 kB 🟢 -8.13 kB 🟢 -6.97 kB

Status: 1 added / 1 removed

Graph Workspace — 1.13 MB (baseline 1.13 MB) • 🔴 +232 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-6rAL_80O.js (new) 1.13 MB 🔴 +1.13 MB 🔴 +241 kB 🔴 +182 kB
assets/GraphView-BjhfWxmu.js (removed) 1.13 MB 🟢 -1.13 MB 🟢 -241 kB 🟢 -182 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-Cr9u7D-p.js (new) 15.7 kB 🔴 +15.7 kB 🔴 +3.4 kB 🔴 +2.89 kB
assets/CloudSurveyView-DK2_BdjU.js (removed) 15.7 kB 🟢 -15.7 kB 🟢 -3.4 kB 🟢 -2.9 kB
assets/CloudLoginView-Ba4T3HQj.js (new) 12 kB 🔴 +12 kB 🔴 +3.36 kB 🔴 +2.97 kB
assets/CloudLoginView-UAzUVKYr.js (removed) 12 kB 🟢 -12 kB 🟢 -3.36 kB 🟢 -2.96 kB
assets/CloudSignupView-B9zxuicH.js (removed) 9.79 kB 🟢 -9.79 kB 🟢 -2.86 kB 🟢 -2.51 kB
assets/CloudSignupView-BpYKrBug.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.86 kB 🔴 +2.51 kB
assets/UserCheckView-BRfat3MU.js (removed) 9.04 kB 🟢 -9.04 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/UserCheckView-CGkEwAof.js (new) 9.04 kB 🔴 +9.04 kB 🔴 +2.33 kB 🔴 +2.03 kB
assets/CloudLayoutView-Cu8JO-tV.js (removed) 7.54 kB 🟢 -7.54 kB 🟢 -2.36 kB 🟢 -2.06 kB
assets/CloudLayoutView-D9grr4MP.js (new) 7.54 kB 🔴 +7.54 kB 🔴 +2.37 kB 🔴 +2.05 kB
assets/CloudForgotPasswordView-C7wYS3LV.js (new) 5.96 kB 🔴 +5.96 kB 🔴 +2.1 kB 🔴 +1.84 kB
assets/CloudForgotPasswordView-CWWBUbjB.js (removed) 5.96 kB 🟢 -5.96 kB 🟢 -2.1 kB 🟢 -1.85 kB
assets/CloudAuthTimeoutView-YFJSalXc.js (removed) 5.32 kB 🟢 -5.32 kB 🟢 -1.93 kB 🟢 -1.7 kB
assets/CloudAuthTimeoutView-ZV1QRy4I.js (new) 5.32 kB 🔴 +5.32 kB 🔴 +1.94 kB 🔴 +1.7 kB
assets/CloudSubscriptionRedirectView-C59VV-Ud.js (removed) 5.1 kB 🟢 -5.1 kB 🟢 -1.91 kB 🟢 -1.69 kB
assets/CloudSubscriptionRedirectView-DYEx34C9.js (new) 5.1 kB 🔴 +5.1 kB 🔴 +1.92 kB 🔴 +1.69 kB
assets/UserSelectView-DW1j3xnA.js (removed) 4.71 kB 🟢 -4.71 kB 🟢 -1.74 kB 🟢 -1.55 kB
assets/UserSelectView-DZTLCtaH.js (new) 4.71 kB 🔴 +4.71 kB 🔴 +1.74 kB 🔴 +1.54 kB

Status: 9 added / 9 removed / 2 unchanged

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-DkItjiwu.js (removed) 46.6 kB 🟢 -46.6 kB 🟢 -9.52 kB 🟢 -8.49 kB
assets/KeybindingPanel-DMtKe8dk.js (new) 46.6 kB 🔴 +46.6 kB 🔴 +9.52 kB 🔴 +8.47 kB
assets/SecretsPanel-CKW810fx.js (new) 22.4 kB 🔴 +22.4 kB 🔴 +5.42 kB 🔴 +4.76 kB
assets/SecretsPanel-CnOjJwyT.js (removed) 22.4 kB 🟢 -22.4 kB 🟢 -5.42 kB 🟢 -4.76 kB
assets/LegacyCreditsPanel-BTys9b0j.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -5.82 kB 🟢 -5.14 kB
assets/LegacyCreditsPanel-CIyASSWa.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +5.82 kB 🔴 +5.13 kB
assets/SubscriptionPanel-D76h3zKn.js (removed) 19.6 kB 🟢 -19.6 kB 🟢 -4.99 kB 🟢 -4.39 kB
assets/SubscriptionPanel-ekW6_WVW.js (new) 19.6 kB 🔴 +19.6 kB 🔴 +4.99 kB 🔴 +4.39 kB
assets/AboutPanel-BEGqt62d.js (new) 12 kB 🔴 +12 kB 🔴 +3.32 kB 🔴 +2.98 kB
assets/AboutPanel-jC5sTccZ.js (removed) 12 kB 🟢 -12 kB 🟢 -3.32 kB 🟢 -2.98 kB
assets/ExtensionPanel-9Vkfpnl_.js (new) 9.78 kB 🔴 +9.78 kB 🔴 +2.82 kB 🔴 +2.5 kB
assets/ExtensionPanel-De3R_1Kk.js (removed) 9.78 kB 🟢 -9.78 kB 🟢 -2.82 kB 🟢 -2.51 kB
assets/ServerConfigPanel-BXmQwVnI.js (new) 6.85 kB 🔴 +6.85 kB 🔴 +2.28 kB 🔴 +2.03 kB
assets/ServerConfigPanel-DAtIDj5o.js (removed) 6.85 kB 🟢 -6.85 kB 🟢 -2.27 kB 🟢 -2.04 kB
assets/UserPanel-B8_RAz96.js (removed) 6.56 kB 🟢 -6.56 kB 🟢 -2.15 kB 🟢 -1.9 kB
assets/UserPanel-DpLGc__b.js (new) 6.56 kB 🔴 +6.56 kB 🔴 +2.16 kB 🔴 +1.9 kB
assets/cloudRemoteConfig-Dhd3lLx_.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -902 B 🟢 -799 B
assets/cloudRemoteConfig-Dp2Y2Lke.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +904 B 🔴 +791 B
assets/refreshRemoteConfig-CF55liUg.js (removed) 1.45 kB 🟢 -1.45 kB 🟢 -647 B 🟢 -549 B
assets/refreshRemoteConfig-DeXHep0v.js (new) 1.45 kB 🔴 +1.45 kB 🔴 +647 B 🔴 +549 B

Status: 10 added / 10 removed / 12 unchanged

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-C81qX8Et.js (removed) 3.57 kB 🟢 -3.57 kB 🟢 -1.26 kB 🟢 -1.08 kB
assets/auth-DTWURPB4.js (new) 3.57 kB 🔴 +3.57 kB 🔴 +1.26 kB 🔴 +1.08 kB
assets/SignUpForm-CIPkt6pw.js (new) 3.18 kB 🔴 +3.18 kB 🔴 +1.29 kB 🔴 +1.15 kB
assets/SignUpForm-SAUfvLF5.js (removed) 3.18 kB 🟢 -3.18 kB 🟢 -1.29 kB 🟢 -1.15 kB
assets/UpdatePasswordContent-BE2CXfmb.js (new) 2.67 kB 🔴 +2.67 kB 🔴 +1.2 kB 🔴 +1.06 kB
assets/UpdatePasswordContent-CoBwMEh1.js (removed) 2.67 kB 🟢 -2.67 kB 🟢 -1.2 kB 🟢 -1.05 kB
assets/firebaseAuthStore-CT0bDAyB.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +487 B 🔴 +431 B
assets/firebaseAuthStore-CZlASFmH.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -485 B 🟢 -428 B
assets/auth-BhbhztmA.js (new) 348 B 🔴 +348 B 🔴 +216 B 🔴 +191 B
assets/auth-CzWR8xRK.js (removed) 348 B 🟢 -348 B 🟢 -215 B 🟢 -188 B

Status: 5 added / 5 removed / 2 unchanged

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useShareDialog-BjJCkYus.js (removed) 108 kB 🟢 -108 kB 🟢 -22.3 kB 🟢 -18.8 kB
assets/useShareDialog-C_8SD9n_.js (new) 108 kB 🔴 +108 kB 🔴 +22.3 kB 🔴 +18.8 kB
assets/useSubscriptionDialog-CD7yB5r5.js (removed) 969 B 🟢 -969 B 🟢 -474 B 🟢 -415 B
assets/useSubscriptionDialog-pi2Hrw6n.js (new) 969 B 🔴 +969 B 🔴 +476 B 🔴 +415 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-BGAqMZ0p.js (new) 14.3 kB 🔴 +14.3 kB 🔴 +4.01 kB 🔴 +3.58 kB
assets/ComfyQueueButton-DNLcgTFL.js (removed) 14.3 kB 🟢 -14.3 kB 🟢 -4.01 kB 🟢 -3.58 kB
assets/useTerminalTabs-CFW5GvZ0.js (new) 10.7 kB 🔴 +10.7 kB 🔴 +3.6 kB 🔴 +3.17 kB
assets/useTerminalTabs-UHKqxH5R.js (removed) 10.7 kB 🟢 -10.7 kB 🟢 -3.6 kB 🟢 -3.16 kB
assets/SubscribeButton-Buelmjl8.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -914 B
assets/SubscribeButton-DUSlZ-48.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +914 B
assets/cloudFeedbackTopbarButton-CKGK0EVk.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -842 B 🟢 -757 B
assets/cloudFeedbackTopbarButton-DqNAR1wj.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +846 B 🔴 +745 B
assets/ComfyQueueButton-C2ULg11E.js (new) 1.03 kB 🔴 +1.03 kB 🔴 +493 B 🔴 +437 B
assets/ComfyQueueButton-DfdTz59n.js (removed) 1.03 kB 🟢 -1.03 kB 🟢 -490 B 🟢 -439 B

Status: 5 added / 5 removed / 8 unchanged

Data & Services — 2.95 MB (baseline 2.95 MB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-BY-1iWHa.js (new) 1.92 MB 🔴 +1.92 MB 🔴 +442 kB 🔴 +335 kB
assets/dialogService-DRSJOBFk.js (removed) 1.92 MB 🟢 -1.92 MB 🟢 -442 kB 🟢 -335 kB
assets/api-DVwGasVJ.js (removed) 879 kB 🟢 -879 kB 🟢 -210 kB 🟢 -165 kB
assets/api-k-iQmHzA.js (new) 879 kB 🔴 +879 kB 🔴 +210 kB 🔴 +165 kB
assets/load3dService-0VRNPRXu.js (removed) 92.5 kB 🟢 -92.5 kB 🟢 -19.7 kB 🟢 -16.9 kB
assets/load3dService-jJ4Mm1mW.js (new) 92.5 kB 🔴 +92.5 kB 🔴 +19.7 kB 🔴 +16.9 kB
assets/workflowShareService-BadGgGdO.js (new) 16.4 kB 🔴 +16.4 kB 🔴 +4.82 kB 🔴 +4.27 kB
assets/workflowShareService-Con1kITA.js (removed) 16.4 kB 🟢 -16.4 kB 🟢 -4.82 kB 🟢 -4.27 kB
assets/keybindingService-BB5GxXXj.js (new) 13.7 kB 🔴 +13.7 kB 🔴 +3.65 kB 🔴 +3.2 kB
assets/keybindingService-C8HqMKVM.js (removed) 13.7 kB 🟢 -13.7 kB 🟢 -3.66 kB 🟢 -3.2 kB
assets/releaseStore-CCyg-MaF.js (removed) 8.12 kB 🟢 -8.12 kB 🟢 -2.28 kB 🟢 -2 kB
assets/releaseStore-Dq15IeKc.js (new) 8.12 kB 🔴 +8.12 kB 🔴 +2.28 kB 🔴 +2 kB
assets/userStore-D9u4wbOA.js (new) 2.24 kB 🔴 +2.24 kB 🔴 +868 B 🔴 +760 B
assets/userStore-yZxzTcb8.js (removed) 2.24 kB 🟢 -2.24 kB 🟢 -870 B 🟢 -769 B
assets/audioService-D2BOrOZX.js (removed) 1.8 kB 🟢 -1.8 kB 🟢 -878 B 🟢 -762 B
assets/audioService-DQF_UncY.js (new) 1.8 kB 🔴 +1.8 kB 🔴 +879 B 🔴 +761 B
assets/releaseStore-BQQmyYuR.js (new) 993 B 🔴 +993 B 🔴 +484 B 🔴 +426 B
assets/releaseStore-D65P5Wz-.js (removed) 993 B 🟢 -993 B 🟢 -480 B 🟢 -424 B
assets/workflowDraftStore-BYqUTUb0.js (removed) 969 B 🟢 -969 B 🟢 -475 B 🟢 -420 B
assets/workflowDraftStore-DBO11r8v.js (new) 969 B 🔴 +969 B 🔴 +476 B 🔴 +422 B
assets/dialogService-2H63_V5H.js (new) 958 B 🔴 +958 B 🔴 +470 B 🔴 +414 B
assets/dialogService-BRi8cS2o.js (removed) 958 B 🟢 -958 B 🟢 -467 B 🟢 -413 B
assets/settingStore-BwKlqbF3.js (new) 956 B 🔴 +956 B 🔴 +473 B 🔴 +415 B
assets/settingStore-DNosiOS3.js (removed) 956 B 🟢 -956 B 🟢 -469 B 🟢 -415 B
assets/assetsStore-B-EMW85M.js (removed) 955 B 🟢 -955 B 🟢 -469 B 🟢 -411 B
assets/assetsStore-DAj84Gs6.js (new) 955 B 🔴 +955 B 🔴 +474 B 🔴 +415 B

Status: 13 added / 13 removed / 4 unchanged

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-BE1UdOnO.js (removed) 232 kB 🟢 -232 kB 🟢 -51.3 kB 🟢 -41.7 kB
assets/useConflictDetection-DOgwRsvG.js (new) 232 kB 🔴 +232 kB 🔴 +51.3 kB 🔴 +41.8 kB
assets/useLoad3dViewer-CmbShW64.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.44 kB 🔴 +3.9 kB
assets/useLoad3dViewer-CXfhUb5-.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.44 kB 🟢 -3.88 kB
assets/useLoad3d-C7hkN4dA.js (new) 15 kB 🔴 +15 kB 🔴 +3.79 kB 🔴 +3.38 kB
assets/useLoad3d-CrF0BfSW.js (removed) 15 kB 🟢 -15 kB 🟢 -3.79 kB 🟢 -3.36 kB
assets/useFeatureFlags-00maHDJO.js (new) 5.78 kB 🔴 +5.78 kB 🔴 +1.75 kB 🔴 +1.48 kB
assets/useFeatureFlags-BADFwPah.js (removed) 5.78 kB 🟢 -5.78 kB 🟢 -1.75 kB 🟢 -1.48 kB
assets/useCopyToClipboard-CEQUB6eF.js (new) 4.92 kB 🔴 +4.92 kB 🔴 +1.67 kB 🔴 +1.44 kB
assets/useCopyToClipboard-F_z1rDVa.js (removed) 4.92 kB 🟢 -4.92 kB 🟢 -1.67 kB 🟢 -1.44 kB
assets/useWorkspaceUI-B5VpBbrz.js (new) 3.34 kB 🔴 +3.34 kB 🔴 +980 B 🔴 +811 B
assets/useWorkspaceUI-C5JdwX_L.js (removed) 3.34 kB 🟢 -3.34 kB 🟢 -981 B 🟢 -813 B
assets/subscriptionCheckoutUtil-BeAhVBm6.js (new) 3.04 kB 🔴 +3.04 kB 🔴 +1.31 kB 🔴 +1.15 kB
assets/subscriptionCheckoutUtil-DXKSPryw.js (removed) 3.04 kB 🟢 -3.04 kB 🟢 -1.31 kB 🟢 -1.15 kB
assets/assetPreviewUtil-B4eNdaFo.js (removed) 2.27 kB 🟢 -2.27 kB 🟢 -957 B 🟢 -832 B
assets/assetPreviewUtil-CAZzcw3V.js (new) 2.27 kB 🔴 +2.27 kB 🔴 +960 B 🔴 +837 B
assets/useUpstreamValue-Dz0naGus.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -802 B 🟢 -709 B
assets/useUpstreamValue-SN_h-sFv.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +803 B 🔴 +709 B
assets/useLoad3d-CXVtDfwH.js (removed) 1.13 kB 🟢 -1.13 kB 🟢 -539 B 🟢 -481 B
assets/useLoad3d-XnrkPamK.js (new) 1.13 kB 🔴 +1.13 kB 🔴 +540 B 🔴 +481 B
assets/useLoad3dViewer-9Un_KSUz.js (removed) 1.07 kB 🟢 -1.07 kB 🟢 -506 B 🟢 -453 B
assets/useLoad3dViewer-sLtWjXt2.js (new) 1.07 kB 🔴 +1.07 kB 🔴 +508 B 🔴 +453 B
assets/useCurrentUser-C5SuO-kf.js (removed) 955 B 🟢 -955 B 🟢 -470 B 🟢 -415 B
assets/useCurrentUser-Dl6aVA6Z.js (new) 955 B 🔴 +955 B 🔴 +474 B 🔴 +414 B
assets/useWorkspaceSwitch-CUxErx0N.js (removed) 747 B 🟢 -747 B 🟢 -386 B 🟢 -333 B
assets/useWorkspaceSwitch-Dr-1XZbZ.js (new) 747 B 🔴 +747 B 🔴 +381 B 🔴 +330 B

Status: 13 added / 13 removed / 12 unchanged

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

External libraries and shared vendor chunks

Status: 16 unchanged

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

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-Clssopqo.js (removed) 76.8 kB 🟢 -76.8 kB 🟢 -19.9 kB 🟢 -17 kB
assets/core-DR2wj0Me.js (new) 76.8 kB 🔴 +76.8 kB 🔴 +19.9 kB 🔴 +17 kB
assets/groupNode-DH3zI4kg.js (removed) 74 kB 🟢 -74 kB 🟢 -18.5 kB 🟢 -16.3 kB
assets/groupNode-DJ7EaBRz.js (new) 74 kB 🔴 +74 kB 🔴 +18.5 kB 🔴 +16.3 kB
assets/WidgetSelect-C8eeMGYy.js (new) 64.5 kB 🔴 +64.5 kB 🔴 +14.1 kB 🔴 +12.2 kB
assets/WidgetSelect-DQM-Y1BI.js (removed) 64.5 kB 🟢 -64.5 kB 🟢 -14.1 kB 🟢 -12.2 kB
assets/SubscriptionRequiredDialogContentWorkspace-CG-aJMeU.js (new) 48.9 kB 🔴 +48.9 kB 🔴 +9.26 kB 🔴 +7.94 kB
assets/SubscriptionRequiredDialogContentWorkspace-CmHKscFK.js (removed) 48.9 kB 🟢 -48.9 kB 🟢 -9.26 kB 🟢 -7.93 kB
assets/WidgetPainter-Dmo1iQ7T.js (removed) 33.3 kB 🟢 -33.3 kB 🟢 -8.11 kB 🟢 -7.2 kB
assets/WidgetPainter-r_1bALpQ.js (new) 33.3 kB 🔴 +33.3 kB 🔴 +8.11 kB 🔴 +7.2 kB
assets/Load3DControls-6NYFD9NX.js (new) 32.1 kB 🔴 +32.1 kB 🔴 +5.47 kB 🔴 +4.76 kB
assets/Load3DControls-DS1go86v.js (removed) 32.1 kB 🟢 -32.1 kB 🟢 -5.47 kB 🟢 -4.75 kB
assets/WorkspacePanelContent-BS11IcfV.js (new) 29.9 kB 🔴 +29.9 kB 🔴 +6.33 kB 🔴 +5.55 kB
assets/WorkspacePanelContent-DNjHH3rX.js (removed) 29.9 kB 🟢 -29.9 kB 🟢 -6.33 kB 🟢 -5.54 kB
assets/SubscriptionRequiredDialogContent-B1ojsrhc.js (new) 28.2 kB 🔴 +28.2 kB 🔴 +7.17 kB 🔴 +6.31 kB
assets/SubscriptionRequiredDialogContent-V9c8q4qX.js (removed) 28.2 kB 🟢 -28.2 kB 🟢 -7.17 kB 🟢 -6.31 kB
assets/Load3dViewerContent-BEdt_xYb.js (removed) 24.3 kB 🟢 -24.3 kB 🟢 -5.33 kB 🟢 -4.64 kB
assets/Load3dViewerContent-oE946muJ.js (new) 24.3 kB 🔴 +24.3 kB 🔴 +5.32 kB 🔴 +4.63 kB
assets/WidgetImageCrop-D62BMvSb.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.83 kB 🔴 +5.14 kB
assets/WidgetImageCrop-ueTRM7DG.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.82 kB 🟢 -5.13 kB
assets/SubscriptionPanelContentWorkspace-DTDXRGke.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.18 kB 🟢 -4.56 kB
assets/SubscriptionPanelContentWorkspace-Dx7LlNtL.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.18 kB 🔴 +4.55 kB
assets/SignInContent-CCK38xmq.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -5.3 kB 🟢 -4.63 kB
assets/SignInContent-Df_blJDk.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +5.3 kB 🔴 +4.62 kB
assets/CurrentUserPopoverWorkspace-BA75sUrc.js (new) 20.4 kB 🔴 +20.4 kB 🔴 +4.84 kB 🔴 +4.33 kB
assets/CurrentUserPopoverWorkspace-hLoR5kGm.js (removed) 20.4 kB 🟢 -20.4 kB 🟢 -4.84 kB 🟢 -4.33 kB
assets/WidgetInputNumber-BQvUWZUj.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.84 kB 🟢 -4.29 kB
assets/WidgetInputNumber-BYQz5Oek.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.84 kB 🔴 +4.29 kB
assets/WidgetRecordAudio-BzPwsv0V.js (removed) 18.1 kB 🟢 -18.1 kB 🟢 -5.18 kB 🟢 -4.65 kB
assets/WidgetRecordAudio-CPwfpgPZ.js (new) 18.1 kB 🔴 +18.1 kB 🔴 +5.18 kB 🔴 +4.64 kB
assets/Load3D-DVOctA1V.js (new) 16.9 kB 🔴 +16.9 kB 🔴 +4.12 kB 🔴 +3.59 kB
assets/Load3D-Hu-vzujL.js (removed) 16.9 kB 🟢 -16.9 kB 🟢 -4.12 kB 🟢 -3.59 kB
assets/WidgetCurve-C8N6NkK7.js (new) 15.3 kB 🔴 +15.3 kB 🔴 +4.72 kB 🔴 +4.24 kB
assets/WidgetCurve-zKg57nMg.js (removed) 15.3 kB 🟢 -15.3 kB 🟢 -4.72 kB 🟢 -4.25 kB
assets/load3d-B2G2L63Y.js (removed) 15 kB 🟢 -15 kB 🟢 -4.32 kB 🟢 -3.73 kB
assets/load3d-C_ia1cx8.js (new) 15 kB 🔴 +15 kB 🔴 +4.33 kB 🔴 +3.73 kB
assets/WaveAudioPlayer-CfglKbhJ.js (removed) 13.4 kB 🟢 -13.4 kB 🟢 -3.69 kB 🟢 -3.23 kB
assets/WaveAudioPlayer-HaE8_pFT.js (new) 13.4 kB 🔴 +13.4 kB 🔴 +3.69 kB 🔴 +3.22 kB
assets/TeamWorkspacesDialogContent-D9qza6Gd.js (removed) 11.1 kB 🟢 -11.1 kB 🟢 -3.32 kB 🟢 -2.97 kB
assets/TeamWorkspacesDialogContent-DrIyIog2.js (new) 11.1 kB 🔴 +11.1 kB 🔴 +3.32 kB 🔴 +2.96 kB
assets/nodeTemplates-DmHOqWsU.js (removed) 9.58 kB 🟢 -9.58 kB 🟢 -3.37 kB 🟢 -2.96 kB
assets/nodeTemplates-Gvr4WT76.js (new) 9.58 kB 🔴 +9.58 kB 🔴 +3.37 kB 🔴 +2.97 kB
assets/InviteMemberDialogContent-BMP6KCSv.js (new) 7.77 kB 🔴 +7.77 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/InviteMemberDialogContent-CHMQIDjF.js (removed) 7.77 kB 🟢 -7.77 kB 🟢 -2.45 kB 🟢 -2.15 kB
assets/Load3DConfiguration-BCAk6Zye.js (removed) 6.6 kB 🟢 -6.6 kB 🟢 -2.04 kB 🟢 -1.78 kB
assets/Load3DConfiguration-C1YkDMl-.js (new) 6.6 kB 🔴 +6.6 kB 🔴 +2.04 kB 🔴 +1.77 kB
assets/onboardingCloudRoutes-BMuTAjpO.js (new) 6.53 kB 🔴 +6.53 kB 🔴 +2.04 kB 🔴 +1.76 kB
assets/onboardingCloudRoutes-Ct9O4CN-.js (removed) 6.53 kB 🟢 -6.53 kB 🟢 -2.04 kB 🟢 -1.76 kB
assets/WidgetWithControl-BIODjBbr.js (removed) 5.99 kB 🟢 -5.99 kB 🟢 -2.38 kB 🟢 -2.13 kB
assets/WidgetWithControl-ibckyglK.js (new) 5.99 kB 🔴 +5.99 kB 🔴 +2.38 kB 🔴 +2.13 kB
assets/CreateWorkspaceDialogContent-BiAoQdSI.js (new) 5.95 kB 🔴 +5.95 kB 🔴 +2.15 kB 🔴 +1.88 kB
assets/CreateWorkspaceDialogContent-CR-C7cX7.js (removed) 5.95 kB 🟢 -5.95 kB 🟢 -2.15 kB 🟢 -1.88 kB
assets/FreeTierDialogContent-310nK_ek.js (removed) 5.82 kB 🟢 -5.82 kB 🟢 -2.04 kB 🟢 -1.8 kB
assets/FreeTierDialogContent-Bbtf9cVX.js (new) 5.82 kB 🔴 +5.82 kB 🔴 +2.05 kB 🔴 +1.82 kB
assets/EditWorkspaceDialogContent-hJXG0G0h.js (removed) 5.75 kB 🟢 -5.75 kB 🟢 -2.11 kB 🟢 -1.84 kB
assets/EditWorkspaceDialogContent-J1RuweTD.js (new) 5.75 kB 🔴 +5.75 kB 🔴 +2.11 kB 🔴 +1.85 kB
assets/WidgetTextarea-B3hzVLCc.js (removed) 5.53 kB 🟢 -5.53 kB 🟢 -2.17 kB 🟢 -1.92 kB
assets/WidgetTextarea-Zw2WAEXd.js (new) 5.53 kB 🔴 +5.53 kB 🔴 +2.17 kB 🔴 +1.93 kB
assets/Preview3d-CHw_uF_C.js (removed) 5.36 kB 🟢 -5.36 kB 🟢 -1.79 kB 🟢 -1.57 kB
assets/Preview3d-CVzKzStd.js (new) 5.36 kB 🔴 +5.36 kB 🔴 +1.8 kB 🔴 +1.56 kB
assets/ValueControlPopover-CB-s587D.js (removed) 5.33 kB 🟢 -5.33 kB 🟢 -1.93 kB 🟢 -1.72 kB
assets/ValueControlPopover-pYBTalZF.js (new) 5.33 kB 🔴 +5.33 kB 🔴 +1.93 kB 🔴 +1.72 kB
assets/CancelSubscriptionDialogContent-DjFnTSSY.js (removed) 5.22 kB 🟢 -5.22 kB 🟢 -1.95 kB 🟢 -1.7 kB
assets/CancelSubscriptionDialogContent-lJP1XZ-r.js (new) 5.22 kB 🔴 +5.22 kB 🔴 +1.95 kB 🔴 +1.7 kB
assets/DeleteWorkspaceDialogContent-BNAMMQ7n.js (new) 4.65 kB 🔴 +4.65 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/DeleteWorkspaceDialogContent-CrKASSOk.js (removed) 4.65 kB 🟢 -4.65 kB 🟢 -1.79 kB 🟢 -1.55 kB
assets/LeaveWorkspaceDialogContent-BVKn-3hA.js (removed) 4.48 kB 🟢 -4.48 kB 🟢 -1.73 kB 🟢 -1.5 kB
assets/LeaveWorkspaceDialogContent-DQvZ02TY.js (new) 4.48 kB 🔴 +4.48 kB 🔴 +1.74 kB 🔴 +1.51 kB
assets/tierBenefits-B0DqIKA4.js (removed) 4.47 kB 🟢 -4.47 kB 🟢 -1.58 kB 🟢 -1.37 kB
assets/tierBenefits-Bh2ntlPW.js (new) 4.47 kB 🔴 +4.47 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/RemoveMemberDialogContent-DC_FVflm.js (new) 4.46 kB 🔴 +4.46 kB 🔴 +1.69 kB 🔴 +1.47 kB
assets/RemoveMemberDialogContent-DmHfjL-K.js (removed) 4.46 kB 🟢 -4.46 kB 🟢 -1.69 kB 🟢 -1.47 kB
assets/RevokeInviteDialogContent-9U_1c16r.js (new) 4.37 kB 🔴 +4.37 kB 🔴 +1.7 kB 🔴 +1.49 kB
assets/RevokeInviteDialogContent-hz0s6mj7.js (removed) 4.37 kB 🟢 -4.37 kB 🟢 -1.7 kB 🟢 -1.49 kB
assets/InviteMemberUpsellDialogContent-Bi1jUSLB.js (removed) 4.27 kB 🟢 -4.27 kB 🟢 -1.56 kB 🟢 -1.37 kB
assets/InviteMemberUpsellDialogContent-CBIUwgXS.js (new) 4.27 kB 🔴 +4.27 kB 🔴 +1.56 kB 🔴 +1.37 kB
assets/cloudSessionCookie-BIkcrvL1.js (new) 4.13 kB 🔴 +4.13 kB 🔴 +1.49 kB 🔴 +1.3 kB
assets/cloudSessionCookie-DdpKFcd9.js (removed) 4.13 kB 🟢 -4.13 kB 🟢 -1.49 kB 🟢 -1.3 kB
assets/saveMesh-90bvRyPQ.js (removed) 3.92 kB 🟢 -3.92 kB 🟢 -1.69 kB 🟢 -1.48 kB
assets/saveMesh-EmFtW4pn.js (new) 3.92 kB 🔴 +3.92 kB 🔴 +1.69 kB 🔴 +1.48 kB
assets/Media3DTop-BtnTfBpf.js (removed) 3.85 kB 🟢 -3.85 kB 🟢 -1.62 kB 🟢 -1.43 kB
assets/Media3DTop-C28d972J.js (new) 3.85 kB 🔴 +3.85 kB 🔴 +1.62 kB 🔴 +1.44 kB
assets/GlobalToast-BFALMS-0.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.26 kB 🔴 +1.07 kB
assets/GlobalToast-BHItDHaA.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.26 kB 🟢 -1.11 kB
assets/SubscribeToRun-BexirqBt.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -981 B 🟢 -867 B
assets/SubscribeToRun-DDpyoRuf.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +982 B 🔴 +855 B
assets/MediaAudioTop-DYPhO5I2.js (removed) 2.02 kB 🟢 -2.02 kB 🟢 -982 B 🟢 -837 B
assets/MediaAudioTop-GSObWeyG.js (new) 2.02 kB 🔴 +2.02 kB 🔴 +983 B 🔴 +831 B
assets/CloudRunButtonWrapper-COa5aGFW.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +912 B 🔴 +806 B
assets/CloudRunButtonWrapper-CpnpptG7.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -909 B 🟢 -806 B
assets/cloudBadges-BE3gKp0t.js (removed) 1.77 kB 🟢 -1.77 kB 🟢 -891 B 🟢 -773 B
assets/cloudBadges-DWIaaV_g.js (new) 1.77 kB 🔴 +1.77 kB 🔴 +894 B 🔴 +776 B
assets/cloudSubscription-Ck2DbQps.js (removed) 1.68 kB 🟢 -1.68 kB 🟢 -814 B 🟢 -708 B
assets/cloudSubscription-GIRJNeXt.js (new) 1.68 kB 🔴 +1.68 kB 🔴 +815 B 🔴 +711 B
assets/previousFullPath-CuU0tnXj.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -693 B 🟢 -599 B
assets/previousFullPath-DqGh-NP0.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +694 B 🔴 +603 B
assets/Load3D-BaNjNs0W.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -613 B 🟢 -553 B
assets/Load3D-SWzGee9e.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +617 B 🔴 +543 B
assets/nightlyBadges-Bd3JG185.js (new) 1.29 kB 🔴 +1.29 kB 🔴 +660 B 🔴 +582 B
assets/nightlyBadges-tTatRYio.js (removed) 1.29 kB 🟢 -1.29 kB 🟢 -658 B 🟢 -579 B
assets/Load3dViewerContent-B5Hc9R1D.js (removed) 1.23 kB 🟢 -1.23 kB 🟢 -567 B 🟢 -502 B
assets/Load3dViewerContent-XMoj6QKz.js (new) 1.23 kB 🔴 +1.23 kB 🔴 +569 B 🔴 +497 B
assets/SubscriptionPanelContentWorkspace-BFi_8CN7.js (removed) 1.15 kB 🟢 -1.15 kB 🟢 -536 B 🟢 -469 B
assets/SubscriptionPanelContentWorkspace-QSr-d3PN.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +539 B 🔴 +466 B
assets/WidgetLegacy-BGfXFvXH.js (new) 978 B 🔴 +978 B 🔴 +483 B 🔴 +421 B
assets/WidgetLegacy-rFzdJXxH.js (removed) 978 B 🟢 -978 B 🟢 -481 B 🟢 -423 B
assets/changeTracker-iivJGWtp.js (new) 952 B 🔴 +952 B 🔴 +474 B 🔴 +414 B
assets/changeTracker-tFQD_bDS.js (removed) 952 B 🟢 -952 B 🟢 -469 B 🟢 -412 B
assets/graphHasMissingNodes-BAXmj_yR.js (removed) 822 B 🟢 -822 B 🟢 -413 B 🟢 -348 B
assets/graphHasMissingNodes-CGIJB-r5.js (new) 822 B 🔴 +822 B 🔴 +415 B 🔴 +347 B

Status: 55 added / 55 removed / 79 unchanged

⚡ Performance Report

⚠️ 5 regressions detected

Metric Baseline PR (n=3) Δ Sig
canvas-zoom-sweep: style recalcs 33 32 -2% ⚠️ z=2.1
subgraph-mouse-sweep: style recalcs 86 87 +0% ⚠️ z=3.5
subgraph-mouse-sweep: task duration 1001ms 969ms -3% ⚠️ z=2.6
subgraph-mouse-sweep: DOM nodes 73 75 +4% ⚠️ z=3.8
workflow-execution: event listeners 71 71 +0% ⚠️ z=4.6
All metrics
Metric Baseline PR (n=3) Δ Sig
canvas-idle: style recalcs 11 11 +3% z=0.5
canvas-idle: layouts 0 0 +0%
canvas-idle: task duration 438ms 406ms -7% z=0.2
canvas-idle: DOM nodes 22 22 +0% z=-0.5
canvas-idle: script duration 29ms 26ms -10% z=0.4
canvas-idle: event listeners 6 6 +0% z=-1.1
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: frame duration 17ms 17ms -0% z=0.8
canvas-mouse-sweep: style recalcs 84 81 -4% z=1.1
canvas-mouse-sweep: layouts 12 12 +0%
canvas-mouse-sweep: task duration 1063ms 944ms -11% z=1.3
canvas-mouse-sweep: DOM nodes 66 64 -3% z=0.9
canvas-mouse-sweep: script duration 148ms 129ms -13% z=-1.0
canvas-mouse-sweep: event listeners 6 13 +122% z=1.0
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: frame duration 17ms 17ms +0% z=1.0
canvas-zoom-sweep: style recalcs 33 32 -2% ⚠️ z=2.1
canvas-zoom-sweep: layouts 6 6 +0%
canvas-zoom-sweep: task duration 376ms 334ms -11% z=0.2
canvas-zoom-sweep: DOM nodes 80 80 -0% z=0.7
canvas-zoom-sweep: script duration 31ms 26ms -17% z=-0.5
canvas-zoom-sweep: event listeners 19 20 +4% z=-0.9
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: frame duration 17ms 17ms -0% z=1.2
dom-widget-clipping: style recalcs 12 12 -3% z=-1.8
dom-widget-clipping: layouts 0 0 +0%
dom-widget-clipping: task duration 391ms 365ms -7% z=-0.2
dom-widget-clipping: DOM nodes 20 21 +2% z=-0.8
dom-widget-clipping: script duration 76ms 62ms -18% z=-1.6
dom-widget-clipping: event listeners 2 10 +400% variance too high
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: frame duration 17ms 17ms -0% z=-1.6
large-graph-idle: style recalcs 11 11 +0% z=-2.8
large-graph-idle: layouts 0 0 +0%
large-graph-idle: task duration 701ms 612ms -13% z=1.0
large-graph-idle: DOM nodes -263 -265 +1% z=-353.6
large-graph-idle: script duration 124ms 101ms -18% z=-0.2
large-graph-idle: event listeners -149 -160 +8% z=-26.6
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: frame duration 17ms 17ms -0% z=-0.6
large-graph-pan: style recalcs 69 69 +0% z=-0.8
large-graph-pan: layouts 0 0 +0%
large-graph-pan: task duration 1236ms 1158ms -6% z=1.5
large-graph-pan: DOM nodes -272 -270 -1% z=-158.7
large-graph-pan: script duration 452ms 399ms -12% z=-0.3
large-graph-pan: event listeners -173 -170 -2% z=-226.2
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: frame duration 17ms 17ms +0% z=1.2
minimap-idle: style recalcs 7 10 +32% z=0.3
minimap-idle: layouts 0 0 +0%
minimap-idle: task duration 670ms 593ms -12% z=1.1
minimap-idle: DOM nodes -273 -267 -2% z=-219.6
minimap-idle: script duration 114ms 96ms -16% z=-0.3
minimap-idle: event listeners -173 -171 -1% z=-239.8
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: frame duration 17ms 17ms +0% z=0.1
subgraph-dom-widget-clipping: style recalcs 47 48 +1% z=-0.4
subgraph-dom-widget-clipping: layouts 0 0 +0%
subgraph-dom-widget-clipping: task duration 398ms 370ms -7% z=-0.5
subgraph-dom-widget-clipping: DOM nodes 22 22 +3% z=0.2
subgraph-dom-widget-clipping: script duration 135ms 123ms -9% z=-0.8
subgraph-dom-widget-clipping: event listeners 16 16 +0% z=-0.1
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: frame duration 17ms 17ms -0% z=-0.7
subgraph-idle: style recalcs 10 12 +17% z=0.9
subgraph-idle: layouts 0 0 +0%
subgraph-idle: task duration 445ms 397ms -11% z=0.7
subgraph-idle: DOM nodes 20 24 +18% z=1.0
subgraph-idle: script duration 27ms 23ms -15% z=0.7
subgraph-idle: event listeners 5 21 +300% variance too high
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: frame duration 17ms 17ms -0% z=-1.9
subgraph-mouse-sweep: style recalcs 86 87 +0% ⚠️ z=3.5
subgraph-mouse-sweep: layouts 16 16 +0%
subgraph-mouse-sweep: task duration 1001ms 969ms -3% ⚠️ z=2.6
subgraph-mouse-sweep: DOM nodes 73 75 +4% ⚠️ z=3.8
subgraph-mouse-sweep: script duration 112ms 99ms -11% z=-0.3
subgraph-mouse-sweep: event listeners 6 14 +133% variance too high
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: frame duration 17ms 17ms -0% z=0.2
vue-large-graph-idle: style recalcs 0 0 +0%
vue-large-graph-idle: layouts 0 0 +0%
vue-large-graph-idle: task duration 12674ms 10696ms -16%
vue-large-graph-idle: DOM nodes -8342 -8342 +0%
vue-large-graph-idle: script duration 643ms 569ms -12%
vue-large-graph-idle: event listeners -16477 -16481 +0%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: frame duration 18ms 19ms +3%
vue-large-graph-pan: style recalcs 70 65 -7%
vue-large-graph-pan: layouts 0 0 +0%
vue-large-graph-pan: task duration 15016ms 12646ms -16%
vue-large-graph-pan: DOM nodes -8343 -8343 +0%
vue-large-graph-pan: script duration 931ms 835ms -10%
vue-large-graph-pan: event listeners -16472 -16486 +0%
vue-large-graph-pan: TBT 15ms 0ms -100%
vue-large-graph-pan: frame duration 20ms 18ms -8%
workflow-execution: style recalcs 19 17 -12% z=-0.6
workflow-execution: layouts 5 5 -7% z=-0.9
workflow-execution: task duration 136ms 127ms -6% z=0.2
workflow-execution: DOM nodes 167 159 -5% z=-0.2
workflow-execution: script duration 33ms 29ms -10% z=-0.1
workflow-execution: event listeners 71 71 +0% ⚠️ z=4.6
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: frame duration 17ms 17ms -0% z=-0.2
Historical variance (last 10 runs)
Metric μ σ CV
canvas-idle: style recalcs 11 1 4.9%
canvas-idle: layouts 0 0 0.0%
canvas-idle: task duration 397ms 35ms 8.7%
canvas-idle: DOM nodes 22 1 5.9%
canvas-idle: script duration 26ms 2ms 8.9%
canvas-idle: event listeners 10 4 38.6%
canvas-idle: TBT 0ms 0ms 0.0%
canvas-idle: frame duration 17ms 0ms 0.0%
canvas-mouse-sweep: style recalcs 79 2 2.8%
canvas-mouse-sweep: layouts 12 0 0.0%
canvas-mouse-sweep: task duration 866ms 58ms 6.7%
canvas-mouse-sweep: DOM nodes 62 2 3.6%
canvas-mouse-sweep: script duration 136ms 7ms 5.5%
canvas-mouse-sweep: event listeners 9 4 46.3%
canvas-mouse-sweep: TBT 0ms 0ms 0.0%
canvas-mouse-sweep: frame duration 17ms 0ms 0.0%
canvas-zoom-sweep: style recalcs 31 0 1.5%
canvas-zoom-sweep: layouts 6 0 0.0%
canvas-zoom-sweep: task duration 330ms 23ms 7.1%
canvas-zoom-sweep: DOM nodes 79 1 0.8%
canvas-zoom-sweep: script duration 28ms 3ms 11.4%
canvas-zoom-sweep: event listeners 23 4 18.4%
canvas-zoom-sweep: TBT 0ms 0ms 0.0%
canvas-zoom-sweep: frame duration 17ms 0ms 0.0%
dom-widget-clipping: style recalcs 13 1 4.1%
dom-widget-clipping: layouts 0 0 0.0%
dom-widget-clipping: task duration 368ms 18ms 4.8%
dom-widget-clipping: DOM nodes 22 2 7.1%
dom-widget-clipping: script duration 68ms 4ms 5.6%
dom-widget-clipping: event listeners 8 8 99.9%
dom-widget-clipping: TBT 0ms 0ms 0.0%
dom-widget-clipping: frame duration 17ms 0ms 0.0%
large-graph-idle: style recalcs 12 0 2.7%
large-graph-idle: layouts 0 0 0.0%
large-graph-idle: task duration 554ms 59ms 10.6%
large-graph-idle: DOM nodes 24 1 3.3%
large-graph-idle: script duration 104ms 12ms 11.7%
large-graph-idle: event listeners 25 7 28.2%
large-graph-idle: TBT 0ms 0ms 0.0%
large-graph-idle: frame duration 17ms 0ms 0.0%
large-graph-pan: style recalcs 70 1 0.9%
large-graph-pan: layouts 0 0 0.0%
large-graph-pan: task duration 1084ms 50ms 4.7%
large-graph-pan: DOM nodes 19 2 9.7%
large-graph-pan: script duration 405ms 23ms 5.7%
large-graph-pan: event listeners 5 1 15.9%
large-graph-pan: TBT 0ms 0ms 0.0%
large-graph-pan: frame duration 17ms 0ms 0.0%
minimap-idle: style recalcs 9 1 6.9%
minimap-idle: layouts 0 0 0.0%
minimap-idle: task duration 535ms 51ms 9.5%
minimap-idle: DOM nodes 19 1 6.9%
minimap-idle: script duration 99ms 11ms 11.1%
minimap-idle: event listeners 5 1 15.9%
minimap-idle: TBT 0ms 0ms 0.0%
minimap-idle: frame duration 17ms 0ms 0.0%
subgraph-dom-widget-clipping: style recalcs 48 1 1.4%
subgraph-dom-widget-clipping: layouts 0 0 0.0%
subgraph-dom-widget-clipping: task duration 380ms 21ms 5.5%
subgraph-dom-widget-clipping: DOM nodes 22 1 5.7%
subgraph-dom-widget-clipping: script duration 129ms 8ms 5.8%
subgraph-dom-widget-clipping: event listeners 17 7 41.7%
subgraph-dom-widget-clipping: TBT 0ms 0ms 0.0%
subgraph-dom-widget-clipping: frame duration 17ms 0ms 0.0%
subgraph-idle: style recalcs 11 1 6.9%
subgraph-idle: layouts 0 0 0.0%
subgraph-idle: task duration 375ms 31ms 8.3%
subgraph-idle: DOM nodes 22 2 7.8%
subgraph-idle: script duration 21ms 3ms 12.7%
subgraph-idle: event listeners 12 8 63.4%
subgraph-idle: TBT 0ms 0ms 0.0%
subgraph-idle: frame duration 17ms 0ms 0.0%
subgraph-mouse-sweep: style recalcs 80 2 2.2%
subgraph-mouse-sweep: layouts 16 0 0.0%
subgraph-mouse-sweep: task duration 784ms 70ms 9.0%
subgraph-mouse-sweep: DOM nodes 67 2 3.1%
subgraph-mouse-sweep: script duration 102ms 7ms 7.3%
subgraph-mouse-sweep: event listeners 8 4 51.6%
subgraph-mouse-sweep: TBT 0ms 0ms 0.0%
subgraph-mouse-sweep: frame duration 17ms 0ms 0.0%
workflow-execution: style recalcs 18 1 6.8%
workflow-execution: layouts 5 0 5.6%
workflow-execution: task duration 124ms 12ms 9.5%
workflow-execution: DOM nodes 161 6 3.8%
workflow-execution: script duration 30ms 4ms 11.8%
workflow-execution: event listeners 52 4 7.9%
workflow-execution: TBT 0ms 0ms 0.0%
workflow-execution: frame duration 17ms 0ms 0.0%
Trend (last 10 commits on main)
Metric Trend Dir Latest
canvas-idle: style recalcs █▅▁▃▁▃▆█▆█ ➡️ 12
canvas-idle: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
canvas-idle: task duration ▃▃▅▆▂█▃▁▃▃ ➡️ 391ms
canvas-idle: DOM nodes █▄▁▂▂▅▆▆▇▇ ➡️ 24
canvas-idle: script duration ▅▃▆▇▅█▄▁▅▆ ➡️ 27ms
canvas-idle: event listeners █▂▁▂▇██▂█▆ 📈 11
canvas-idle: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-idle: frame duration ▁▆█▆▆▃▁▁▃▁ ➡️ 17ms
canvas-mouse-sweep: style recalcs ▂▁▄▄▆▇▆▃█▅ ➡️ 79
canvas-mouse-sweep: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 12
canvas-mouse-sweep: task duration ▃▂▄▄▅█▆▁▆▄ ➡️ 868ms
canvas-mouse-sweep: DOM nodes ▁▁▄▂▅█▇▃▆▆ ➡️ 64
canvas-mouse-sweep: script duration ▆▆▆▅▅█▆▁▅▆ ➡️ 139ms
canvas-mouse-sweep: event listeners ▁▇▁▁▁██▇▁█ 📈 13
canvas-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-mouse-sweep: frame duration ▄▁██▁▅██▅▄ ➡️ 17ms
canvas-zoom-sweep: style recalcs ▃▆█▄▄▆▁▆▁▆ ➡️ 32
canvas-zoom-sweep: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 6
canvas-zoom-sweep: task duration ▂▄▅▆▃█▄▁▁▅ ➡️ 338ms
canvas-zoom-sweep: DOM nodes ▁▄█▅▆▆▄▃▅▄ ➡️ 79
canvas-zoom-sweep: script duration ▂▅▇▆▅█▄▁▂▆ ➡️ 30ms
canvas-zoom-sweep: event listeners ▂▂█▁██▇▁█▁ ➡️ 19
canvas-zoom-sweep: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-zoom-sweep: frame duration ▁▁▁█▁▁███▁ ➡️ 17ms
dom-widget-clipping: style recalcs ▄█▇▇▁▇▄▇▂▅ ➡️ 13
dom-widget-clipping: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
dom-widget-clipping: task duration ▃▅▆▅▂▇█▁▅▅ ➡️ 371ms
dom-widget-clipping: DOM nodes ▄█▇▅▁▅▄▇▃▄ ➡️ 21
dom-widget-clipping: script duration ▅▇▇▆▃█▇▁▇▇ ➡️ 71ms
dom-widget-clipping: event listeners ▅██▁▁▁▁█▁▁ 📉 2
dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
dom-widget-clipping: frame duration ▄█▇▅▇▇▅▅▁▇ ➡️ 17ms
large-graph-idle: style recalcs ▁▃▆▃▆▆▃▆██ ➡️ 12
large-graph-idle: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-idle: task duration ▃▃▇▅▃██▁▂▅ ➡️ 569ms
large-graph-idle: DOM nodes ▃▁▂▃▆▆▇▂█▆ ➡️ 25
large-graph-idle: script duration ▅▅▇▆▅█▆▁▃▆ ➡️ 110ms
large-graph-idle: event listeners █▄▁▄▇▇█▂█▇ 📈 29
large-graph-idle: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-idle: frame duration ▂▁▂▄▅▄▂▂▅█ ➡️ 17ms
large-graph-pan: style recalcs ▂▂▂▁▇▅▃█▆▃ ➡️ 69
large-graph-pan: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-pan: task duration ▄▄▆▄▄█▆▁▂▅ ➡️ 1100ms
large-graph-pan: DOM nodes ▁▃▁▁▅▁▂█▅▂ ➡️ 18
large-graph-pan: script duration ▅▄▆▄▅█▄▁▄▅ ➡️ 413ms
large-graph-pan: event listeners ▆▁▁▃▆▁▃██▃ ➡️ 5
large-graph-pan: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-pan: frame duration ▃▁█▆▆▆▆█▁▆ ➡️ 17ms
minimap-idle: style recalcs ▄█▁▂▇▂▁▇█▄ ➡️ 9
minimap-idle: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
minimap-idle: task duration ▃▄▅▇▃█▅▁▁▅ ➡️ 547ms
minimap-idle: DOM nodes ▄█▁▂▇▂▁▇█▄ ➡️ 19
minimap-idle: script duration ▅▆▆▇▅█▅▁▃▆ ➡️ 106ms
minimap-idle: event listeners ▁▃▁▁▆▁▃█▆▁ ➡️ 4
minimap-idle: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
minimap-idle: frame duration ▁█▆▆▃▃▆█▆█ ➡️ 17ms
subgraph-dom-widget-clipping: style recalcs ▃▁▆█▇▃▆▇█▅ ➡️ 48
subgraph-dom-widget-clipping: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-dom-widget-clipping: task duration ▅▂▅█▂▆█▁▂▇ ➡️ 398ms
subgraph-dom-widget-clipping: DOM nodes ▂▁▅▅▅▁▇▅█▄ ➡️ 22
subgraph-dom-widget-clipping: script duration ▅▂▄█▂▅▇▁▂▅ ➡️ 131ms
subgraph-dom-widget-clipping: event listeners ▁▅██▁▁█▅█▅ 📈 16
subgraph-dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-dom-widget-clipping: frame duration ▄█▄▄▄▃▁▆▃▃ ➡️ 17ms
subgraph-idle: style recalcs ▅▁▂▁▆▃▃██▇ ➡️ 12
subgraph-idle: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-idle: task duration ▁▃▆▅▂█▅▁▁▄ ➡️ 378ms
subgraph-idle: DOM nodes ▄▁▂▁▅▃▂▇█▇ ➡️ 24
subgraph-idle: script duration ▂▃▇▆▂█▅▂▁▅ ➡️ 22ms
subgraph-idle: event listeners ▁▁▁▁▅▄▁███ 📈 21
subgraph-idle: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-idle: frame duration ▃▆▆▆▃▆▁▃▆█ ➡️ 17ms
subgraph-mouse-sweep: style recalcs ▄▂▄█▅▆▃▁▃▄ ➡️ 81
subgraph-mouse-sweep: layouts ▄▄▄▄▄▄▄▄▄▄ ➡️ 16
subgraph-mouse-sweep: task duration ▄▄▅▇▄█▆▁▃▅ ➡️ 785ms
subgraph-mouse-sweep: DOM nodes ▃▂▃█▄▅▃▁▄▃ ➡️ 66
subgraph-mouse-sweep: script duration ▅▆▇▆▅██▁▄▆ ➡️ 105ms
subgraph-mouse-sweep: event listeners ▁▁▁█▇▂▁▇▇▁ ➡️ 5
subgraph-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-mouse-sweep: frame duration ▄▆▄▆▃▃█▁▃▃ ➡️ 17ms
workflow-execution: style recalcs ▃▆█▇▆▆▇▃▄▁ ➡️ 15
workflow-execution: layouts ▆▆▁▆▆█▆▃▆▃ ➡️ 5
workflow-execution: task duration ▄▆▆▆▁▇█▁▃▃ ➡️ 120ms
workflow-execution: DOM nodes ▄▃▅▃█▃▃▄▃▁ ➡️ 152
workflow-execution: script duration ▅▄▅▆▂▇█▁▃▄ ➡️ 29ms
workflow-execution: event listeners ▄███▁██▄█▄ ➡️ 49
workflow-execution: TBT ▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
workflow-execution: frame duration ▆▃▄▁▄█▆▅▄▆ ➡️ 17ms
Raw data
{
  "timestamp": "2026-03-25T06:27:16.559Z",
  "gitSha": "76f7c0dc0825ad1137c7cecbc9a116049dd135fb",
  "branch": "test/subgraph-promoted-widget-hide-regression",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2040.4269999999656,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 12.240999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 410.0570000000001,
      "heapDeltaBytes": 21103392,
      "domNodes": 22,
      "jsHeapTotalBytes": 22544384,
      "scriptDurationMs": 29.843,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000073
    },
    {
      "name": "canvas-idle",
      "durationMs": 2021.2850000000344,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 9.334000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 411.2749999999999,
      "heapDeltaBytes": 20422376,
      "domNodes": 21,
      "jsHeapTotalBytes": 22806528,
      "scriptDurationMs": 26.794000000000004,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-idle",
      "durationMs": 1999.3899999999485,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.592,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 395.37200000000007,
      "heapDeltaBytes": 19915104,
      "domNodes": 22,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 22.760999999999996,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2030.7050000000118,
      "styleRecalcs": 84,
      "styleRecalcDurationMs": 46.908,
      "layouts": 12,
      "layoutDurationMs": 3.5399999999999996,
      "taskDurationMs": 1033.344,
      "heapDeltaBytes": 15462700,
      "domNodes": 68,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 127.03200000000001,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1862.0520000000056,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 39.089,
      "layouts": 12,
      "layoutDurationMs": 3.913,
      "taskDurationMs": 806.748,
      "heapDeltaBytes": 16504588,
      "domNodes": 57,
      "jsHeapTotalBytes": 23592960,
      "scriptDurationMs": 131.667,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2035.0729999998975,
      "styleRecalcs": 84,
      "styleRecalcDurationMs": 44.339,
      "layouts": 12,
      "layoutDurationMs": 3.508,
      "taskDurationMs": 992.6000000000001,
      "heapDeltaBytes": 6349428,
      "domNodes": 68,
      "jsHeapTotalBytes": 25690112,
      "scriptDurationMs": 127.26399999999998,
      "eventListeners": 30,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1746.124000000009,
      "styleRecalcs": 33,
      "styleRecalcDurationMs": 17.718000000000004,
      "layouts": 6,
      "layoutDurationMs": 0.596,
      "taskDurationMs": 325.19800000000004,
      "heapDeltaBytes": 24516808,
      "domNodes": 80,
      "jsHeapTotalBytes": 21233664,
      "scriptDurationMs": 23.502,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1728.3110000000192,
      "styleRecalcs": 33,
      "styleRecalcDurationMs": 19.032,
      "layouts": 6,
      "layoutDurationMs": 0.7790000000000001,
      "taskDurationMs": 346.39,
      "heapDeltaBytes": 24311948,
      "domNodes": 80,
      "jsHeapTotalBytes": 20709376,
      "scriptDurationMs": 26.384,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.659999999999947
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1757.2229999999536,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 18.047,
      "layouts": 6,
      "layoutDurationMs": 0.8420000000000001,
      "taskDurationMs": 331.48199999999997,
      "heapDeltaBytes": 24663296,
      "domNodes": 79,
      "jsHeapTotalBytes": 20971520,
      "scriptDurationMs": 28.359999999999996,
      "eventListeners": 21,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 655.305999999996,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.848000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 411.335,
      "heapDeltaBytes": 6847356,
      "domNodes": 18,
      "jsHeapTotalBytes": 12320768,
      "scriptDurationMs": 67.34299999999999,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 548.5449999999901,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 6.8420000000000005,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 321.423,
      "heapDeltaBytes": 6858244,
      "domNodes": 17,
      "jsHeapTotalBytes": 13107200,
      "scriptDurationMs": 55.286,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 600.402000000031,
      "styleRecalcs": 14,
      "styleRecalcDurationMs": 10.484,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 360.87800000000004,
      "heapDeltaBytes": 6498292,
      "domNodes": 27,
      "jsHeapTotalBytes": 13631488,
      "scriptDurationMs": 64.402,
      "eventListeners": 26,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2034.368000000029,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 10.651000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 596.2879999999999,
      "heapDeltaBytes": -6301608,
      "domNodes": -265,
      "jsHeapTotalBytes": 15724544,
      "scriptDurationMs": 100.677,
      "eventListeners": -172,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2053.816999999981,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 11.639,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 630.7750000000001,
      "heapDeltaBytes": 4201580,
      "domNodes": -264,
      "jsHeapTotalBytes": 16191488,
      "scriptDurationMs": 102.12700000000001,
      "eventListeners": -146,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000036
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2034.7960000000285,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 11.925999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 610.0160000000001,
      "heapDeltaBytes": 3200832,
      "domNodes": -267,
      "jsHeapTotalBytes": 16453632,
      "scriptDurationMs": 100.39300000000001,
      "eventListeners": -162,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000036
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2210.299999999961,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 17.078999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1191.182,
      "heapDeltaBytes": 18159832,
      "domNodes": -271,
      "jsHeapTotalBytes": 18231296,
      "scriptDurationMs": 410.473,
      "eventListeners": -170,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000073
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2141.282999999987,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 16.25,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1152.648,
      "heapDeltaBytes": 18034312,
      "domNodes": -272,
      "jsHeapTotalBytes": 17707008,
      "scriptDurationMs": 400.038,
      "eventListeners": -170,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2138.6189999999488,
      "styleRecalcs": 70,
      "styleRecalcDurationMs": 18.287000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1128.977,
      "heapDeltaBytes": 16857264,
      "domNodes": -266,
      "jsHeapTotalBytes": 17707008,
      "scriptDurationMs": 385.50700000000006,
      "eventListeners": -170,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "minimap-idle",
      "durationMs": 2049.710999999945,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.152999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 589.0450000000001,
      "heapDeltaBytes": 16704320,
      "domNodes": -270,
      "jsHeapTotalBytes": 15462400,
      "scriptDurationMs": 93.74000000000002,
      "eventListeners": -172,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "minimap-idle",
      "durationMs": 2020.1229999999555,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.284,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 612.6720000000001,
      "heapDeltaBytes": -6336688,
      "domNodes": -267,
      "jsHeapTotalBytes": 16248832,
      "scriptDurationMs": 100.64199999999998,
      "eventListeners": -172,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "minimap-idle",
      "durationMs": 2033.5380000000214,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.670999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 576.4609999999999,
      "heapDeltaBytes": -6204376,
      "domNodes": -265,
      "jsHeapTotalBytes": 15724544,
      "scriptDurationMs": 94.424,
      "eventListeners": -170,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.659999999999947
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 580.5550000000039,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 12.041,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 364.935,
      "heapDeltaBytes": 5915592,
      "domNodes": 22,
      "jsHeapTotalBytes": 14155776,
      "scriptDurationMs": 120.725,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 577.4890000000141,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 13.811,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 381.81,
      "heapDeltaBytes": 6713068,
      "domNodes": 25,
      "jsHeapTotalBytes": 13369344,
      "scriptDurationMs": 125.116,
      "eventListeners": 32,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 551.6619999999648,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 11.892,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 363.609,
      "heapDeltaBytes": 5981148,
      "domNodes": 20,
      "jsHeapTotalBytes": 14155776,
      "scriptDurationMs": 123.125,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2026.8570000000068,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 11.355999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 410.29,
      "heapDeltaBytes": 20015712,
      "domNodes": 23,
      "jsHeapTotalBytes": 22544384,
      "scriptDurationMs": 26.230000000000004,
      "eventListeners": 28,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000036
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2010.592000000031,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 11.950000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 417.60600000000005,
      "heapDeltaBytes": 10536136,
      "domNodes": 25,
      "jsHeapTotalBytes": 25427968,
      "scriptDurationMs": 23.089999999999996,
      "eventListeners": 30,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.659999999999947
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1997.9809999999816,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 9.565,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 363.36800000000005,
      "heapDeltaBytes": 19786848,
      "domNodes": 23,
      "jsHeapTotalBytes": 22806528,
      "scriptDurationMs": 18.309999999999995,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000036
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1993.003999999985,
      "styleRecalcs": 88,
      "styleRecalcDurationMs": 53.785,
      "layouts": 16,
      "layoutDurationMs": 4.763,
      "taskDurationMs": 995.2120000000001,
      "heapDeltaBytes": 3066232,
      "domNodes": 77,
      "jsHeapTotalBytes": 26476544,
      "scriptDurationMs": 100.969,
      "eventListeners": 30,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000036
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 2000.1379999999926,
      "styleRecalcs": 85,
      "styleRecalcDurationMs": 49.082,
      "layouts": 16,
      "layoutDurationMs": 4.493,
      "taskDurationMs": 965.1420000000002,
      "heapDeltaBytes": 11294512,
      "domNodes": 74,
      "jsHeapTotalBytes": 22806528,
      "scriptDurationMs": 99.14900000000002,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1989.1099999999824,
      "styleRecalcs": 87,
      "styleRecalcDurationMs": 46.800999999999995,
      "layouts": 16,
      "layoutDurationMs": 4.311,
      "taskDurationMs": 947.217,
      "heapDeltaBytes": 12110552,
      "domNodes": 75,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 98.307,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 10532.582999999988,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 10513.570999999998,
      "heapDeltaBytes": -50487688,
      "domNodes": -8341,
      "jsHeapTotalBytes": 17129472,
      "scriptDurationMs": 562.728,
      "eventListeners": -16483,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 20
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 10890.664000000015,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 10873.843,
      "heapDeltaBytes": -46867252,
      "domNodes": -8343,
      "jsHeapTotalBytes": 22896640,
      "scriptDurationMs": 593.765,
      "eventListeners": -16480,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.329999999999927
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 10715.163999999959,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 10701.914999999999,
      "heapDeltaBytes": -32599172,
      "domNodes": -8343,
      "jsHeapTotalBytes": 24207360,
      "scriptDurationMs": 550.428,
      "eventListeners": -16481,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.340000000000146
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 12840.83000000004,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 15.287999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 12821.148999999998,
      "heapDeltaBytes": -41554844,
      "domNodes": -8343,
      "jsHeapTotalBytes": -3665920,
      "scriptDurationMs": 848.419,
      "eventListeners": -16503,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.33000000000029
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 12656.379000000015,
      "styleRecalcs": 64,
      "styleRecalcDurationMs": 15.092999999999995,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 12634.730000000001,
      "heapDeltaBytes": -8876172,
      "domNodes": -8343,
      "jsHeapTotalBytes": 24645632,
      "scriptDurationMs": 848.9920000000001,
      "eventListeners": -16479,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 20
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 12500.858999999991,
      "styleRecalcs": 64,
      "styleRecalcDurationMs": 14.065000000000023,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 12480.729,
      "heapDeltaBytes": -21149564,
      "domNodes": -8343,
      "jsHeapTotalBytes": 24383488,
      "scriptDurationMs": 808.757,
      "eventListeners": -16477,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000073
    },
    {
      "name": "workflow-execution",
      "durationMs": 452.0919999999933,
      "styleRecalcs": 16,
      "styleRecalcDurationMs": 23.203,
      "layouts": 5,
      "layoutDurationMs": 1.83,
      "taskDurationMs": 130.948,
      "heapDeltaBytes": 4717052,
      "domNodes": 166,
      "jsHeapTotalBytes": 262144,
      "scriptDurationMs": 31.308000000000003,
      "eventListeners": 71,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998
    },
    {
      "name": "workflow-execution",
      "durationMs": 459.93299999997816,
      "styleRecalcs": 18,
      "styleRecalcDurationMs": 25.128999999999994,
      "layouts": 4,
      "layoutDurationMs": 1.1969999999999998,
      "taskDurationMs": 122.30099999999996,
      "heapDeltaBytes": 4378896,
      "domNodes": 157,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 26.152,
      "eventListeners": 71,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    },
    {
      "name": "workflow-execution",
      "durationMs": 446.32100000001174,
      "styleRecalcs": 17,
      "styleRecalcDurationMs": 25.375,
      "layouts": 5,
      "layoutDurationMs": 1.4580000000000002,
      "taskDurationMs": 127.24100000000001,
      "heapDeltaBytes": 4507940,
      "domNodes": 155,
      "jsHeapTotalBytes": 524288,
      "scriptDurationMs": 30.660999999999998,
      "eventListeners": 71,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.65999999999999
    }
  ]
}

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
browser_tests/fixtures/selectors.ts (1)

101-120: TestIdValue type union is missing the new subgraphEditor namespace.

The new subgraphEditor namespace is not included in the TestIdValue union type, breaking type completeness.

♻️ Proposed fix
   | (typeof TestIds.propertiesPanel)[keyof typeof TestIds.propertiesPanel]
+  | (typeof TestIds.subgraphEditor)[keyof typeof TestIds.subgraphEditor]
   | (typeof TestIds.node)[keyof typeof TestIds.node]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@browser_tests/fixtures/selectors.ts` around lines 101 - 120, The TestIdValue
union is missing the new TestIds.subgraphEditor namespace; update the
TestIdValue type to include | (typeof TestIds.subgraphEditor)[keyof typeof
TestIds.subgraphEditor] so the union covers subgraphEditor IDs (locate the
TestIdValue type in selectors.ts and add that clause alongside the other
TestIds.<namespace> entries).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@browser_tests/fixtures/selectors.ts`:
- Around line 101-120: The TestIdValue union is missing the new
TestIds.subgraphEditor namespace; update the TestIdValue type to include |
(typeof TestIds.subgraphEditor)[keyof typeof TestIds.subgraphEditor] so the
union covers subgraphEditor IDs (locate the TestIdValue type in selectors.ts and
add that clause alongside the other TestIds.<namespace> entries).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 13a967be-4134-431f-9467-0d32ee3392f8

📥 Commits

Reviewing files that changed from the base of the PR and between a44fa1f and ad4d42a.

📒 Files selected for processing (5)
  • browser_tests/fixtures/selectors.ts
  • browser_tests/tests/subgraphPromotedWidgetPanel.spec.ts
  • src/components/rightSidePanel/RightSidePanel.vue
  • src/components/rightSidePanel/subgraph/SubgraphEditor.vue
  • src/components/rightSidePanel/subgraph/SubgraphNodeWidget.vue

@jaeone94 jaeone94 marked this pull request as draft March 26, 2026 16:01
Copy link
Copy Markdown
Contributor

@christian-byrne christian-byrne left a comment

Choose a reason for hiding this comment

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

Good test design and coverage of the targeted regressions. Two blockers:

  1. Missing workflow fixture: the test loads 'subgraphs/test-values-input-subgraph' but that JSON file is not in the PR diff. Tests will crash at runtime without it.

  2. TestIdValue type not updated: new subgraphEditor namespace added to TestIds but the TestIdValue union type is missing the corresponding entry. Needs:
    | (typeof TestIds.subgraphEditor)[keyof typeof TestIds.subgraphEditor]

Also worth considering: the 3 raw CSS icon selectors (.icon-\[lucide--link\], .icon-\[lucide--eye\], .icon-\[lucide--more-vertical\]) are fragile — if the icon library changes, tests break. data-testid attributes on those elements would be more stable.

@jaeone94
Copy link
Copy Markdown
Collaborator Author

I am submitting a pull request to fix the issue based on the feedback in the comments.

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

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants