Skip to content

test: stabilize node help locale e2e#12998

Open
jaeone94 wants to merge 2 commits into
mainfrom
jaeone/fix-nodehelp-locale-e2e
Open

test: stabilize node help locale e2e#12998
jaeone94 wants to merge 2 commits into
mainfrom
jaeone/fix-nodehelp-locale-e2e

Conversation

@jaeone94

@jaeone94 jaeone94 commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Stabilizes the locale-specific Node Help E2E by setting the locale through the existing Playwright settings fixture before app bootstrap instead of racing a workflow reload pulse.

Changes

  • What: Removed the brittle in-page locale mutation helper and uses test.use({ initialSettings: { 'Comfy.Locale': 'ja' } }) for the locale-specific documentation case.
  • What: Keeps the Japanese and English doc routes local to the test, then verifies the Japanese help content after loading the default workflow.
  • Dependencies: None.

Review Focus

Please focus on whether the E2E now waits on the correct setup boundary. The previous helper watched ChangeTracker.isLoadingGraph after changing Comfy.Locale; once unrelated workflow-load work became faster, that loading pulse could complete before the helper observed it. Pre-boot initialSettings avoids that timing dependency and uses existing test infrastructure.

Verification:

  • pnpm exec oxfmt --check browser_tests/tests/nodeHelp.spec.ts browser_tests/fixtures/helpers/WorkflowHelper.ts
  • pnpm exec eslint browser_tests/tests/nodeHelp.spec.ts browser_tests/fixtures/helpers/WorkflowHelper.ts
  • pnpm typecheck:browser
  • PLAYWRIGHT_LOCAL=1 PLAYWRIGHT_TEST_URL=http://localhost:5176 pnpm exec playwright test browser_tests/tests/nodeHelp.spec.ts --grep "Should handle locale-specific documentation" --project=chromium --repeat-each=10

Screenshots (if applicable)

N/A

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR refactors the locale-specific node help browser test: it removes the setLocaleAndWaitForWorkflowReload runtime helper and replaces it with Playwright's test.use({ initialSettings }) to set Comfy.Locale declaratively, while mocking both locale doc files. It also fixes the AppMode import path in WorkflowHelper.ts.

Changes

Browser Test Locale Refactor and Import Fix

Layer / File(s) Summary
Locale test refactored to declarative settings
browser_tests/tests/nodeHelp.spec.ts
Removes setLocaleAndWaitForWorkflowReload helper and WorkspaceStore import. Rewrites the Locale-specific documentation suite to set Comfy.Locale via test.use({ initialSettings: { 'Comfy.Locale': 'ja' } }), mocks both ja.md and en.md responses, and removes the try/finally cleanup that previously reset locale to English.
WorkflowHelper import path fix
browser_tests/fixtures/helpers/WorkflowHelper.ts
Changes AppMode import source from @/composables/useAppMode to @/utils/appMode and consolidates ComfyApiWorkflow/ComfyWorkflowJSON into a single import type block.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐇 Hop hop, no more finally-trap,
The locale is set before the map!
test.use declares what was runtime before,
And imports find their true path once more.
Clean tests, clean hops — who could ask for more? 🌸

🚥 Pre-merge checks | ✅ 6 | ❌ 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 (6 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: stabilizing a locale-specific Node Help E2E test by addressing timing issues.
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.
End-To-End Regression Coverage For Fixes ✅ Passed PR only modifies browser_tests files and uses "Stabilizes" (not bug-fix language), so check conditions are not all met. Additionally, the PR includes E2E test updates itself.
Adr Compliance For Entity/Litegraph Changes ✅ Passed PR modifies only browser_tests/ directory files; does not touch src/lib/litegraph/, src/ecs/, or entity-related source files, so ADR compliance check is not applicable.
Description check ✅ Passed The PR description follows the template structure with Summary, Changes, and Review Focus sections, providing clear context about the test stabilization and locale setup approach.

✏️ 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 jaeone/fix-nodehelp-locale-e2e

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

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

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

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

📦 Bundle: 7.45 MB gzip 🟢 -31 B

Details

Summary

  • Raw size: 31.3 MB baseline 31.3 MB — ⚪ 0 B
  • Gzip: 7.45 MB baseline 7.45 MB — 🟢 -31 B
  • Brotli: 5.1 MB baseline 5.1 MB — 🔴 +376 B
  • Bundles: 280 current • 280 baseline • 126 added / 126 removed

Category Glance
Vendor & Third-Party ⚪ 0 B (15.3 MB) · Other ⚪ 0 B (10.4 MB) · Utilities & Hooks ⚪ 0 B (3.32 MB) · Graph Workspace ⚪ 0 B (1.25 MB) · Panels & Settings ⚪ 0 B (525 kB) · Data & Services ⚪ 0 B (268 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-BtFawdd7.js (removed) 46.7 kB 🟢 -46.7 kB 🟢 -13.7 kB 🟢 -11.9 kB
assets/index-DGxJy5Q8.js (new) 46.7 kB 🔴 +46.7 kB 🔴 +13.7 kB 🔴 +11.8 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-anWRPhta.js (new) 1.25 MB 🔴 +1.25 MB 🔴 +266 kB 🔴 +201 kB
assets/GraphView-B9AFf1Da.js (removed) 1.25 MB 🟢 -1.25 MB 🟢 -266 kB 🟢 -201 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-Ch1dIaDQ.js (new) 19.5 kB 🔴 +19.5 kB 🔴 +5.06 kB 🔴 +4.48 kB
assets/CloudSurveyView-Djm4yibX.js (removed) 19.5 kB 🟢 -19.5 kB 🟢 -5.06 kB 🟢 -4.48 kB
assets/CloudLoginView-BNxA3NpH.js (new) 11.4 kB 🔴 +11.4 kB 🔴 +3.06 kB 🔴 +2.68 kB
assets/CloudLoginView-CVfmqJQb.js (removed) 11.4 kB 🟢 -11.4 kB 🟢 -3.06 kB 🟢 -2.68 kB
assets/CloudSignupView-BVILXzsq.js (new) 9.7 kB 🔴 +9.7 kB 🔴 +2.71 kB 🔴 +2.38 kB
assets/CloudSignupView-DASAlT6m.js (removed) 9.7 kB 🟢 -9.7 kB 🟢 -2.71 kB 🟢 -2.38 kB
assets/CloudLayoutView-CrC9Q6Jb.js (removed) 9.36 kB 🟢 -9.36 kB 🟢 -2.34 kB 🟢 -2.02 kB
assets/CloudLayoutView-Crhm5p6k.js (new) 9.36 kB 🔴 +9.36 kB 🔴 +2.34 kB 🔴 +2.02 kB
assets/UserCheckView-CXSOlzvK.js (new) 8.8 kB 🔴 +8.8 kB 🔴 +2.22 kB 🔴 +1.93 kB
assets/UserCheckView-D65SK-wM.js (removed) 8.8 kB 🟢 -8.8 kB 🟢 -2.22 kB 🟢 -1.93 kB
assets/UserSelectView-BgsaOHzl.js (removed) 6 kB 🟢 -6 kB 🟢 -2.15 kB 🟢 -1.88 kB
assets/UserSelectView-CoqN6hpS.js (new) 6 kB 🔴 +6 kB 🔴 +2.15 kB 🔴 +1.88 kB
assets/CloudForgotPasswordView-DvlluhSG.js (new) 5.15 kB 🔴 +5.15 kB 🔴 +1.75 kB 🔴 +1.54 kB
assets/CloudForgotPasswordView-DwdjeEvr.js (removed) 5.15 kB 🟢 -5.15 kB 🟢 -1.75 kB 🟢 -1.53 kB
assets/CloudAuthTimeoutView-85DxbcZH.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/CloudAuthTimeoutView-jNlnB3lL.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/CloudSubscriptionRedirectView-CqK1cmI_.js (new) 4.3 kB 🔴 +4.3 kB 🔴 +1.57 kB 🔴 +1.38 kB
assets/CloudSubscriptionRedirectView-D5maTpAM.js (removed) 4.3 kB 🟢 -4.3 kB 🟢 -1.57 kB 🟢 -1.38 kB

Status: 9 added / 9 removed / 3 unchanged

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-D4AfpkrD.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.96 kB 🔴 +8.81 kB
assets/KeybindingPanel-qPIzSSHZ.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.96 kB 🟢 -8.81 kB
assets/SecretsPanel-C3-TDfCD.js (removed) 24.2 kB 🟢 -24.2 kB 🟢 -5.76 kB 🟢 -5.06 kB
assets/SecretsPanel-C4dredxA.js (new) 24.2 kB 🔴 +24.2 kB 🔴 +5.76 kB 🔴 +5.07 kB
assets/LegacyCreditsPanel-BV8g0fBA.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5.52 kB 🟢 -4.85 kB
assets/LegacyCreditsPanel-uuFGqlbW.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5.52 kB 🔴 +4.85 kB
assets/SubscriptionPanel-C-we9K64.js (new) 19.2 kB 🔴 +19.2 kB 🔴 +5.03 kB 🔴 +4.4 kB
assets/SubscriptionPanel-C0z8pbar.js (removed) 19.2 kB 🟢 -19.2 kB 🟢 -5.03 kB 🟢 -4.4 kB
assets/AboutPanel-BL-sMaeX.js (new) 11.7 kB 🔴 +11.7 kB 🔴 +3.22 kB 🔴 +2.89 kB
assets/AboutPanel-C3XrshRs.js (removed) 11.7 kB 🟢 -11.7 kB 🟢 -3.22 kB 🟢 -2.88 kB
assets/ExtensionPanel-1n1baIBR.js (removed) 9.03 kB 🟢 -9.03 kB 🟢 -2.49 kB 🟢 -2.2 kB
assets/ExtensionPanel-NVSRlLHt.js (new) 9.03 kB 🔴 +9.03 kB 🔴 +2.49 kB 🔴 +2.2 kB
assets/ServerConfigPanel-CKZroz5l.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +1.98 kB 🔴 +1.77 kB
assets/ServerConfigPanel-CQkYvLkK.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -1.98 kB 🟢 -1.77 kB
assets/UserPanel-CQ6EgjVs.js (new) 5.78 kB 🔴 +5.78 kB 🔴 +1.82 kB 🔴 +1.58 kB
assets/UserPanel-Dey2-M_s.js (removed) 5.78 kB 🟢 -5.78 kB 🟢 -1.82 kB 🟢 -1.58 kB
assets/refreshRemoteConfig-DiJG9WH8.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.06 kB 🔴 +940 B
assets/refreshRemoteConfig-OIErMt_Q.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.06 kB 🟢 -938 B
assets/cloudRemoteConfig-D9GfZxsU.js (removed) 990 B 🟢 -990 B 🟢 -542 B 🟢 -460 B
assets/cloudRemoteConfig-NhNDubsK.js (new) 990 B 🔴 +990 B 🔴 +541 B 🔴 +460 B
assets/refreshRemoteConfig-Cuhjs3yS.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +92 B
assets/refreshRemoteConfig-sFrdHWbp.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -83 B

Status: 11 added / 11 removed / 15 unchanged

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-C90ob3Sj.js (new) 3.69 kB 🔴 +3.69 kB 🔴 +1.3 kB 🔴 +1.13 kB
assets/auth-L1c-GrGO.js (removed) 3.69 kB 🟢 -3.69 kB 🟢 -1.3 kB 🟢 -1.14 kB
assets/usePostAuthRedirect-BSq5EUFM.js (new) 3.33 kB 🔴 +3.33 kB 🔴 +1.28 kB 🔴 +1.11 kB
assets/usePostAuthRedirect-h2E3Dojs.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.28 kB 🟢 -1.11 kB
assets/SignUpForm-BxyC_aoP.js (new) 3.19 kB 🔴 +3.19 kB 🔴 +1.29 kB 🔴 +1.15 kB
assets/SignUpForm-DPyJkhR6.js (removed) 3.19 kB 🟢 -3.19 kB 🟢 -1.29 kB 🟢 -1.15 kB
assets/UpdatePasswordContent-BoBHZA2g.js (removed) 1.92 kB 🟢 -1.92 kB 🟢 -878 B 🟢 -768 B
assets/UpdatePasswordContent-Di4UX7iB.js (new) 1.92 kB 🔴 +1.92 kB 🔴 +877 B 🔴 +769 B
assets/authStore-BCLoPzVA.js (new) 130 B 🔴 +130 B 🔴 +109 B 🔴 +106 B
assets/authStore-BTLqQQxS.js (removed) 130 B 🟢 -130 B 🟢 -109 B 🟢 -107 B
assets/auth-AjNtS1mq.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +88 B
assets/auth-Bl4aF08G.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -79 B

Status: 6 added / 6 removed / 3 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-CaNPA44U.js (new) 86 kB 🔴 +86 kB 🔴 +18.6 kB 🔴 +15.9 kB
assets/ComfyHubPublishDialog-DaxbY4L0.js (removed) 86 kB 🟢 -86 kB 🟢 -18.6 kB 🟢 -15.9 kB
assets/useShareDialog-CiPsjA5C.js (removed) 23.4 kB 🟢 -23.4 kB 🟢 -5.54 kB 🟢 -4.91 kB
assets/useShareDialog-CYVtepFT.js (new) 23.4 kB 🔴 +23.4 kB 🔴 +5.54 kB 🔴 +4.93 kB
assets/ComfyHubPublishDialog-B56LE_iW.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +90 B
assets/ComfyHubPublishDialog-DQAHEP0o.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -90 B
assets/useSubscriptionDialog-DCUAROWs.js (removed) 110 B 🟢 -110 B 🟢 -102 B 🟢 -88 B
assets/useSubscriptionDialog-DgHKSDVG.js (new) 110 B 🔴 +110 B 🔴 +102 B 🔴 +93 B

Status: 4 added / 4 removed / 1 unchanged

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-Bertg4d7.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +3.82 kB 🔴 +3.41 kB
assets/ComfyQueueButton-DJQRSOQG.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -3.82 kB 🟢 -3.42 kB
assets/useTerminalTabs-C3nM3mgv.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +3.84 kB 🔴 +3.39 kB
assets/useTerminalTabs-Cip0Vm2H.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -3.84 kB 🟢 -3.38 kB
assets/SubscribeButton-BR11OagR.js (removed) 2.44 kB 🟢 -2.44 kB 🟢 -1.05 kB 🟢 -930 B
assets/SubscribeButton-CC3KRTaZ.js (new) 2.44 kB 🔴 +2.44 kB 🔴 +1.05 kB 🔴 +948 B
assets/cloudFeedbackTopbarButton-BPMycTPj.js (new) 829 B 🔴 +829 B 🔴 +495 B 🔴 +422 B
assets/cloudFeedbackTopbarButton-D4VKmjwt.js (removed) 829 B 🟢 -829 B 🟢 -497 B 🟢 -422 B
assets/ComfyQueueButton-Bh68vuf_.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -92 B
assets/ComfyQueueButton-WD7yZUFQ.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +90 B

Status: 5 added / 5 removed / 8 unchanged

Data & Services — 268 kB (baseline 268 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/load3dService-Bl-omduT.js (new) 127 kB 🔴 +127 kB 🔴 +27.9 kB 🔴 +23.6 kB
assets/load3dService-D422JFNi.js (removed) 127 kB 🟢 -127 kB 🟢 -27.9 kB 🟢 -23.6 kB
assets/api-1NVarOXt.js (removed) 83.9 kB 🟢 -83.9 kB 🟢 -22.5 kB 🟢 -19.4 kB
assets/api-DfBoRyxG.js (new) 83.9 kB 🔴 +83.9 kB 🔴 +22.5 kB 🔴 +19.4 kB
assets/workflowShareService-BwZhjkyt.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.91 kB 🟢 -4.35 kB
assets/workflowShareService-Q5R4iksF.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.91 kB 🔴 +4.35 kB
assets/keybindingService-ByOstbdK.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.67 kB 🔴 +3.22 kB
assets/keybindingService-CgfsXR3w.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.67 kB 🟢 -3.22 kB
assets/releaseStore-CJkCW_XF.js (removed) 8.29 kB 🟢 -8.29 kB 🟢 -2.34 kB 🟢 -2.04 kB
assets/releaseStore-CWq03NMa.js (new) 8.29 kB 🔴 +8.29 kB 🔴 +2.33 kB 🔴 +2.04 kB
assets/extensionStore-B1ala9qt.js (removed) 5.29 kB 🟢 -5.29 kB 🟢 -1.86 kB 🟢 -1.57 kB
assets/extensionStore-CBL9sc0t.js (new) 5.29 kB 🔴 +5.29 kB 🔴 +1.86 kB 🔴 +1.58 kB
assets/userStore-_ZmFdhni.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +930 B 🔴 +826 B
assets/userStore-B_ZEFxeP.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -930 B 🟢 -829 B
assets/audioService-BAMwEWA2.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +861 B 🔴 +749 B
assets/audioService-DXUn7v-m.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -861 B 🟢 -747 B
assets/dialogService-_oMLP5ep.js (new) 100 B 🔴 +100 B 🔴 +99 B 🔴 +95 B
assets/dialogService-CYBFZwHb.js (removed) 100 B 🟢 -100 B 🟢 -99 B 🟢 -91 B
assets/settingStore-CT05uAkR.js (removed) 98 B 🟢 -98 B 🟢 -98 B 🟢 -89 B
assets/settingStore-DMrk-BF0.js (new) 98 B 🔴 +98 B 🔴 +98 B 🔴 +94 B
assets/assetsStore-Djunjzm6.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -100 B
assets/assetsStore-Dqs_H308.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +87 B
assets/releaseStore-lmrTw8Id.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -89 B
assets/releaseStore-wjugHwdD.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +73 B
assets/api-BsqMf0_Q.js (removed) 62 B 🟢 -62 B 🟢 -74 B 🟢 -66 B
assets/api-CKGM_XT6.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B

Status: 13 added / 13 removed / 3 unchanged

Utilities & Hooks — 3.32 MB (baseline 3.32 MB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/promotionUtils-BITIsBvD.js (new) 2.97 MB 🔴 +2.97 MB 🔴 +686 kB 🔴 +517 kB
assets/promotionUtils-BrRw175A.js (removed) 2.97 MB 🟢 -2.97 MB 🟢 -686 kB 🟢 -517 kB
assets/useConflictDetection-BfXJa-S_.js (removed) 233 kB 🟢 -233 kB 🟢 -52 kB 🟢 -42.3 kB
assets/useConflictDetection-C2l0ubAB.js (new) 233 kB 🔴 +233 kB 🔴 +52 kB 🔴 +42.3 kB
assets/useLoad3d-2OO1YBK7.js (new) 25.5 kB 🔴 +25.5 kB 🔴 +5.76 kB 🔴 +5.11 kB
assets/useLoad3d-B-5l0S9O.js (removed) 25.5 kB 🟢 -25.5 kB 🟢 -5.76 kB 🟢 -5.09 kB
assets/useLoad3dViewer-5zW51R8l.js (new) 21.1 kB 🔴 +21.1 kB 🔴 +4.98 kB 🔴 +4.36 kB
assets/useLoad3dViewer-DjM6yeoT.js (removed) 21.1 kB 🟢 -21.1 kB 🟢 -4.98 kB 🟢 -4.37 kB
assets/useFeatureFlags-_W3R1a1R.js (new) 5.37 kB 🔴 +5.37 kB 🔴 +1.65 kB 🔴 +1.41 kB
assets/useFeatureFlags-D35nNgIP.js (removed) 5.37 kB 🟢 -5.37 kB 🟢 -1.66 kB 🟢 -1.41 kB
assets/useSessionCookie-C80COEBI.js (new) 3.33 kB 🔴 +3.33 kB 🔴 +1.15 kB 🔴 +985 B
assets/useSessionCookie-wTZz69P0.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.15 kB 🟢 -984 B
assets/subscriptionCheckoutUtil-CkDZzLQo.js (new) 3.31 kB 🔴 +3.31 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/subscriptionCheckoutUtil-Do-qR8ed.js (removed) 3.31 kB 🟢 -3.31 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/assetPreviewUtil-02-cHYC0.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.01 kB 🟢 -884 B
assets/assetPreviewUtil-DZJvLRQp.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1 kB 🔴 +878 B
assets/useUpstreamValue-B2_pVLoh.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -794 B 🟢 -702 B
assets/useUpstreamValue-C7tgYJso.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +792 B 🔴 +703 B
assets/useWorkspaceSwitch-Bqrr1cCR.js (new) 748 B 🔴 +748 B 🔴 +384 B 🔴 +335 B
assets/useWorkspaceSwitch-gjfqMuXX.js (removed) 748 B 🟢 -748 B 🟢 -385 B 🟢 -337 B
assets/useLoad3d-B2aROHK0.js (new) 311 B 🔴 +311 B 🔴 +165 B 🔴 +149 B
assets/useLoad3d-CsvboNsG.js (removed) 311 B 🟢 -311 B 🟢 -164 B 🟢 -150 B
assets/useSessionCookie-Bgb3P1Ke.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -85 B
assets/useSessionCookie-eVYJojcV.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +85 B
assets/useLoad3dViewer-C4s6ahuT.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -87 B
assets/useLoad3dViewer-Cn2jWsYG.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +87 B
assets/useCurrentUser-BN8XL-5X.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +86 B
assets/useCurrentUser-BOzGOSMT.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -89 B

Status: 14 added / 14 removed / 16 unchanged

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

External libraries and shared vendor chunks

Status: 16 unchanged

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

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-C6oHbf9f.js (new) 118 kB 🔴 +118 kB 🔴 +30.4 kB 🔴 +25.8 kB
assets/core-CzLrHG0Q.js (removed) 118 kB 🟢 -118 kB 🟢 -30.5 kB 🟢 -25.8 kB
assets/WidgetSelect-3hc8iq-r.js (removed) 82.6 kB 🟢 -82.6 kB 🟢 -18.1 kB 🟢 -15.6 kB
assets/WidgetSelect-Rj0XlVRG.js (new) 82.6 kB 🔴 +82.6 kB 🔴 +18.1 kB 🔴 +15.6 kB
assets/SubscriptionRequiredDialogContentWorkspace-7EKucJDX.js (removed) 47.8 kB 🟢 -47.8 kB 🟢 -9.08 kB 🟢 -7.84 kB
assets/SubscriptionRequiredDialogContentWorkspace-DljjCgXt.js (new) 47.8 kB 🔴 +47.8 kB 🔴 +9.08 kB 🔴 +7.85 kB
assets/Load3DControls-C2qpKgqH.js (removed) 46.8 kB 🟢 -46.8 kB 🟢 -7.57 kB 🟢 -6.62 kB
assets/Load3DControls-D9eAfUhJ.js (new) 46.8 kB 🔴 +46.8 kB 🔴 +7.57 kB 🔴 +6.63 kB
assets/WorkspacePanelContent-CWTvNK6D.js (new) 33.3 kB 🔴 +33.3 kB 🔴 +6.96 kB 🔴 +6.17 kB
assets/WorkspacePanelContent-Nw_pvQhg.js (removed) 33.3 kB 🟢 -33.3 kB 🟢 -6.96 kB 🟢 -6.17 kB
assets/WidgetPainter-BzmGmfZL.js (new) 32.6 kB 🔴 +32.6 kB 🔴 +7.86 kB 🔴 +7 kB
assets/WidgetPainter-T0kFYhBS.js (removed) 32.6 kB 🟢 -32.6 kB 🟢 -7.86 kB 🟢 -6.97 kB
assets/Load3dViewerContent-BAZs4tKm.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -6.3 kB 🟢 -5.47 kB
assets/Load3dViewerContent-C8n78XOL.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +6.3 kB 🔴 +5.48 kB
assets/SubscriptionRequiredDialogContent-DcDBzxsy.js (removed) 26.6 kB 🟢 -26.6 kB 🟢 -6.56 kB 🟢 -5.8 kB
assets/SubscriptionRequiredDialogContent-DNnsQ5u_.js (new) 26.6 kB 🔴 +26.6 kB 🔴 +6.56 kB 🔴 +5.8 kB
assets/WidgetImageCrop-CjsbK7ka.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.75 kB 🟢 -5.04 kB
assets/WidgetImageCrop-vxqVprET.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.75 kB 🔴 +5.05 kB
assets/SubscriptionPanelContentWorkspace-Ci2nnmE3.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -5.16 kB 🟢 -4.55 kB
assets/SubscriptionPanelContentWorkspace-DHcC19va.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.16 kB 🔴 +4.55 kB
assets/load3d-B0f2nlYm.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -5.18 kB 🟢 -4.49 kB
assets/load3d-BKrbJtl5.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +5.18 kB 🔴 +4.49 kB
assets/CurrentUserPopoverWorkspace-CMEYyG1P.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.68 kB 🔴 +4.18 kB
assets/CurrentUserPopoverWorkspace-DT6oSW5r.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.68 kB 🟢 -4.18 kB
assets/SignInContent-lGVmwRM4.js (new) 19.9 kB 🔴 +19.9 kB 🔴 +4.99 kB 🔴 +4.36 kB
assets/SignInContent-mW3crVOa.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -5 kB 🟢 -4.36 kB
assets/Load3D-DwXTtYTH.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.52 kB 🟢 -3.94 kB
assets/Load3D-DyJjd504.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.52 kB 🔴 +3.94 kB
assets/WidgetInputNumber-CCY8Jofq.js (new) 19 kB 🔴 +19 kB 🔴 +4.79 kB 🔴 +4.25 kB
assets/WidgetInputNumber-Cyr_u-K9.js (removed) 19 kB 🟢 -19 kB 🟢 -4.79 kB 🟢 -4.25 kB
assets/WidgetRecordAudio-B-arx0bG.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.63 kB 🟢 -4.14 kB
assets/WidgetRecordAudio-BxPoNTHb.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.63 kB 🔴 +4.14 kB
assets/WidgetRange-CcOOHLGg.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.17 kB 🟢 -3.73 kB
assets/WidgetRange-DHMBOfKx.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.17 kB 🔴 +3.73 kB
assets/WaveAudioPlayer-3CD2IP5S.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.48 kB 🔴 +3.06 kB
assets/WaveAudioPlayer-WiKXC2lS.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.48 kB 🟢 -3.06 kB
assets/WidgetCurve-DAwU9Pb7.js (removed) 11.3 kB 🟢 -11.3 kB 🟢 -3.5 kB 🟢 -3.16 kB
assets/WidgetCurve-DuRueSVp.js (new) 11.3 kB 🔴 +11.3 kB 🔴 +3.5 kB 🔴 +3.17 kB
assets/TeamWorkspacesDialogContent-BhfF8Fd8.js (new) 10.4 kB 🔴 +10.4 kB 🔴 +3.01 kB 🔴 +2.67 kB
assets/TeamWorkspacesDialogContent-CU-8GXB6.js (removed) 10.4 kB 🟢 -10.4 kB 🟢 -3.01 kB 🟢 -2.68 kB
assets/Load3DConfiguration-an52-dA2.js (removed) 9.02 kB 🟢 -9.02 kB 🟢 -2.66 kB 🟢 -2.35 kB
assets/Load3DConfiguration-C072Dnbg.js (new) 9.02 kB 🔴 +9.02 kB 🔴 +2.66 kB 🔴 +2.35 kB
assets/nodeTemplates-B67htGPW.js (new) 8.33 kB 🔴 +8.33 kB 🔴 +2.88 kB 🔴 +2.54 kB
assets/nodeTemplates-GsQ6Fstx.js (removed) 8.33 kB 🟢 -8.33 kB 🟢 -2.88 kB 🟢 -2.53 kB
assets/onboardingCloudRoutes-C3y3VJ2o.js (new) 8.2 kB 🔴 +8.2 kB 🔴 +2.54 kB 🔴 +2.19 kB
assets/onboardingCloudRoutes-DXRVgqED.js (removed) 8.2 kB 🟢 -8.2 kB 🟢 -2.53 kB 🟢 -2.19 kB
assets/NightlySurveyController-BCA7uZ-4.js (new) 7.95 kB 🔴 +7.95 kB 🔴 +2.7 kB 🔴 +2.38 kB
assets/NightlySurveyController-C2FOG08d.js (removed) 7.95 kB 🟢 -7.95 kB 🟢 -2.7 kB 🟢 -2.4 kB
assets/InviteMemberDialogContent-Dbmv1Cy9.js (removed) 7.03 kB 🟢 -7.03 kB 🟢 -2.13 kB 🟢 -1.85 kB
assets/InviteMemberDialogContent-DRmeFD9b.js (new) 7.03 kB 🔴 +7.03 kB 🔴 +2.14 kB 🔴 +1.85 kB
assets/WidgetWithControl-BVwdT12W.js (new) 6.3 kB 🔴 +6.3 kB 🔴 +2.54 kB 🔴 +2.26 kB
assets/WidgetWithControl-ClBm1hLI.js (removed) 6.3 kB 🟢 -6.3 kB 🟢 -2.54 kB 🟢 -2.26 kB
assets/load3dPreviewExtensions-6jKAEeq_.js (removed) 5.38 kB 🟢 -5.38 kB 🟢 -1.76 kB 🟢 -1.55 kB
assets/load3dPreviewExtensions-EajSFRi8.js (new) 5.38 kB 🔴 +5.38 kB 🔴 +1.75 kB 🔴 +1.55 kB
assets/CreateWorkspaceDialogContent-6ABNxkGV.js (new) 5.19 kB 🔴 +5.19 kB 🔴 +1.83 kB 🔴 +1.59 kB
assets/CreateWorkspaceDialogContent-SFTdX0O0.js (removed) 5.19 kB 🟢 -5.19 kB 🟢 -1.83 kB 🟢 -1.59 kB
assets/missingModelDownload-Bt5Or_XC.js (new) 5.07 kB 🔴 +5.07 kB 🔴 +1.98 kB 🔴 +1.72 kB
assets/missingModelDownload-Dr13MRbk.js (removed) 5.07 kB 🟢 -5.07 kB 🟢 -1.98 kB 🟢 -1.72 kB
assets/FreeTierDialogContent-CNbt3wDj.js (removed) 5.02 kB 🟢 -5.02 kB 🟢 -1.69 kB 🟢 -1.49 kB
assets/FreeTierDialogContent-Lv8YHTQf.js (new) 5.02 kB 🔴 +5.02 kB 🔴 +1.69 kB 🔴 +1.49 kB
assets/EditWorkspaceDialogContent-D08CtVhz.js (removed) 5 kB 🟢 -5 kB 🟢 -1.8 kB 🟢 -1.55 kB
assets/EditWorkspaceDialogContent-DsTCLpi6.js (new) 5 kB 🔴 +5 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/WidgetTextarea-6LKU8jFM.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.89 kB 🔴 +1.66 kB
assets/WidgetTextarea-CEcv2ZHW.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.89 kB 🟢 -1.67 kB
assets/saveMesh-Cumdw2az.js (new) 4.79 kB 🔴 +4.79 kB 🔴 +1.55 kB 🔴 +1.36 kB
assets/saveMesh-Cz-4c2qA.js (removed) 4.79 kB 🟢 -4.79 kB 🟢 -1.55 kB 🟢 -1.36 kB
assets/Preview3d-aVl-zbO0.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.43 kB 🟢 -1.23 kB
assets/Preview3d-ByAMbOxI.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.43 kB 🔴 +1.24 kB
assets/ValueControlPopover-A2_aTPNK.js (removed) 4.55 kB 🟢 -4.55 kB 🟢 -1.59 kB 🟢 -1.41 kB
assets/ValueControlPopover-Dcs4_2w6.js (new) 4.55 kB 🔴 +4.55 kB 🔴 +1.59 kB 🔴 +1.41 kB
assets/CancelSubscriptionDialogContent-B-af03CL.js (removed) 4.54 kB 🟢 -4.54 kB 🟢 -1.66 kB 🟢 -1.44 kB
assets/CancelSubscriptionDialogContent-JJ2MnuDB.js (new) 4.54 kB 🔴 +4.54 kB 🔴 +1.65 kB 🔴 +1.44 kB
assets/tierBenefits-CtbYR1i6.js (removed) 4.46 kB 🟢 -4.46 kB 🟢 -1.58 kB 🟢 -1.36 kB
assets/tierBenefits-TmIw_voL.js (new) 4.46 kB 🔴 +4.46 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/DeleteWorkspaceDialogContent-CqKykrr3.js (new) 3.91 kB 🔴 +3.91 kB 🔴 +1.47 kB 🔴 +1.26 kB
assets/DeleteWorkspaceDialogContent-DNSsX-9f.js (removed) 3.91 kB 🟢 -3.91 kB 🟢 -1.47 kB 🟢 -1.26 kB
assets/LeaveWorkspaceDialogContent-BNX3VTbe.js (new) 3.73 kB 🔴 +3.73 kB 🔴 +1.42 kB 🔴 +1.22 kB
assets/LeaveWorkspaceDialogContent-CUcwKtW5.js (removed) 3.73 kB 🟢 -3.73 kB 🟢 -1.42 kB 🟢 -1.22 kB
assets/RemoveMemberDialogContent-BLbfdWUd.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.37 kB 🟢 -1.19 kB
assets/RemoveMemberDialogContent-Yr6RFSX_.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.37 kB 🔴 +1.19 kB
assets/RevokeInviteDialogContent-Co0gRN3N.js (removed) 3.63 kB 🟢 -3.63 kB 🟢 -1.38 kB 🟢 -1.2 kB
assets/RevokeInviteDialogContent-DFLpsPrX.js (new) 3.63 kB 🔴 +3.63 kB 🔴 +1.38 kB 🔴 +1.2 kB
assets/InviteMemberUpsellDialogContent-D2forhU1.js (new) 3.48 kB 🔴 +3.48 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/InviteMemberUpsellDialogContent-DUwQhwyL.js (removed) 3.48 kB 🟢 -3.48 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/Media3DTop-BWoHM93Y.js (removed) 3.26 kB 🟢 -3.26 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/Media3DTop-DQWIa4Ij.js (new) 3.26 kB 🔴 +3.26 kB 🔴 +1.3 kB 🔴 +1.13 kB
assets/GlobalToast-BcPqOCIK.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.26 kB 🟢 -1.08 kB
assets/GlobalToast-DJjp4imV.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.26 kB 🔴 +1.08 kB
assets/load3dAdvanced-CGnpOdMr.js (new) 2.85 kB 🔴 +2.85 kB 🔴 +1.12 kB 🔴 +977 B
assets/load3dAdvanced-OOdk4v54.js (removed) 2.85 kB 🟢 -2.85 kB 🟢 -1.12 kB 🟢 -974 B
assets/SubscribeToRun-3aPhuAqG.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.1 kB 🟢 -974 B
assets/SubscribeToRun-D4qu77RH.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.1 kB 🔴 +989 B
assets/graphHasMissingNodes-5kfu8F5d.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -908 B 🟢 -791 B
assets/graphHasMissingNodes-CUga4i_4.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +907 B 🔴 +794 B
assets/MediaAudioTop-DAsHJNuY.js (removed) 1.67 kB 🟢 -1.67 kB 🟢 -840 B 🟢 -694 B
assets/MediaAudioTop-dxPF2WPz.js (new) 1.67 kB 🔴 +1.67 kB 🔴 +839 B 🔴 +693 B
assets/CloudRunButtonWrapper-B8XyIlR2.js (new) 1.13 kB 🔴 +1.13 kB 🔴 +549 B 🔴 +516 B
assets/CloudRunButtonWrapper-sn54K4Xz.js (removed) 1.13 kB 🟢 -1.13 kB 🟢 -551 B 🟢 -521 B
assets/cloudSessionCookie-BNMOGfmQ.js (removed) 991 B 🟢 -991 B 🟢 -469 B 🟢 -399 B
assets/cloudSessionCookie-D3mBYF1b.js (new) 991 B 🔴 +991 B 🔴 +468 B 🔴 +427 B
assets/cloudBadges-CF0viZmj.js (removed) 973 B 🟢 -973 B 🟢 -550 B 🟢 -471 B
assets/cloudBadges-maauejHW.js (new) 973 B 🔴 +973 B 🔴 +550 B 🔴 +502 B
assets/cloudSubscription-DJCItjaW.js (new) 820 B 🔴 +820 B 🔴 +451 B 🔴 +363 B
assets/cloudSubscription-Kj1ZMdAJ.js (removed) 820 B 🟢 -820 B 🟢 -454 B 🟢 -364 B
assets/Load3DAdvanced-DGeEU0Mr.js (removed) 813 B 🟢 -813 B 🟢 -455 B 🟢 -407 B
assets/Load3DAdvanced-DGOOSsEv.js (new) 813 B 🔴 +813 B 🔴 +456 B 🔴 +408 B
assets/nightlyBadges-BeaSKkfL.js (new) 464 B 🔴 +464 B 🔴 +304 B 🔴 +254 B
assets/nightlyBadges-tb_vS48w.js (removed) 464 B 🟢 -464 B 🟢 -306 B 🟢 -254 B
assets/missingModelDownload-Cg_ZbWjr.js (removed) 228 B 🟢 -228 B 🟢 -149 B 🟢 -130 B
assets/missingModelDownload-O8p3opZE.js (new) 228 B 🔴 +228 B 🔴 +150 B 🔴 +130 B
assets/SubscriptionPanelContentWorkspace-CUN8C_Sp.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -100 B
assets/SubscriptionPanelContentWorkspace-KWfd7Bui.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +90 B
assets/Load3dViewerContent-BuUQrCKl.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -95 B
assets/Load3dViewerContent-CX6Tn2_t.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +87 B
assets/Load3DAdvanced-BKHRSlHg.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +91 B
assets/Load3DAdvanced-nXMzg31h.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -87 B
assets/WidgetLegacy-B5wSgZiI.js (removed) 119 B 🟢 -119 B 🟢 -108 B 🟢 -94 B
assets/WidgetLegacy-D0VfkvOQ.js (new) 119 B 🔴 +119 B 🔴 +108 B 🔴 +99 B
assets/workflowDraftStoreV2-BUPeCWzZ.js (new) 113 B 🔴 +113 B 🔴 +105 B 🔴 +109 B
assets/workflowDraftStoreV2-DUOPy3gS.js (removed) 113 B 🟢 -113 B 🟢 -105 B 🟢 -117 B
assets/Load3D-C51SsKrR.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +87 B
assets/Load3D-CTI_cg53.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -91 B
assets/changeTracker-DBnvR0o-.js (new) 93 B 🔴 +93 B 🔴 +95 B 🔴 +87 B
assets/changeTracker-DUldnBHc.js (removed) 93 B 🟢 -93 B 🟢 -95 B 🟢 -84 B

Status: 62 added / 62 removed / 89 unchanged

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 55.3 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.6 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 57.4 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 65.8 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 57.6 MB heap
large-graph-pan: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 66.0 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 65.9 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 61.5 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 57.5 MB heap
subgraph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.8 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 45.6 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 161ms TBT · 75.9 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 60.5 MB heap
vue-large-graph-idle: · 58.1 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 159.4 MB heap
vue-large-graph-pan: · 58.1 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 159.1 MB heap
workflow-execution: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 62.1 MB heap

⚠️ 2 regressions detected

Show regressions
Metric Baseline PR (median) Δ Sig
subgraph-dom-widget-clipping: style recalc duration 11ms 15ms +35% ⚠️ z=2.4
workflow-execution: event listeners 19 69 +263% ⚠️ z=3.9
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 -0%
canvas-idle: layout duration 0ms 0ms +0%
canvas-idle: style recalc duration 9ms 10ms +23% z=-0.4
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 9 10 +6% z=-2.9
canvas-idle: task duration 424ms 398ms -6% z=0.1
canvas-idle: script duration 26ms 15ms -40% z=-4.5
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 53.7 MB 55.3 MB +3%
canvas-idle: DOM nodes 18 -148 -919% z=-133.4
canvas-idle: event listeners 4 -97 -2513% z=-22.8
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 3ms -14% z=-2.0
canvas-mouse-sweep: style recalc duration 41ms 32ms -22% z=-3.3
canvas-mouse-sweep: layout count 12 12 +0%
canvas-mouse-sweep: style recalc count 76 72 -5% z=-2.8
canvas-mouse-sweep: task duration 827ms 709ms -14% z=-2.7
canvas-mouse-sweep: script duration 138ms 117ms -15% z=-2.9
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 48.9 MB 53.6 MB +10%
canvas-mouse-sweep: DOM nodes 59 55 -8% z=-3.0
canvas-mouse-sweep: event listeners 4 4 +0% z=-1.1
canvas-zoom-sweep: avg frame time 17ms 17ms -0% z=-0.3
canvas-zoom-sweep: p95 frame time 17ms 17ms +1%
canvas-zoom-sweep: layout duration 1ms 1ms -8% z=-2.4
canvas-zoom-sweep: style recalc duration 17ms 14ms -17% z=-3.2
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 31 31 +0% z=-0.6
canvas-zoom-sweep: task duration 338ms 290ms -14% z=-1.6
canvas-zoom-sweep: script duration 29ms 23ms -20% z=-1.4
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 57.4 MB 57.4 MB -0%
canvas-zoom-sweep: DOM nodes 78 78 +0% z=-1.6
canvas-zoom-sweep: event listeners 19 19 +0% z=-0.9
dom-widget-clipping: avg frame time 17ms 17ms -0% z=-0.2
dom-widget-clipping: p95 frame time 17ms 17ms -1%
dom-widget-clipping: layout duration 0ms 0ms +0%
dom-widget-clipping: style recalc duration 8ms 10ms +21% z=-0.3
dom-widget-clipping: layout count 0 0 +0%
dom-widget-clipping: style recalc count 12 13 +4% z=-1.2
dom-widget-clipping: task duration 367ms 356ms -3% z=-0.5
dom-widget-clipping: script duration 64ms 58ms -10% z=-2.9
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 48.0 MB 65.8 MB +37%
dom-widget-clipping: DOM nodes 20 -135 -773% z=-110.4
dom-widget-clipping: event listeners 0 -102 variance too high
large-graph-idle: avg frame time 17ms 17ms -0% z=-0.6
large-graph-idle: p95 frame time 17ms 17ms +0%
large-graph-idle: layout duration 0ms 0ms +0%
large-graph-idle: style recalc duration 11ms 9ms -18% z=-3.4
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 10 10 +0% z=-5.1
large-graph-idle: task duration 593ms 483ms -19% z=-1.1
large-graph-idle: script duration 110ms 88ms -20% z=-1.4
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 58.9 MB 57.6 MB -2%
large-graph-idle: DOM nodes 20 -137 -785% z=-178.9
large-graph-idle: event listeners 6 -96 -1692% z=-20.0
large-graph-pan: avg frame time 17ms 17ms +0% z=0.8
large-graph-pan: p95 frame time 17ms 17ms +0%
large-graph-pan: layout duration 0ms 0ms +0%
large-graph-pan: style recalc duration 19ms 16ms -18% z=-1.8
large-graph-pan: layout count 0 0 +0%
large-graph-pan: style recalc count 69 68 -2% z=-3.2
large-graph-pan: task duration 1113ms 1024ms -8% z=-1.3
large-graph-pan: script duration 389ms 396ms +2% z=-0.6
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 79.4 MB 66.0 MB -17%
large-graph-pan: DOM nodes 18 13 -28% z=-3.6
large-graph-pan: event listeners 6 6 +0% z=1.3
large-graph-zoom: avg frame time 17ms 17ms +0%
large-graph-zoom: p95 frame time 17ms 17ms -0%
large-graph-zoom: layout duration 8ms 7ms -9%
large-graph-zoom: style recalc duration 20ms 19ms -5%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 65 67 +2%
large-graph-zoom: task duration 1389ms 1265ms -9%
large-graph-zoom: script duration 514ms 487ms -5%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 67.6 MB 65.9 MB -2%
large-graph-zoom: DOM nodes 12 16 +33%
large-graph-zoom: event listeners 8 8 +0%
minimap-idle: avg frame time 17ms 17ms +0% z=0.1
minimap-idle: p95 frame time 17ms 17ms +0%
minimap-idle: layout duration 0ms 0ms +0%
minimap-idle: style recalc duration 9ms 8ms -10% z=-1.6
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 9 11 +17% z=1.3
minimap-idle: task duration 556ms 474ms -15% z=-1.1
minimap-idle: script duration 104ms 85ms -19% z=-1.3
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 61.9 MB 61.5 MB -1%
minimap-idle: DOM nodes 18 21 +17% z=1.3
minimap-idle: event listeners 6 5 -17% z=0.6
subgraph-dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.7
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 15ms +35% ⚠️ z=2.4
subgraph-dom-widget-clipping: layout count 0 0 +0%
subgraph-dom-widget-clipping: style recalc count 47 47 +0% z=-1.6
subgraph-dom-widget-clipping: task duration 377ms 373ms -1% z=-0.3
subgraph-dom-widget-clipping: script duration 122ms 131ms +7% z=0.5
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 63.8 MB 57.5 MB -10%
subgraph-dom-widget-clipping: DOM nodes 20 20 +0% z=-1.9
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 -0%
subgraph-idle: layout duration 0ms 0ms +0%
subgraph-idle: style recalc duration 11ms 9ms -21% z=-2.3
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 11 12 +5% z=0.9
subgraph-idle: task duration 393ms 336ms -14% z=-1.1
subgraph-idle: script duration 21ms 15ms -30% z=-2.0
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 53.7 MB 53.8 MB +0%
subgraph-idle: DOM nodes 22 23 +5% z=0.8
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 +5% z=-1.9
subgraph-mouse-sweep: style recalc duration 36ms 33ms -6% z=-2.7
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 76 76 +0% z=-2.1
subgraph-mouse-sweep: task duration 684ms 630ms -8% z=-2.0
subgraph-mouse-sweep: script duration 91ms 87ms -4% z=-2.1
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 45.7 MB 45.6 MB -0%
subgraph-mouse-sweep: DOM nodes 63 62 -2% z=-2.2
subgraph-mouse-sweep: event listeners 4 4 +0% variance too high
subgraph-transition-enter: avg frame time 17ms 17ms +0%
subgraph-transition-enter: p95 frame time 17ms 17ms +0%
subgraph-transition-enter: layout duration 13ms 14ms +11%
subgraph-transition-enter: style recalc duration 28ms 28ms -2%
subgraph-transition-enter: layout count 4 4 +0%
subgraph-transition-enter: style recalc count 14 17 +21%
subgraph-transition-enter: task duration 862ms 717ms -17%
subgraph-transition-enter: script duration 47ms 26ms -45%
subgraph-transition-enter: TBT 155ms 161ms +4%
subgraph-transition-enter: heap used 95.4 MB 75.9 MB -20%
subgraph-transition-enter: DOM nodes 13833 13833 +0%
subgraph-transition-enter: event listeners 2529 2527 -0%
viewport-pan-sweep: avg frame time 17ms 17ms +0%
viewport-pan-sweep: p95 frame time 17ms 17ms +0%
viewport-pan-sweep: layout duration 0ms 0ms +0%
viewport-pan-sweep: style recalc duration 56ms 51ms -9%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 251 249 -1%
viewport-pan-sweep: task duration 3939ms 3536ms -10%
viewport-pan-sweep: script duration 1286ms 1212ms -6%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 64.3 MB 60.5 MB -6%
viewport-pan-sweep: DOM nodes 20 -123 -715%
viewport-pan-sweep: event listeners 20 -55 -375%
vue-large-graph-idle: avg frame time 17ms 17ms +0%
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 13368ms 11630ms -13%
vue-large-graph-idle: script duration 634ms 557ms -12%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 159.3 MB 159.4 MB +0%
vue-large-graph-idle: DOM nodes -3308 -3320 +0%
vue-large-graph-idle: event listeners -16472 -16474 +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 19ms 16ms -17%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 74 65 -12%
vue-large-graph-pan: task duration 15201ms 13978ms -8%
vue-large-graph-pan: script duration 901ms 835ms -7%
vue-large-graph-pan: TBT 35ms 0ms -100%
vue-large-graph-pan: heap used 162.7 MB 159.1 MB -2%
vue-large-graph-pan: DOM nodes -3308 -5820 +76%
vue-large-graph-pan: event listeners -16468 -16466 -0%
workflow-execution: avg frame time 17ms 17ms -0% z=-0.9
workflow-execution: p95 frame time 17ms 17ms +0%
workflow-execution: layout duration 1ms 1ms -10% z=-1.7
workflow-execution: style recalc duration 19ms 22ms +14% z=-1.0
workflow-execution: layout count 4 5 +25% z=0.1
workflow-execution: style recalc count 12 20 +63% z=0.8
workflow-execution: task duration 135ms 113ms -16% z=-0.9
workflow-execution: script duration 18ms 19ms +4% z=-3.4
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 60.1 MB 62.1 MB +3%
workflow-execution: DOM nodes 149 173 +16% z=1.6
workflow-execution: event listeners 19 69 +263% ⚠️ 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-06-19T14:43:42.491Z",
  "gitSha": "4db088c19e467b242475d350dfcbc625031dc41d",
  "branch": "jaeone/fix-nodehelp-locale-e2e",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2108.1530000000157,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 12.964,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 454.51,
      "heapDeltaBytes": -8872116,
      "heapUsedBytes": 59728860,
      "domNodes": -315,
      "jsHeapTotalBytes": 20361216,
      "scriptDurationMs": 14.321999999999997,
      "eventListeners": -197,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-idle",
      "durationMs": 2012.597000000028,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 7.9819999999999975,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 341.328,
      "heapDeltaBytes": -2292680,
      "heapUsedBytes": 56267084,
      "domNodes": 20,
      "jsHeapTotalBytes": 25427968,
      "scriptDurationMs": 16.322999999999997,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1742.057999999986,
      "styleRecalcs": 72,
      "styleRecalcDurationMs": 31.50700000000001,
      "layouts": 12,
      "layoutDurationMs": 3.1069999999999993,
      "taskDurationMs": 714.0640000000001,
      "heapDeltaBytes": -7690128,
      "heapUsedBytes": 50721060,
      "domNodes": 55,
      "jsHeapTotalBytes": 25427968,
      "scriptDurationMs": 120.884,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1729.8640000000205,
      "styleRecalcs": 72,
      "styleRecalcDurationMs": 32.614,
      "layouts": 12,
      "layoutDurationMs": 3.3159999999999994,
      "taskDurationMs": 703.49,
      "heapDeltaBytes": -3976008,
      "heapUsedBytes": 61711396,
      "domNodes": 54,
      "jsHeapTotalBytes": 22593536,
      "scriptDurationMs": 112.81500000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1724.533000000008,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 14.582,
      "layouts": 6,
      "layoutDurationMs": 0.5740000000000001,
      "taskDurationMs": 293.83500000000004,
      "heapDeltaBytes": 1874560,
      "heapUsedBytes": 60196772,
      "domNodes": 78,
      "jsHeapTotalBytes": 25952256,
      "scriptDurationMs": 23.811,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1723.6970000000156,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 13.789000000000001,
      "layouts": 6,
      "layoutDurationMs": 0.4909999999999999,
      "taskDurationMs": 285.65299999999996,
      "heapDeltaBytes": 1840880,
      "heapUsedBytes": 60252148,
      "domNodes": 78,
      "jsHeapTotalBytes": 26214400,
      "scriptDurationMs": 22.066000000000003,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 564.1709999999875,
      "styleRecalcs": 13,
      "styleRecalcDurationMs": 8.569,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 334.277,
      "heapDeltaBytes": 7450936,
      "heapUsedBytes": 65839284,
      "domNodes": 22,
      "jsHeapTotalBytes": 17301504,
      "scriptDurationMs": 60.368,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 580.9219999999868,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 10.767999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 378.119,
      "heapDeltaBytes": 3464704,
      "heapUsedBytes": 72124872,
      "domNodes": -291,
      "jsHeapTotalBytes": 7254016,
      "scriptDurationMs": 56.129,
      "eventListeners": -203,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666682,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2003.5359999999969,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 10.223999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 482.857,
      "heapDeltaBytes": -8428504,
      "heapUsedBytes": 61577208,
      "domNodes": 22,
      "jsHeapTotalBytes": 10891264,
      "scriptDurationMs": 91.42699999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2044.7659999999814,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.0859999999999985,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 483.12499999999994,
      "heapDeltaBytes": -9255092,
      "heapUsedBytes": 59175880,
      "domNodes": -296,
      "jsHeapTotalBytes": -1736704,
      "scriptDurationMs": 83.59299999999999,
      "eventListeners": -195,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2074.062999999967,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 17.968000000000004,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 998.74,
      "heapDeltaBytes": 9610756,
      "heapUsedBytes": 82304476,
      "domNodes": 18,
      "jsHeapTotalBytes": 9232384,
      "scriptDurationMs": 369.722,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2071.6340000000173,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 13.709,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1050.0020000000002,
      "heapDeltaBytes": 2424868,
      "heapUsedBytes": 56050948,
      "domNodes": 8,
      "jsHeapTotalBytes": 2883584,
      "scriptDurationMs": 421.836,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3129.840999999999,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 17.834,
      "layouts": 60,
      "layoutDurationMs": 7.053999999999999,
      "taskDurationMs": 1299,
      "heapDeltaBytes": -4298176,
      "heapUsedBytes": 70352748,
      "domNodes": 14,
      "jsHeapTotalBytes": 10891264,
      "scriptDurationMs": 506.984,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3109.100999999896,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 19.701,
      "layouts": 60,
      "layoutDurationMs": 7.129,
      "taskDurationMs": 1231.9569999999999,
      "heapDeltaBytes": -6001212,
      "heapUsedBytes": 67909412,
      "domNodes": 18,
      "jsHeapTotalBytes": 9842688,
      "scriptDurationMs": 467.23900000000003,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "minimap-idle",
      "durationMs": 2000.2269999999953,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.839,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 471.502,
      "heapDeltaBytes": -7771436,
      "heapUsedBytes": 64394136,
      "domNodes": 22,
      "jsHeapTotalBytes": 8794112,
      "scriptDurationMs": 86.459,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 1998.1420000000298,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 7.728999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 476.894,
      "heapDeltaBytes": -9112788,
      "heapUsedBytes": 64502564,
      "domNodes": 20,
      "jsHeapTotalBytes": 7483392,
      "scriptDurationMs": 83.314,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 597.4180000000047,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 18.899,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 377.56500000000005,
      "heapDeltaBytes": 7830584,
      "heapUsedBytes": 66536116,
      "domNodes": 20,
      "jsHeapTotalBytes": 19398656,
      "scriptDurationMs": 131.717,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66666666666665,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 580.9110000000146,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 11.11,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 368.89099999999996,
      "heapDeltaBytes": -12165700,
      "heapUsedBytes": 53955772,
      "domNodes": 20,
      "jsHeapTotalBytes": 22331392,
      "scriptDurationMs": 130.911,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.669999999999998,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1999.1150000000175,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 7.839999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 332.895,
      "heapDeltaBytes": -2560660,
      "heapUsedBytes": 56181172,
      "domNodes": 22,
      "jsHeapTotalBytes": 26476544,
      "scriptDurationMs": 13.305000000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1992.3280000000432,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 9.45,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 339.82099999999997,
      "heapDeltaBytes": -2160312,
      "heapUsedBytes": 56568324,
      "domNodes": 24,
      "jsHeapTotalBytes": 25690112,
      "scriptDurationMs": 16.45,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1682.711999999981,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 33.14,
      "layouts": 16,
      "layoutDurationMs": 4.087,
      "taskDurationMs": 633.051,
      "heapDeltaBytes": -10654660,
      "heapUsedBytes": 47977932,
      "domNodes": 61,
      "jsHeapTotalBytes": 26476544,
      "scriptDurationMs": 88.988,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1693.42800000004,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 33.574000000000005,
      "layouts": 16,
      "layoutDurationMs": 4.077,
      "taskDurationMs": 627.267,
      "heapDeltaBytes": -11011128,
      "heapUsedBytes": 47650200,
      "domNodes": 63,
      "jsHeapTotalBytes": 26738688,
      "scriptDurationMs": 85.06700000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 932.5729999999908,
      "styleRecalcs": 17,
      "styleRecalcDurationMs": 27.514999999999997,
      "layouts": 4,
      "layoutDurationMs": 14.491999999999997,
      "taskDurationMs": 716.653,
      "heapDeltaBytes": 4402860,
      "heapUsedBytes": 79606400,
      "domNodes": 13833,
      "jsHeapTotalBytes": 17301504,
      "scriptDurationMs": 26.082000000000008,
      "eventListeners": 2527,
      "totalBlockingTimeMs": 161,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8124.830999999972,
      "styleRecalcs": 248,
      "styleRecalcDurationMs": 50.25099999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3444.071,
      "heapDeltaBytes": -4868292,
      "heapUsedBytes": 67464456,
      "domNodes": 14,
      "jsHeapTotalBytes": 17096704,
      "scriptDurationMs": 1187.1940000000002,
      "eventListeners": 20,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.80000000000109
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8171.86700000002,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 51.742,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3627.552,
      "heapDeltaBytes": -1542564,
      "heapUsedBytes": 59502056,
      "domNodes": -260,
      "jsHeapTotalBytes": 5459968,
      "scriptDurationMs": 1237.3229999999999,
      "eventListeners": -130,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11709.519,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11698.189999999999,
      "heapDeltaBytes": -39111196,
      "heapUsedBytes": 168054204,
      "domNodes": -3331,
      "jsHeapTotalBytes": 19107840,
      "scriptDurationMs": 565.946,
      "eventListeners": -16474,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11575.19000000002,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11561.794000000002,
      "heapDeltaBytes": -42106464,
      "heapUsedBytes": 166137648,
      "domNodes": -3308,
      "jsHeapTotalBytes": 19894272,
      "scriptDurationMs": 547.4989999999999,
      "eventListeners": -16473,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 13815.67100000001,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 15.838999999999992,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 13795.331,
      "heapDeltaBytes": -35475604,
      "heapUsedBytes": 167457256,
      "domNodes": -8331,
      "jsHeapTotalBytes": 13692928,
      "scriptDurationMs": 843.0340000000001,
      "eventListeners": -16463,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14178.774999999972,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 16.100999999999978,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14161.123999999998,
      "heapDeltaBytes": -44597624,
      "heapUsedBytes": 166283436,
      "domNodes": -3308,
      "jsHeapTotalBytes": 20418560,
      "scriptDurationMs": 826.117,
      "eventListeners": -16469,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "workflow-execution",
      "durationMs": 437.15099999997165,
      "styleRecalcs": 16,
      "styleRecalcDurationMs": 22.238,
      "layouts": 6,
      "layoutDurationMs": 1.5420000000000003,
      "taskDurationMs": 110.29699999999998,
      "heapDeltaBytes": 5329132,
      "heapUsedBytes": 65262932,
      "domNodes": 162,
      "jsHeapTotalBytes": 3407872,
      "scriptDurationMs": 17.743,
      "eventListeners": 69,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.660000000000007,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "workflow-execution",
      "durationMs": 463.3089999999811,
      "styleRecalcs": 23,
      "styleRecalcDurationMs": 21.718999999999998,
      "layouts": 4,
      "layoutDurationMs": 1.053,
      "taskDurationMs": 116.294,
      "heapDeltaBytes": 5357496,
      "heapUsedBytes": 65051804,
      "domNodes": 183,
      "jsHeapTotalBytes": 2883584,
      "scriptDurationMs": 20.502,
      "eventListeners": 69,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.699999999999818
    }
  ]
}

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 19, 2026
@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@            Coverage Diff             @@
##             main   #12998      +/-   ##
==========================================
+ Coverage   75.86%   76.13%   +0.26%     
==========================================
  Files        1573     1574       +1     
  Lines       88519    95451    +6932     
  Branches    27324    29368    +2044     
==========================================
+ Hits        67158    72672    +5514     
- Misses      20705    21991    +1286     
- Partials      656      788     +132     
Flag Coverage Δ
unit 62.98% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 130 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.

@jaeone94 jaeone94 marked this pull request as ready for review June 19, 2026 11:23
@jaeone94 jaeone94 requested a review from a team June 19, 2026 11:23
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jun 19, 2026
@jaeone94 jaeone94 requested a review from benceruleanlu June 19, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants