Skip to content

fix: allow deleting temp assets (preview node outputs) - #13294

Merged
christian-byrne merged 6 commits into
Comfy-Org:mainfrom
DeniDoman:fix-cant-delete-temp-asset
Jul 28, 2026
Merged

fix: allow deleting temp assets (preview node outputs)#13294
christian-byrne merged 6 commits into
Comfy-Org:mainfrom
DeniDoman:fix-cant-delete-temp-asset

Conversation

@DeniDoman

@DeniDoman DeniDoman commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Fixes #13295

Temp assets (e.g. Preview Image outputs) show up in the Assets panel but couldn't be deleted in the OSS version - delete failed with "Deleting imported files is only supported in cloud version".

The cause is a misclassification. Temp files are actually history-backed job outputs that just live in the temp/ dir, but the delete logic classified them by file directory (temp) instead of source category. So they got routed to the cloud-only "imported input file" path and threw. As a side effect, the post-delete refresh also skipped them (they counted as neither input nor output), so even a successful delete wouldn't update the panel.

The fix treats temp the same as output in the two delete decision points: route through the history API (the asset already carries its jobId), and trigger the history refresh afterwards. This matches how the rest of the file already treats temp as a first-class type.

Testing: added a regression test reproducing the exact case (ComfyUI_temp_*.png, OSS mode) — red before the fix, green after. pnpm test:unit, typecheck, and lint pass.

Concerns: none expected. Change is scoped to temp asset deletion; input and output deletion paths are unchanged. The widget-value cleanup that already handles the [temp] annotation keeps working.

@DeniDoman
DeniDoman requested a review from a team June 29, 2026 22:45
@dosubot dosubot Bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jun 29, 2026
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

🎨 Storybook: 🚧 Building...

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

📊 Browser Reports
  • chromium: View Report (✅ 1714 / ❌ 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: 8.14 MB gzip 🔴 +89 B

Details

Summary

  • Raw size: 34.1 MB baseline 34.1 MB — 🔴 +97 B
  • Gzip: 8.14 MB baseline 8.14 MB — 🔴 +89 B
  • Brotli: 5.63 MB baseline 5.63 MB — 🔴 +211 B
  • Bundles: 420 current • 420 baseline • 141 added / 141 removed

Category Glance
Data & Services 🔴 +97 B (3.41 MB) · Vendor & Third-Party ⚪ 0 B (15.7 MB) · Other ⚪ 0 B (12.5 MB) · Graph Workspace ⚪ 0 B (1.28 MB) · Panels & Settings ⚪ 0 B (551 kB) · Utilities & Hooks ⚪ 0 B (369 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Dc8xqpyh.js (new) 3.64 kB 🔴 +3.64 kB 🔴 +1.82 kB 🔴 +1.58 kB
assets/index-DMQHD3j3.js (removed) 3.64 kB 🟢 -3.64 kB 🟢 -1.82 kB 🟢 -1.59 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Be9AWEcy.js (new) 1.28 MB 🔴 +1.28 MB 🔴 +275 kB 🔴 +207 kB
assets/GraphView-D7umqAXs.js (removed) 1.28 MB 🟢 -1.28 MB 🟢 -275 kB 🟢 -207 kB

Status: 1 added / 1 removed / 1 unchanged

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-BN0UaYSH.js (new) 25 kB 🔴 +25 kB 🔴 +6.26 kB 🔴 +5.54 kB
assets/CloudSurveyView-CCUsbzTU.js (removed) 25 kB 🟢 -25 kB 🟢 -6.26 kB 🟢 -5.54 kB
assets/CloudLoginView-BUbd07vh.js (removed) 11.6 kB 🟢 -11.6 kB 🟢 -3.14 kB 🟢 -2.77 kB
assets/CloudLoginView-NK5cvarD.js (new) 11.6 kB 🔴 +11.6 kB 🔴 +3.14 kB 🔴 +2.75 kB
assets/CloudSignupView-9Zq7escr.js (removed) 9.96 kB 🟢 -9.96 kB 🟢 -2.81 kB 🟢 -2.46 kB
assets/CloudSignupView-DkfFNuM4.js (new) 9.96 kB 🔴 +9.96 kB 🔴 +2.81 kB 🔴 +2.46 kB
assets/CloudLayoutView-CJn2_3QN.js (removed) 9.54 kB 🟢 -9.54 kB 🟢 -2.35 kB 🟢 -2.02 kB
assets/CloudLayoutView-CqwHNb7L.js (new) 9.54 kB 🔴 +9.54 kB 🔴 +2.35 kB 🔴 +2.02 kB
assets/UserCheckView-B3jCfr8S.js (new) 8.8 kB 🔴 +8.8 kB 🔴 +2.22 kB 🔴 +1.92 kB
assets/UserCheckView-Cz4NqkE8.js (removed) 8.8 kB 🟢 -8.8 kB 🟢 -2.22 kB 🟢 -1.92 kB
assets/WidgetTextPreview-BPbwWfyt.js (removed) 6.13 kB 🟢 -6.13 kB 🟢 -2.16 kB 🟢 -1.91 kB
assets/WidgetTextPreview-Iv6AZIXX.js (new) 6.13 kB 🔴 +6.13 kB 🔴 +2.16 kB 🔴 +1.91 kB
assets/CloudSubscriptionRedirectView-DMPIebEn.js (new) 6.06 kB 🔴 +6.06 kB 🔴 +2.26 kB 🔴 +1.97 kB
assets/CloudSubscriptionRedirectView-x0dA-XNR.js (removed) 6.06 kB 🟢 -6.06 kB 🟢 -2.26 kB 🟢 -1.97 kB
assets/UserSelectView-Da52vHwX.js (new) 5.54 kB 🔴 +5.54 kB 🔴 +1.99 kB 🔴 +1.74 kB
assets/UserSelectView-NaJvyfQJ.js (removed) 5.54 kB 🟢 -5.54 kB 🟢 -1.99 kB 🟢 -1.74 kB
assets/CloudForgotPasswordView-ClVdspii.js (removed) 5.15 kB 🟢 -5.15 kB 🟢 -1.76 kB 🟢 -1.54 kB
assets/CloudForgotPasswordView-KlH7M9dk.js (new) 5.15 kB 🔴 +5.15 kB 🔴 +1.76 kB 🔴 +1.54 kB
assets/CloudAuthTimeoutView-CQUwCS2V.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/CloudAuthTimeoutView-DQ4nc2Jd.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/OAuthLayoutView-C5zm1Nz5.js (removed) 1.36 kB 🟢 -1.36 kB 🟢 -735 B 🟢 -620 B
assets/OAuthLayoutView-CYf-ysq6.js (new) 1.36 kB 🔴 +1.36 kB 🔴 +734 B 🔴 +620 B
assets/WidgetTextPreview-C_ktH89K.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +89 B
assets/WidgetTextPreview-Cwur3cp9.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -90 B

Status: 12 added / 12 removed / 4 unchanged

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-DyRqo4lk.js (removed) 49.5 kB 🟢 -49.5 kB 🟢 -9.97 kB 🟢 -8.84 kB
assets/KeybindingPanel-oeNk96Fc.js (new) 49.5 kB 🔴 +49.5 kB 🔴 +9.97 kB 🔴 +8.83 kB
assets/SecretsPanel-CinYFPxi.js (removed) 31 kB 🟢 -31 kB 🟢 -7.51 kB 🟢 -6.58 kB
assets/SecretsPanel-ELUS2jyE.js (new) 31 kB 🔴 +31 kB 🔴 +7.51 kB 🔴 +6.58 kB
assets/CreditsPanel-b75BUQH0.js (new) 16 kB 🔴 +16 kB 🔴 +4.66 kB 🔴 +4.09 kB
assets/CreditsPanel-BkMoA5bB.js (removed) 16 kB 🟢 -16 kB 🟢 -4.65 kB 🟢 -4.09 kB
assets/SubscriptionPanel-BMwQQQ9Y.js (new) 11.5 kB 🔴 +11.5 kB 🔴 +3.65 kB 🔴 +3.22 kB
assets/SubscriptionPanel-CuFnLdII.js (removed) 11.5 kB 🟢 -11.5 kB 🟢 -3.65 kB 🟢 -3.23 kB
assets/AboutPanel-B6kgoZA_.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.06 kB 🟢 -2.74 kB
assets/AboutPanel-BMOE_nC6.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.06 kB 🔴 +2.74 kB
assets/ExtensionPanel-CLFQRfaG.js (removed) 9.24 kB 🟢 -9.24 kB 🟢 -2.54 kB 🟢 -2.25 kB
assets/ExtensionPanel-DYByZjNf.js (new) 9.24 kB 🔴 +9.24 kB 🔴 +2.54 kB 🔴 +2.25 kB
assets/ServerConfigPanel-C5qa_wO0.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -1.97 kB 🟢 -1.75 kB
assets/ServerConfigPanel-DB6pcn_S.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +1.97 kB 🔴 +1.75 kB
assets/UserPanel-DlkkLDH5.js (removed) 5.78 kB 🟢 -5.78 kB 🟢 -1.81 kB 🟢 -1.57 kB
assets/UserPanel-DTol1rfX.js (new) 5.78 kB 🔴 +5.78 kB 🔴 +1.81 kB 🔴 +1.57 kB
assets/refreshRemoteConfig-BDw_NgB9.js (new) 2.97 kB 🔴 +2.97 kB 🔴 +1.27 kB 🔴 +1.11 kB
assets/refreshRemoteConfig-CXRhY0GS.js (removed) 2.97 kB 🟢 -2.97 kB 🟢 -1.27 kB 🟢 -1.11 kB
assets/cloudRemoteConfig-Bzh19oDa.js (new) 988 B 🔴 +988 B 🔴 +537 B 🔴 +450 B
assets/cloudRemoteConfig-Doln8TEy.js (removed) 988 B 🟢 -988 B 🟢 -537 B 🟢 -445 B
assets/refreshRemoteConfig-CGFRXFLk.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -87 B
assets/refreshRemoteConfig-DX75H_0t.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +91 B

Status: 11 added / 11 removed / 15 unchanged

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SignUpForm-BZpFXTQO.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +4.19 kB 🔴 +3.65 kB
assets/SignUpForm-CMNOrjBy.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -4.18 kB 🟢 -3.65 kB
assets/auth-CLqo8exn.js (new) 3.69 kB 🔴 +3.69 kB 🔴 +1.3 kB 🔴 +1.12 kB
assets/auth-CYAjqVrB.js (removed) 3.69 kB 🟢 -3.69 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/usePostAuthRedirect-17J-Ibds.js (new) 3.33 kB 🔴 +3.33 kB 🔴 +1.27 kB 🔴 +1.11 kB
assets/usePostAuthRedirect-BlZBMROR.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.27 kB 🟢 -1.11 kB
assets/UpdatePasswordContent-BmTkH3VB.js (removed) 1.91 kB 🟢 -1.91 kB 🟢 -874 B 🟢 -761 B
assets/UpdatePasswordContent-LPZq9IFA.js (new) 1.91 kB 🔴 +1.91 kB 🔴 +875 B 🔴 +761 B
assets/authStore-04mzAohQ.js (new) 128 B 🔴 +128 B 🔴 +104 B 🔴 +105 B
assets/authStore-va3kyAnX.js (removed) 128 B 🟢 -128 B 🟢 -104 B 🟢 -106 B
assets/workspaceAuthStore-DPFLmFyu.js (removed) 108 B 🟢 -108 B 🟢 -99 B 🟢 -102 B
assets/workspaceAuthStore-tj8N79sS.js (new) 108 B 🔴 +108 B 🔴 +99 B 🔴 +101 B
assets/auth-DaMItUd1.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +80 B
assets/auth-DUmJk25h.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -74 B

Status: 7 added / 7 removed / 3 unchanged

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyHubPublishDialog-ji0TXhgD.js (new) 89.9 kB 🔴 +89.9 kB 🔴 +19.2 kB 🔴 +16.5 kB
assets/ComfyHubPublishDialog-kQDTXMjw.js (removed) 89.9 kB 🟢 -89.9 kB 🟢 -19.2 kB 🟢 -16.5 kB
assets/useShareDialog-Bv8R_ZzT.js (removed) 23.7 kB 🟢 -23.7 kB 🟢 -5.58 kB 🟢 -4.96 kB
assets/useShareDialog-CaCYcXm8.js (new) 23.7 kB 🔴 +23.7 kB 🔴 +5.58 kB 🔴 +4.97 kB
assets/feedbackDialog-B7WYAlJZ.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.9 kB 🔴 +1.62 kB
assets/feedbackDialog-DL4T7ew0.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.89 kB 🟢 -1.61 kB
assets/ComfyHubPublishDialog-CAnrlnpP.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +90 B
assets/ComfyHubPublishDialog-LLJSnEjx.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -89 B
assets/useSubscriptionDialog-DgpDzp_N.js (new) 108 B 🔴 +108 B 🔴 +102 B 🔴 +89 B
assets/useSubscriptionDialog-DPfvkqwM.js (removed) 108 B 🟢 -108 B 🟢 -102 B 🟢 -92 B

Status: 5 added / 5 removed / 1 unchanged

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-cbalsT7m.js (new) 13.5 kB 🔴 +13.5 kB 🔴 +3.76 kB 🔴 +3.34 kB
assets/ComfyQueueButton-Dbthg-ha.js (removed) 13.5 kB 🟢 -13.5 kB 🟢 -3.76 kB 🟢 -3.34 kB
assets/useTerminalTabs-BW2M6lx_.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.72 kB 🔴 +3.29 kB
assets/useTerminalTabs-Cf5e-8GM.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.72 kB 🟢 -3.29 kB
assets/InviteMembersForm--ADk-CKH.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.68 kB 🔴 +2.41 kB
assets/InviteMembersForm-CuY9KRoY.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.67 kB 🟢 -2.39 kB
assets/SubscribeButton-B8vgpBqQ.js (new) 2.18 kB 🔴 +2.18 kB 🔴 +988 B 🔴 +864 B
assets/SubscribeButton-DC-_MgM0.js (removed) 2.18 kB 🟢 -2.18 kB 🟢 -987 B 🟢 -864 B
assets/cloudFeedbackTopbarButton-DngeSzx4.js (removed) 768 B 🟢 -768 B 🟢 -448 B 🟢 -406 B
assets/cloudFeedbackTopbarButton-WHLASKmG.js (new) 768 B 🔴 +768 B 🔴 +455 B 🔴 +401 B
assets/ComfyQueueButton-CnqQXO5-.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -91 B
assets/ComfyQueueButton-Coxg-drw.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +89 B

Status: 6 added / 6 removed / 8 unchanged

Data & Services — 3.41 MB (baseline 3.41 MB) • 🔴 +97 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settingStore-hOeE67e1.js (new) 3.14 MB 🔴 +3.14 MB 🔴 +727 kB 🔴 +548 kB
assets/settingStore-BMa3Ucae.js (removed) 3.14 MB 🟢 -3.14 MB 🟢 -727 kB 🟢 -548 kB
assets/load3dService-A_N-9nLE.js (removed) 132 kB 🟢 -132 kB 🟢 -29.2 kB 🟢 -24.6 kB
assets/load3dService-BbuAjY0M.js (new) 132 kB 🔴 +132 kB 🔴 +29.3 kB 🔴 +24.6 kB
assets/api-BCgemCQZ.js (new) 91.4 kB 🔴 +91.4 kB 🔴 +25.3 kB 🔴 +21.7 kB
assets/api-Ddbs3axY.js (removed) 91.4 kB 🟢 -91.4 kB 🟢 -25.3 kB 🟢 -21.8 kB
assets/workflowShareService-CwLHQyRO.js (new) 16.5 kB 🔴 +16.5 kB 🔴 +4.92 kB 🔴 +4.37 kB
assets/workflowShareService-orIxVF-_.js (removed) 16.5 kB 🟢 -16.5 kB 🟢 -4.92 kB 🟢 -4.36 kB
assets/keybindingService-BgdYxDu6.js (removed) 7.28 kB 🟢 -7.28 kB 🟢 -1.9 kB 🟢 -1.62 kB
assets/keybindingService-BwfVBujf.js (new) 7.28 kB 🔴 +7.28 kB 🔴 +1.9 kB 🔴 +1.62 kB
assets/releaseStore-Bw1pQh7-.js (new) 6.77 kB 🔴 +6.77 kB 🔴 +2.06 kB 🔴 +1.8 kB
assets/releaseStore-DOC_6dEm.js (removed) 6.77 kB 🟢 -6.77 kB 🟢 -2.06 kB 🟢 -1.8 kB
assets/systemStatsStore-BzTG0Se0.js (new) 4.99 kB 🔴 +4.99 kB 🔴 +1.77 kB 🔴 +1.5 kB
assets/systemStatsStore-NV8SyTbX.js (removed) 4.99 kB 🟢 -4.99 kB 🟢 -1.77 kB 🟢 -1.5 kB
assets/userStore-D4pT1Tsb.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -928 B 🟢 -819 B
assets/userStore-DDo6O0bP.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +930 B 🔴 +818 B
assets/audioService-BsQNTlpP.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -861 B 🟢 -748 B
assets/audioService-CWKWdeeW.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +860 B 🔴 +749 B
assets/dialogService-D9UiZ5kj.js (new) 98 B 🔴 +98 B 🔴 +97 B 🔴 +81 B
assets/dialogService-DFkwsSfj.js (removed) 98 B 🟢 -98 B 🟢 -97 B 🟢 -80 B
assets/releaseStore-iJysRJin.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -86 B
assets/releaseStore-UBWnRGf_.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +87 B
assets/settingStore-CplcGhIO.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +80 B
assets/settingStore-mku7If7a.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -76 B
assets/assetsStore-cF6fxXdo.js (new) 94 B 🔴 +94 B 🔴 +92 B 🔴 +84 B
assets/assetsStore-zmDX-Mto.js (removed) 94 B 🟢 -94 B 🟢 -92 B 🟢 -85 B
assets/api-Cb1cuIkn.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B
assets/api-DIzhamDD.js (removed) 62 B 🟢 -62 B 🟢 -74 B 🟢 -63 B

Status: 14 added / 14 removed / 3 unchanged

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-C_7SGchO.js (new) 235 kB 🔴 +235 kB 🔴 +52.5 kB 🔴 +42.7 kB
assets/useConflictDetection-mc-9MCYB.js (removed) 235 kB 🟢 -235 kB 🟢 -52.5 kB 🟢 -42.7 kB
assets/useLoad3d-BFcKOsyB.js (removed) 25.8 kB 🟢 -25.8 kB 🟢 -5.82 kB 🟢 -5.16 kB
assets/useLoad3d-BUcj_Nr7.js (new) 25.8 kB 🔴 +25.8 kB 🔴 +5.82 kB 🔴 +5.16 kB
assets/useLoad3dViewer-B2Q_YNdM.js (new) 21.3 kB 🔴 +21.3 kB 🔴 +5 kB 🔴 +4.4 kB
assets/useLoad3dViewer-CP07ZaSj.js (removed) 21.3 kB 🟢 -21.3 kB 🟢 -5 kB 🟢 -4.4 kB
assets/useFeatureFlags-92UBOEzM.js (removed) 7.26 kB 🟢 -7.26 kB 🟢 -2.17 kB 🟢 -1.82 kB
assets/useFeatureFlags-CGEs_uGk.js (new) 7.26 kB 🔴 +7.26 kB 🔴 +2.17 kB 🔴 +1.83 kB
assets/useDowngradeToPersonal-9uyV2u_f.js (new) 5.9 kB 🔴 +5.9 kB 🔴 +1.8 kB 🔴 +1.57 kB
assets/useDowngradeToPersonal-DJUBtoTC.js (removed) 5.9 kB 🟢 -5.9 kB 🟢 -1.8 kB 🟢 -1.57 kB
assets/assetPreviewUtil-CYnKy_Jm.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1 kB 🔴 +872 B
assets/assetPreviewUtil-DSDD5ZZl.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1 kB 🟢 -870 B
assets/useUpstreamValue-DSdedp1p.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +787 B 🔴 +701 B
assets/useUpstreamValue-Q5bPlU7l.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -788 B 🟢 -702 B
assets/useWorkspaceTierLabel-DoKYrgVI.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +845 B 🔴 +730 B
assets/useWorkspaceTierLabel-I1bmcV6t.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -846 B 🟢 -726 B
assets/subscriptionCheckoutUtil-BK3h8Q9U.js (removed) 903 B 🟢 -903 B 🟢 -533 B 🟢 -450 B
assets/subscriptionCheckoutUtil-CqSni3yy.js (new) 903 B 🔴 +903 B 🔴 +535 B 🔴 +453 B
assets/useSessionCookie-D5ZxTlog.js (new) 746 B 🔴 +746 B 🔴 +388 B 🔴 +338 B
assets/useSessionCookie-IATUm1bm.js (removed) 746 B 🟢 -746 B 🟢 -390 B 🟢 -339 B
assets/useLoad3d-B_VRd3B0.js (removed) 311 B 🟢 -311 B 🟢 -163 B 🟢 -147 B
assets/useLoad3d-DJxEvIVe.js (new) 311 B 🔴 +311 B 🔴 +164 B 🔴 +147 B
assets/useSessionCookie-DjBfVZWY.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +85 B
assets/useSessionCookie-fvqtbpxc.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -84 B
assets/useFeatureFlags-B6pryzYj.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -81 B
assets/useFeatureFlags-BK2lIqvK.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +80 B
assets/useLoad3dViewer-4CKc-UO4.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -91 B
assets/useLoad3dViewer-BWXHXpd-.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +85 B
assets/useCurrentUser-B2isC7ks.js (new) 94 B 🔴 +94 B 🔴 +95 B 🔴 +81 B
assets/useCurrentUser-DLwzuczk.js (removed) 94 B 🟢 -94 B 🟢 -95 B 🟢 -80 B

Status: 15 added / 15 removed / 20 unchanged

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

External libraries and shared vendor chunks

Status: 16 unchanged

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

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-BE4IxFxy.js (removed) 111 kB 🟢 -111 kB 🟢 -28.7 kB 🟢 -24.3 kB
assets/core-BqP0Qknt.js (new) 111 kB 🔴 +111 kB 🔴 +28.7 kB 🔴 +24.3 kB
assets/WidgetSelect-B-BT71mO.js (new) 88 kB 🔴 +88 kB 🔴 +19.9 kB 🔴 +17.1 kB
assets/WidgetSelect-Yj05YIT0.js (removed) 88 kB 🟢 -88 kB 🟢 -20 kB 🟢 -17.1 kB
assets/Load3D-BofhAtzI.js (new) 71.3 kB 🔴 +71.3 kB 🔴 +11.7 kB 🔴 +10 kB
assets/Load3D-jRr_uVI3.js (removed) 71.3 kB 🟢 -71.3 kB 🟢 -11.7 kB 🟢 -10 kB
assets/Preview3d-_lQZM-p9.js (new) 50.9 kB 🔴 +50.9 kB 🔴 +8.34 kB 🔴 +7.28 kB
assets/Preview3d-BxVE7mwr.js (removed) 50.9 kB 🟢 -50.9 kB 🟢 -8.34 kB 🟢 -7.26 kB
assets/main-DMbegO2F.js (new) 46.7 kB 🔴 +46.7 kB 🔴 +13.8 kB 🔴 +11.9 kB
assets/main-DQ0O5ugq.js (removed) 46.7 kB 🟢 -46.7 kB 🟢 -13.8 kB 🟢 -11.9 kB
assets/SubscriptionTransitionPreviewWorkspace-Bqqpz_I5.js (new) 45.4 kB 🔴 +45.4 kB 🔴 +9.65 kB 🔴 +8.47 kB
assets/SubscriptionTransitionPreviewWorkspace-DFoVI7ls.js (removed) 45.4 kB 🟢 -45.4 kB 🟢 -9.65 kB 🟢 -8.47 kB
assets/SubscriptionRequiredDialogContentUnified-CiATX0OD.js (removed) 42.1 kB 🟢 -42.1 kB 🟢 -9.37 kB 🟢 -8.16 kB
assets/SubscriptionRequiredDialogContentUnified-D-gr3omF.js (new) 42.1 kB 🔴 +42.1 kB 🔴 +9.37 kB 🔴 +8.15 kB
assets/MembersPanelContent-C9mV00jg.js (new) 41.9 kB 🔴 +41.9 kB 🔴 +8.8 kB 🔴 +7.84 kB
assets/MembersPanelContent-D5U6sOSF.js (removed) 41.9 kB 🟢 -41.9 kB 🟢 -8.8 kB 🟢 -7.85 kB
assets/WorkspaceSettingsPanelContent-C2bViS7v.js (new) 34.6 kB 🔴 +34.6 kB 🔴 +8 kB 🔴 +7.01 kB
assets/WorkspaceSettingsPanelContent-VofsYaIg.js (removed) 34.6 kB 🟢 -34.6 kB 🟢 -7.99 kB 🟢 -7.02 kB
assets/WidgetBoundingBoxes-C0PACtrz.js (new) 33.8 kB 🔴 +33.8 kB 🔴 +9.19 kB 🔴 +8.17 kB
assets/WidgetBoundingBoxes-CleylIGT.js (removed) 33.8 kB 🟢 -33.8 kB 🟢 -9.19 kB 🟢 -8.16 kB
assets/WidgetPainter-CGcoHKjU.js (removed) 32.7 kB 🟢 -32.7 kB 🟢 -7.9 kB 🟢 -6.99 kB
assets/WidgetPainter-Dt5VXw0Z.js (new) 32.7 kB 🔴 +32.7 kB 🔴 +7.9 kB 🔴 +6.98 kB
assets/Load3dViewerContent-C9rchIq-.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +6.29 kB 🔴 +5.46 kB
assets/Load3dViewerContent-CvU-qMYq.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -6.3 kB 🟢 -5.46 kB
assets/SubscriptionPanelContentWorkspace-CTkJE49V.js (new) 26.3 kB 🔴 +26.3 kB 🔴 +6.12 kB 🔴 +5.38 kB
assets/SubscriptionPanelContentWorkspace-eu0DzMFf.js (removed) 26.3 kB 🟢 -26.3 kB 🟢 -6.12 kB 🟢 -5.37 kB
assets/SubscriptionRequiredDialogContentWorkspace-BiyWUhUX.js (new) 24.9 kB 🔴 +24.9 kB 🔴 +5.76 kB 🔴 +5.07 kB
assets/SubscriptionRequiredDialogContentWorkspace-uvDIExY8.js (removed) 24.9 kB 🟢 -24.9 kB 🟢 -5.76 kB 🟢 -5.07 kB
assets/SubscriptionRequiredDialogContent-DawrHLNQ.js (new) 24.4 kB 🔴 +24.4 kB 🔴 +6 kB 🔴 +5.28 kB
assets/SubscriptionRequiredDialogContent-DPwcyBBj.js (removed) 24.4 kB 🟢 -24.4 kB 🟢 -6 kB 🟢 -5.28 kB
assets/WidgetImageCrop-CARjHdPf.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.75 kB 🟢 -5.04 kB
assets/WidgetImageCrop-DA2pJVyL.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.75 kB 🔴 +5.04 kB
assets/load3d-BskWyNya.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.43 kB 🟢 -4.69 kB
assets/load3d-CuUOybz_.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.43 kB 🔴 +4.7 kB
assets/CurrentUserPopoverWorkspace--E5oORHK.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.71 kB 🔴 +4.19 kB
assets/CurrentUserPopoverWorkspace-DLB-6Rms.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.71 kB 🟢 -4.19 kB
assets/SignInContent-4g17yq0T.js (new) 20.3 kB 🔴 +20.3 kB 🔴 +5.14 kB 🔴 +4.49 kB
assets/SignInContent-BvWeBv4s.js (removed) 20.3 kB 🟢 -20.3 kB 🟢 -5.13 kB 🟢 -4.47 kB
assets/WidgetInputNumber-BKuiCqh2.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.83 kB 🟢 -4.29 kB
assets/WidgetInputNumber-CfYiol1d.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.83 kB 🔴 +4.29 kB
assets/CreditsTile-C938d31O.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +4.57 kB 🔴 +4.03 kB
assets/CreditsTile-ZVGcFoed.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -4.57 kB 🟢 -4.03 kB
assets/WidgetRecordAudio-CGWKjDgq.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.63 kB 🔴 +4.13 kB
assets/WidgetRecordAudio-CNAIK8ct.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.63 kB 🟢 -4.12 kB
assets/WidgetRange-C6dPRhU-.js (removed) 16.4 kB 🟢 -16.4 kB 🟢 -4.24 kB 🟢 -3.8 kB
assets/WidgetRange-Cva0NbsK.js (new) 16.4 kB 🔴 +16.4 kB 🔴 +4.24 kB 🔴 +3.81 kB
assets/WaveAudioPlayer-Bc7kRnfS.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.49 kB 🟢 -3.06 kB
assets/WaveAudioPlayer-DSGscs65.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.5 kB 🔴 +3.08 kB
assets/WidgetCurve-d3WC7JqO.js (removed) 11.3 kB 🟢 -11.3 kB 🟢 -3.51 kB 🟢 -3.16 kB
assets/WidgetCurve-DzEpwt7m.js (new) 11.3 kB 🔴 +11.3 kB 🔴 +3.5 kB 🔴 +3.17 kB
assets/TeamWorkspacesDialogContent-BTmiV2gM.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +3 kB 🔴 +2.65 kB
assets/TeamWorkspacesDialogContent-D4By2hVW.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -3 kB 🟢 -2.67 kB
assets/onboardingCloudRoutes-DGRZ6EjO.js (new) 9.03 kB 🔴 +9.03 kB 🔴 +2.77 kB 🔴 +2.39 kB
assets/onboardingCloudRoutes-DrQfIdYU.js (removed) 9.03 kB 🟢 -9.03 kB 🟢 -2.77 kB 🟢 -2.4 kB
assets/Load3DConfiguration-DisjU9Ex.js (removed) 8.97 kB 🟢 -8.97 kB 🟢 -2.63 kB 🟢 -2.32 kB
assets/Load3DConfiguration-XqQ0KptG.js (new) 8.97 kB 🔴 +8.97 kB 🔴 +2.64 kB 🔴 +2.32 kB
assets/SetMemberCreditLimitDialogContent-DEEJYRde.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.37 kB 🟢 -2.08 kB
assets/SetMemberCreditLimitDialogContent-K1Mx-KZX.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.37 kB 🔴 +2.07 kB
assets/nodeTemplates-3nU2yzSu.js (new) 8.33 kB 🔴 +8.33 kB 🔴 +2.87 kB 🔴 +2.54 kB
assets/nodeTemplates-CM_lK1lh.js (removed) 8.33 kB 🟢 -8.33 kB 🟢 -2.87 kB 🟢 -2.53 kB
assets/NightlySurveyController-BJ78L17s.js (removed) 7.56 kB 🟢 -7.56 kB 🟢 -2.59 kB 🟢 -2.29 kB
assets/NightlySurveyController-C2qcnbDA.js (new) 7.56 kB 🔴 +7.56 kB 🔴 +2.59 kB 🔴 +2.28 kB
assets/WidgetWithControl-bCOrmwvM.js (new) 6.38 kB 🔴 +6.38 kB 🔴 +2.59 kB 🔴 +2.31 kB
assets/WidgetWithControl-Y86NtXgU.js (removed) 6.38 kB 🟢 -6.38 kB 🟢 -2.6 kB 🟢 -2.29 kB
assets/tierBenefits-CsdzJFHu.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +2 kB 🔴 +1.75 kB
assets/tierBenefits-i-nqzvND.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -2 kB 🟢 -1.75 kB
assets/CancelSubscriptionDialogContent-ChS9X_xH.js (new) 5.98 kB 🔴 +5.98 kB 🔴 +2.03 kB 🔴 +1.79 kB
assets/CancelSubscriptionDialogContent-DJpC1mVn.js (removed) 5.98 kB 🟢 -5.98 kB 🟢 -2.03 kB 🟢 -1.79 kB
assets/load3dPreviewExtensions-DCR6CTsV.js (removed) 5.94 kB 🟢 -5.94 kB 🟢 -1.85 kB 🟢 -1.62 kB
assets/load3dPreviewExtensions-DRCKhHg5.js (new) 5.94 kB 🔴 +5.94 kB 🔴 +1.85 kB 🔴 +1.62 kB
assets/FreeTierDialogContent-F26-KbKd.js (removed) 5.47 kB 🟢 -5.47 kB 🟢 -1.83 kB 🟢 -1.61 kB
assets/FreeTierDialogContent-QmWdbI3f.js (new) 5.47 kB 🔴 +5.47 kB 🔴 +1.83 kB 🔴 +1.61 kB
assets/CreateWorkspaceDialogContent-CQ0ESVxy.js (new) 5.19 kB 🔴 +5.19 kB 🔴 +1.83 kB 🔴 +1.58 kB
assets/CreateWorkspaceDialogContent-CRorvBKm.js (removed) 5.19 kB 🟢 -5.19 kB 🟢 -1.82 kB 🟢 -1.58 kB
assets/ChangeMemberRoleDialogContent-CN3Ajuys.js (new) 5.04 kB 🔴 +5.04 kB 🔴 +1.67 kB 🔴 +1.46 kB
assets/ChangeMemberRoleDialogContent-TxZEk3C0.js (removed) 5.04 kB 🟢 -5.04 kB 🟢 -1.67 kB 🟢 -1.45 kB
assets/missingModelDownload-Bycs2aSG.js (removed) 5.03 kB 🟢 -5.03 kB 🟢 -1.95 kB 🟢 -1.7 kB
assets/missingModelDownload-C7LpgZhm.js (new) 5.03 kB 🔴 +5.03 kB 🔴 +1.95 kB 🔴 +1.7 kB
assets/EditWorkspaceDialogContent-ekadWgG9.js (new) 5 kB 🔴 +5 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/EditWorkspaceDialogContent-Y6g3wGxW.js (removed) 5 kB 🟢 -5 kB 🟢 -1.79 kB 🟢 -1.55 kB
assets/WidgetTextarea-B5efaO4-.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.9 kB 🟢 -1.66 kB
assets/WidgetTextarea-WPd2-GpQ.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.9 kB 🔴 +1.66 kB
assets/saveMesh-BsCUK85e.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.55 kB 🔴 +1.37 kB
assets/saveMesh-ZP3RcyS8.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/WorkspacePanelContent-C2lOF-nG.js (new) 4.78 kB 🔴 +4.78 kB 🔴 +1.63 kB 🔴 +1.43 kB
assets/WorkspacePanelContent-D4ctFrLU.js (removed) 4.78 kB 🟢 -4.78 kB 🟢 -1.63 kB 🟢 -1.43 kB
assets/InviteMemberDialogContent-B4jDu_kN.js (removed) 4.75 kB 🟢 -4.75 kB 🟢 -1.61 kB 🟢 -1.4 kB
assets/InviteMemberDialogContent-ChaKLE_e.js (new) 4.75 kB 🔴 +4.75 kB 🔴 +1.61 kB 🔴 +1.4 kB
assets/ValueControlPopover-CCJv1iVC.js (new) 4.54 kB 🔴 +4.54 kB 🔴 +1.58 kB 🔴 +1.41 kB
assets/ValueControlPopover-DWrekNyG.js (removed) 4.54 kB 🟢 -4.54 kB 🟢 -1.58 kB 🟢 -1.41 kB
assets/DeleteWorkspaceDialogContent-CZbFNI4Z.js (new) 3.91 kB 🔴 +3.91 kB 🔴 +1.47 kB 🔴 +1.26 kB
assets/DeleteWorkspaceDialogContent-Dss2Cq55.js (removed) 3.91 kB 🟢 -3.91 kB 🟢 -1.47 kB 🟢 -1.26 kB
assets/LeaveWorkspaceDialogContent-CquHa8KI.js (new) 3.73 kB 🔴 +3.73 kB 🔴 +1.42 kB 🔴 +1.21 kB
assets/LeaveWorkspaceDialogContent-QWRrufiS.js (removed) 3.73 kB 🟢 -3.73 kB 🟢 -1.41 kB 🟢 -1.21 kB
assets/RemoveMemberDialogContent-DLmoZsCy.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.37 kB 🔴 +1.18 kB
assets/RemoveMemberDialogContent-DxCKFcwB.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.37 kB 🟢 -1.18 kB
assets/RevokeInviteDialogContent-67_DvKz1.js (new) 3.62 kB 🔴 +3.62 kB 🔴 +1.38 kB 🔴 +1.2 kB
assets/RevokeInviteDialogContent-CEFWP_Nk.js (removed) 3.62 kB 🟢 -3.62 kB 🟢 -1.38 kB 🟢 -1.2 kB
assets/InviteMemberUpsellDialogContent-BIO30hlu.js (new) 3.51 kB 🔴 +3.51 kB 🔴 +1.26 kB 🔴 +1.11 kB
assets/InviteMemberUpsellDialogContent-DlSGH7sg.js (removed) 3.51 kB 🟢 -3.51 kB 🟢 -1.26 kB 🟢 -1.09 kB
assets/workspaceCheckoutTelemetry-DeL5tO_L.js (new) 3.46 kB 🔴 +3.46 kB 🔴 +1.55 kB 🔴 +1.35 kB
assets/workspaceCheckoutTelemetry-DGDIiOKQ.js (removed) 3.46 kB 🟢 -3.46 kB 🟢 -1.55 kB 🟢 -1.35 kB
assets/Media3DTop-Cm-J-8xT.js (new) 3.26 kB 🔴 +3.26 kB 🔴 +1.29 kB 🔴 +1.13 kB
assets/Media3DTop-DJUur1Vp.js (removed) 3.26 kB 🟢 -3.26 kB 🟢 -1.29 kB 🟢 -1.13 kB
assets/GlobalToast-BNg9No0I.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.25 kB 🔴 +1.07 kB
assets/GlobalToast-MkecfEVz.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.25 kB 🟢 -1.11 kB
assets/load3dAdvanced-BI5Y9BLJ.js (removed) 2.87 kB 🟢 -2.87 kB 🟢 -1.13 kB 🟢 -979 B
assets/load3dAdvanced-y_YHWPJP.js (new) 2.87 kB 🔴 +2.87 kB 🔴 +1.13 kB 🔴 +978 B
assets/SubscribeToRun-CqCD5zwp.js (new) 2.45 kB 🔴 +2.45 kB 🔴 +1.06 kB 🔴 +927 B
assets/SubscribeToRun-Dq5Grx46.js (removed) 2.45 kB 🟢 -2.45 kB 🟢 -1.06 kB 🟢 -928 B
assets/MediaAudioTop-ClwKDy96.js (removed) 1.67 kB 🟢 -1.67 kB 🟢 -837 B 🟢 -693 B
assets/MediaAudioTop-DKojoHNi.js (new) 1.67 kB 🔴 +1.67 kB 🔴 +838 B 🔴 +697 B
assets/CloudRunButtonWrapper-_jRfCcaT.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -544 B 🟢 -475 B
assets/CloudRunButtonWrapper-lIQMSi2D.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +546 B 🔴 +482 B
assets/cloudSessionCookie-B6DLQQF5.js (new) 989 B 🔴 +989 B 🔴 +466 B 🔴 +421 B
assets/cloudSessionCookie-ENMwsZPw.js (removed) 989 B 🟢 -989 B 🟢 -462 B 🟢 -422 B
assets/cloudBadges-D0hh7lGU.js (removed) 971 B 🟢 -971 B 🟢 -545 B 🟢 -461 B
assets/cloudBadges-o6jaujzp.js (new) 971 B 🔴 +971 B 🔴 +544 B 🔴 +488 B
assets/Load3DAdvanced-CwWj5u43.js (new) 813 B 🔴 +813 B 🔴 +453 B 🔴 +381 B
assets/Load3DAdvanced-DYcGaPEv.js (removed) 813 B 🟢 -813 B 🟢 -452 B 🟢 -380 B
assets/nightlyBadges-BNgzgVvF.js (removed) 462 B 🟢 -462 B 🟢 -301 B 🟢 -251 B
assets/nightlyBadges-DYVcATFy.js (new) 462 B 🔴 +462 B 🔴 +304 B 🔴 +292 B
assets/missingModelDownload-DAizE8xt.js (removed) 228 B 🟢 -228 B 🟢 -149 B 🟢 -129 B
assets/missingModelDownload-DqeEwtut.js (new) 228 B 🔴 +228 B 🔴 +149 B 🔴 +129 B
assets/SubscriptionPanelContentWorkspace-8QjMyBex.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +93 B
assets/SubscriptionPanelContentWorkspace-DHvMjzZe.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -103 B
assets/Load3dViewerContent-CcdPeFKc.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -110 B
assets/Load3dViewerContent-NBamzyFJ.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +91 B
assets/Load3DAdvanced-AE9vhzbj.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +90 B
assets/Load3DAdvanced-Dp6NRwbf.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -88 B
assets/WidgetLegacy-CJ45Qdfk.js (new) 117 B 🔴 +117 B 🔴 +106 B 🔴 +102 B
assets/WidgetLegacy-tx5NcRf4.js (removed) 117 B 🟢 -117 B 🟢 -106 B 🟢 -101 B
assets/workflowDraftStoreV2-mQ1k12qI.js (new) 112 B 🔴 +112 B 🔴 +101 B 🔴 +107 B
assets/workflowDraftStoreV2-wjc2vILk.js (removed) 112 B 🟢 -112 B 🟢 -101 B 🟢 -109 B
assets/Load3D-Cvu1IcdO.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +81 B
assets/Load3D-EhhLqwTu.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -92 B
assets/changeTracker-BoO1Rz1I.js (removed) 91 B 🟢 -91 B 🟢 -93 B 🟢 -85 B
assets/changeTracker-NoGhOzno.js (new) 91 B 🔴 +91 B 🔴 +93 B 🔴 +86 B

Status: 69 added / 69 removed / 208 unchanged

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 68.5 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 49.9 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 71.5 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.0 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 63.2 MB heap
large-graph-pan: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 62.6 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 59.1 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 64.3 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.8 MB heap
subgraph-idle: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.8 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 52.0 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 148ms TBT · 91.9 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 66.3 MB heap
vue-large-graph-idle: · 55.4 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 159.6 MB heap
vue-large-graph-pan: · 56.3 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 404ms TBT · 166.0 MB heap
workflow-execution: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 49.0 MB heap

⚠️ 10 regressions detected

Show regressions
Metric Baseline PR (median) Δ Sig
canvas-idle: task duration 652ms 495ms -24% ⚠️ z=3.2
canvas-mouse-sweep: task duration 1068ms 1002ms -6% ⚠️ z=2.4
canvas-zoom-sweep: task duration 461ms 413ms -10% ⚠️ z=3.7
large-graph-idle: task duration 899ms 685ms -24% ⚠️ z=2.6
large-graph-pan: task duration 1510ms 1303ms -14% ⚠️ z=5.1
minimap-idle: task duration 895ms 721ms -19% ⚠️ z=4.1
minimap-idle: script duration 142ms 118ms -17% ⚠️ z=2.0
subgraph-dom-widget-clipping: task duration 456ms 416ms -9% ⚠️ z=2.0
subgraph-idle: task duration 594ms 496ms -17% ⚠️ z=4.0
workflow-execution: event listeners 65 99 +52% ⚠️ z=10.7
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 11ms 9ms -20% z=-2.3
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 7 9 +29% z=-3.8
canvas-idle: task duration 652ms 495ms -24% ⚠️ z=3.2
canvas-idle: script duration 29ms 21ms -28% z=-1.9
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 68.3 MB 68.5 MB +0%
canvas-idle: DOM nodes 14 18 +29% z=-3.6
canvas-idle: event listeners 6 4 -33% z=-1.6
canvas-mouse-sweep: avg frame time 17ms 17ms -0% z=-0.9
canvas-mouse-sweep: p95 frame time 17ms 17ms -0%
canvas-mouse-sweep: layout duration 4ms 4ms +2% z=1.5
canvas-mouse-sweep: style recalc duration 51ms 44ms -14% z=0.3
canvas-mouse-sweep: layout count 12 12 +0%
canvas-mouse-sweep: style recalc count 78 76 -3% z=-1.1
canvas-mouse-sweep: task duration 1068ms 1002ms -6% ⚠️ z=2.4
canvas-mouse-sweep: script duration 150ms 134ms -11% z=-0.3
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 52.0 MB 49.9 MB -4%
canvas-mouse-sweep: DOM nodes -277 -276 -1% z=-130.6
canvas-mouse-sweep: event listeners -148 -148 +0% z=-37.5
canvas-zoom-sweep: avg frame time 17ms 17ms -0% z=-0.3
canvas-zoom-sweep: p95 frame time 17ms 17ms -0%
canvas-zoom-sweep: layout duration 1ms 1ms -12% z=0.4
canvas-zoom-sweep: style recalc duration 22ms 19ms -11% z=-0.0
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 32 31 -3% z=-0.6
canvas-zoom-sweep: task duration 461ms 413ms -10% ⚠️ z=3.7
canvas-zoom-sweep: script duration 31ms 24ms -22% z=-1.0
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 71.6 MB 71.5 MB -0%
canvas-zoom-sweep: DOM nodes 78 77 -1% z=-2.8
canvas-zoom-sweep: event listeners 19 19 +0% z=-0.9
dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
dom-widget-clipping: p95 frame time 17ms 17ms +0%
dom-widget-clipping: layout duration 0ms 0ms +0%
dom-widget-clipping: style recalc duration 8ms 9ms +12% z=-1.6
dom-widget-clipping: layout count 0 0 +0%
dom-widget-clipping: style recalc count 11 12 +5% z=-3.2
dom-widget-clipping: task duration 418ms 392ms -6% z=1.7
dom-widget-clipping: script duration 65ms 61ms -7% z=-2.2
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 53.0 MB 53.0 MB -0%
dom-widget-clipping: DOM nodes 18 19 +6% z=-2.2
dom-widget-clipping: event listeners 2 2 +0% 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 10ms 7ms -26% z=-4.5
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 8 8 +0% z=-11.5
large-graph-idle: task duration 899ms 685ms -24% ⚠️ z=2.6
large-graph-idle: script duration 140ms 113ms -19% z=1.0
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 62.3 MB 63.2 MB +1%
large-graph-idle: DOM nodes -274 -276 +1% z=-332.7
large-graph-idle: event listeners -144 -143 -1% z=-27.7
large-graph-pan: avg frame time 17ms 17ms +0% z=0.3
large-graph-pan: p95 frame time 17ms 17ms +0%
large-graph-pan: layout duration 0ms 0ms +0%
large-graph-pan: style recalc duration 14ms 13ms -5% z=-5.1
large-graph-pan: layout count 0 0 +0%
large-graph-pan: style recalc count 68 68 -1% z=-3.2
large-graph-pan: task duration 1510ms 1303ms -14% ⚠️ z=5.1
large-graph-pan: script duration 521ms 430ms -17% z=1.1
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 62.5 MB 62.6 MB +0%
large-graph-pan: DOM nodes -278 -279 +0% z=-180.3
large-graph-pan: event listeners -144 -143 -1% z=-178.6
large-graph-zoom: avg frame time 17ms 17ms +0%
large-graph-zoom: p95 frame time 17ms 17ms -0%
large-graph-zoom: layout duration 8ms 8ms -9%
large-graph-zoom: style recalc duration 16ms 14ms -16%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 64 64 -1%
large-graph-zoom: task duration 1770ms 1547ms -13%
large-graph-zoom: script duration 619ms 544ms -12%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 62.2 MB 59.1 MB -5%
large-graph-zoom: DOM nodes -282 -283 +0%
large-graph-zoom: event listeners -146 -148 +1%
minimap-idle: avg frame time 17ms 17ms -0% z=-0.4
minimap-idle: p95 frame time 17ms 17ms -0%
minimap-idle: layout duration 0ms 0ms +0%
minimap-idle: style recalc duration 9ms 11ms +16% z=1.2
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 8 8 +0% z=-2.3
minimap-idle: task duration 895ms 721ms -19% ⚠️ z=4.1
minimap-idle: script duration 142ms 118ms -17% ⚠️ z=2.0
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 63.8 MB 64.3 MB +1%
minimap-idle: DOM nodes -275 -277 +1% z=-216.2
minimap-idle: event listeners -144 -144 +0% z=-225.0
subgraph-dom-widget-clipping: avg frame time 17ms 17ms -0% z=-0.4
subgraph-dom-widget-clipping: p95 frame time 17ms 17ms -0%
subgraph-dom-widget-clipping: layout duration 0ms 0ms +0%
subgraph-dom-widget-clipping: style recalc duration 13ms 11ms -15% z=-1.7
subgraph-dom-widget-clipping: layout count 0 0 +0%
subgraph-dom-widget-clipping: style recalc count 46 47 +1% z=-2.5
subgraph-dom-widget-clipping: task duration 456ms 416ms -9% ⚠️ z=2.0
subgraph-dom-widget-clipping: script duration 137ms 123ms -10% z=-0.8
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 53.5 MB 53.8 MB +0%
subgraph-dom-widget-clipping: DOM nodes 18 19 +6% z=-2.8
subgraph-dom-widget-clipping: event listeners 8 7 -13% z=-1.6
subgraph-idle: avg frame time 17ms 17ms -0% z=-0.2
subgraph-idle: p95 frame time 17ms 17ms +0%
subgraph-idle: layout duration 0ms 0ms +0%
subgraph-idle: style recalc duration 9ms 9ms -7% z=-2.4
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 9 10 +6% z=-2.1
subgraph-idle: task duration 594ms 496ms -17% ⚠️ z=4.0
subgraph-idle: script duration 24ms 17ms -30% z=-1.3
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 67.9 MB 56.8 MB -16%
subgraph-idle: DOM nodes 18 -127 -806% z=-99.5
subgraph-idle: event listeners 4 -72 -1900% 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 5ms 4ms -21% z=-1.8
subgraph-mouse-sweep: style recalc duration 44ms 36ms -19% z=-2.0
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 77 76 -1% z=-2.1
subgraph-mouse-sweep: task duration 934ms 813ms -13% z=0.7
subgraph-mouse-sweep: script duration 112ms 95ms -15% z=-1.0
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 44.8 MB 52.0 MB +16%
subgraph-mouse-sweep: DOM nodes 60 -107 -278% z=-77.6
subgraph-mouse-sweep: event listeners 4 -72 -1900% 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 14ms 13ms -6%
subgraph-transition-enter: style recalc duration 33ms 32ms -5%
subgraph-transition-enter: layout count 13 16 +23%
subgraph-transition-enter: style recalc count 17 20 +18%
subgraph-transition-enter: task duration 1085ms 997ms -8%
subgraph-transition-enter: script duration 44ms 39ms -11%
subgraph-transition-enter: TBT 158ms 148ms -6%
subgraph-transition-enter: heap used 93.5 MB 91.9 MB -2%
subgraph-transition-enter: DOM nodes 13673 13673 +0%
subgraph-transition-enter: event listeners 2369 2371 +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 42ms 38ms -10%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 249 250 +0%
viewport-pan-sweep: task duration 5300ms 4660ms -12%
viewport-pan-sweep: script duration 1675ms 1443ms -14%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 71.3 MB 66.3 MB -7%
viewport-pan-sweep: DOM nodes -275 -276 +0%
viewport-pan-sweep: event listeners -126 -127 +1%
vue-large-graph-idle: avg frame time 18ms 18ms -2%
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 18198ms 17341ms -5%
vue-large-graph-idle: script duration 617ms 561ms -9%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 152.5 MB 159.6 MB +5%
vue-large-graph-idle: DOM nodes -8312 -8312 +0%
vue-large-graph-idle: event listeners -16385 -16386 +0%
vue-large-graph-pan: avg frame time 18ms 18ms -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 26ms 19ms -26%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 172 146 -15%
vue-large-graph-pan: task duration 22867ms 21205ms -7%
vue-large-graph-pan: script duration 964ms 951ms -1%
vue-large-graph-pan: TBT 728ms 404ms -45%
vue-large-graph-pan: heap used 158.5 MB 166.0 MB +5%
vue-large-graph-pan: DOM nodes -8312 -8312 +0%
vue-large-graph-pan: event listeners -16381 -16382 +0%
workflow-execution: avg frame time 17ms 17ms +0% z=0.6
workflow-execution: p95 frame time 17ms 17ms +1%
workflow-execution: layout duration 1ms 1ms +91% z=-1.5
workflow-execution: style recalc duration 25ms 23ms -7% z=-0.5
workflow-execution: layout count 3 4 +33% z=-1.7
workflow-execution: style recalc count 13 22 +65% z=1.8
workflow-execution: task duration 132ms 133ms +1% z=0.9
workflow-execution: script duration 12ms 11ms -7% z=-6.2
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 48.6 MB 49.0 MB +1%
workflow-execution: DOM nodes 128 150 +17% z=-1.5
workflow-execution: event listeners 65 99 +52% ⚠️ z=10.7
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-07-28T16:33:06.397Z",
  "gitSha": "ff6fe74106a0df1b669716e3d4ec529ee568a3e2",
  "branch": "fix-cant-delete-temp-asset",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2087.8629999999985,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.265999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 514.4879999999999,
      "heapDeltaBytes": 3975736,
      "heapUsedBytes": 71829948,
      "domNodes": 18,
      "jsHeapTotalBytes": 20058112,
      "scriptDurationMs": 24.647000000000002,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-idle",
      "durationMs": 2020.6450000000018,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.318,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 475.7919999999999,
      "heapDeltaBytes": 3941228,
      "heapUsedBytes": 71815532,
      "domNodes": 18,
      "jsHeapTotalBytes": 20058112,
      "scriptDurationMs": 17.625,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2050.1859999999965,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 46.10399999999999,
      "layouts": 12,
      "layoutDurationMs": 4.263999999999999,
      "taskDurationMs": 1066.501,
      "heapDeltaBytes": -15088780,
      "heapUsedBytes": 53034932,
      "domNodes": -277,
      "jsHeapTotalBytes": 21495808,
      "scriptDurationMs": 137.126,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1889.724000000001,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 41.086999999999996,
      "layouts": 12,
      "layoutDurationMs": 3.528,
      "taskDurationMs": 937.452,
      "heapDeltaBytes": -16420752,
      "heapUsedBytes": 51511016,
      "domNodes": -274,
      "jsHeapTotalBytes": 21495808,
      "scriptDurationMs": 129.878,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1716.5059999999812,
      "styleRecalcs": 30,
      "styleRecalcDurationMs": 18.845,
      "layouts": 6,
      "layoutDurationMs": 0.72,
      "taskDurationMs": 395.782,
      "heapDeltaBytes": 7044876,
      "heapUsedBytes": 74854872,
      "domNodes": 77,
      "jsHeapTotalBytes": 20320256,
      "scriptDurationMs": 22.787999999999997,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1737.2589999999946,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 19.39,
      "layouts": 6,
      "layoutDurationMs": 0.599,
      "taskDurationMs": 429.83,
      "heapDeltaBytes": 7106912,
      "heapUsedBytes": 75180156,
      "domNodes": 77,
      "jsHeapTotalBytes": 20320256,
      "scriptDurationMs": 25.511999999999997,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 613.0380000000173,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 9.347999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 404.1979999999999,
      "heapDeltaBytes": -12250408,
      "heapUsedBytes": 55480180,
      "domNodes": 20,
      "jsHeapTotalBytes": 21106688,
      "scriptDurationMs": 60.28000000000001,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 593.0210000000216,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 7.85,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 380.09400000000005,
      "heapDeltaBytes": -12244232,
      "heapUsedBytes": 55566228,
      "domNodes": 18,
      "jsHeapTotalBytes": 21630976,
      "scriptDurationMs": 61.216,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2043.1689999999776,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.811999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 685.9089999999999,
      "heapDeltaBytes": 6957200,
      "heapUsedBytes": 66245688,
      "domNodes": -276,
      "jsHeapTotalBytes": 3739648,
      "scriptDurationMs": 110.647,
      "eventListeners": -142,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2037.7859999999828,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.139000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 684.7480000000002,
      "heapDeltaBytes": 6790564,
      "heapUsedBytes": 66266420,
      "domNodes": -276,
      "jsHeapTotalBytes": 5312512,
      "scriptDurationMs": 115.875,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2145.7189999999855,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 12.052999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1292.489,
      "heapDeltaBytes": 4677732,
      "heapUsedBytes": 65636056,
      "domNodes": -277,
      "jsHeapTotalBytes": 4730880,
      "scriptDurationMs": 420.989,
      "eventListeners": -142,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2217.0899999999847,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 14.386999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1313.077,
      "heapDeltaBytes": 5362780,
      "heapUsedBytes": 65744500,
      "domNodes": -280,
      "jsHeapTotalBytes": 4730880,
      "scriptDurationMs": 439.796,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3215.4319999999643,
      "styleRecalcs": 62,
      "styleRecalcDurationMs": 12.410999999999998,
      "layouts": 60,
      "layoutDurationMs": 7.595,
      "taskDurationMs": 1534.6259999999997,
      "heapDeltaBytes": -1313184,
      "heapUsedBytes": 60511228,
      "domNodes": -285,
      "jsHeapTotalBytes": 7933952,
      "scriptDurationMs": 540.165,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3263.6459999999943,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 14.639,
      "layouts": 60,
      "layoutDurationMs": 7.5040000000000004,
      "taskDurationMs": 1558.5710000000001,
      "heapDeltaBytes": 2356428,
      "heapUsedBytes": 63459496,
      "domNodes": -280,
      "jsHeapTotalBytes": 7671808,
      "scriptDurationMs": 547.918,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2036.0610000000179,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.956000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 712.0759999999999,
      "heapDeltaBytes": 6216192,
      "heapUsedBytes": 66927124,
      "domNodes": -276,
      "jsHeapTotalBytes": 4526080,
      "scriptDurationMs": 115.88299999999998,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "minimap-idle",
      "durationMs": 2076.2130000000525,
      "styleRecalcs": 7,
      "styleRecalcDurationMs": 12.207000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 729.8469999999999,
      "heapDeltaBytes": 7363784,
      "heapUsedBytes": 67895528,
      "domNodes": -277,
      "jsHeapTotalBytes": 4788224,
      "scriptDurationMs": 120.95799999999998,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 600.084000000038,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 11.237999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 413.02699999999993,
      "heapDeltaBytes": -11399160,
      "heapUsedBytes": 56535840,
      "domNodes": 20,
      "jsHeapTotalBytes": 21893120,
      "scriptDurationMs": 123.19099999999999,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 610.8679999999822,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 10.912,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 418.249,
      "heapDeltaBytes": -11790612,
      "heapUsedBytes": 56229768,
      "domNodes": 18,
      "jsHeapTotalBytes": 21893120,
      "scriptDurationMs": 123.67900000000002,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1993.6230000000137,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 8.766,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 468.03700000000003,
      "heapDeltaBytes": 3522316,
      "heapUsedBytes": 71432600,
      "domNodes": 20,
      "jsHeapTotalBytes": 20582400,
      "scriptDurationMs": 16.580000000000002,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2038.445999999965,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.309,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 524.455,
      "heapDeltaBytes": -20181212,
      "heapUsedBytes": 47725520,
      "domNodes": -274,
      "jsHeapTotalBytes": 20709376,
      "scriptDurationMs": 16.996,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1708.2209999999804,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 35.549,
      "layouts": 16,
      "layoutDurationMs": 4.3999999999999995,
      "taskDurationMs": 792.2099999999999,
      "heapDeltaBytes": -5454460,
      "heapUsedBytes": 62298264,
      "domNodes": 60,
      "jsHeapTotalBytes": 21368832,
      "scriptDurationMs": 95.91,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1752.9890000000705,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 36.18,
      "layouts": 16,
      "layoutDurationMs": 3.8510000000000004,
      "taskDurationMs": 833.52,
      "heapDeltaBytes": -21363784,
      "heapUsedBytes": 46771724,
      "domNodes": -273,
      "jsHeapTotalBytes": 21233664,
      "scriptDurationMs": 93.22800000000001,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 1434.821999999997,
      "styleRecalcs": 20,
      "styleRecalcDurationMs": 31.646999999999995,
      "layouts": 16,
      "layoutDurationMs": 13.027999999999999,
      "taskDurationMs": 996.7070000000002,
      "heapDeltaBytes": 27307580,
      "heapUsedBytes": 96415280,
      "domNodes": 13673,
      "jsHeapTotalBytes": 15728640,
      "scriptDurationMs": 39.498999999999995,
      "eventListeners": 2371,
      "totalBlockingTimeMs": 148,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8419.907999999963,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 38.038000000000004,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4642.823,
      "heapDeltaBytes": 10745136,
      "heapUsedBytes": 69393944,
      "domNodes": -275,
      "jsHeapTotalBytes": 7323648,
      "scriptDurationMs": 1433.849,
      "eventListeners": -126,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8341.736999999966,
      "styleRecalcs": 249,
      "styleRecalcDurationMs": 37.447,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4676.666,
      "heapDeltaBytes": 10686680,
      "heapUsedBytes": 69697908,
      "domNodes": -277,
      "jsHeapTotalBytes": 6537216,
      "scriptDurationMs": 1452.6919999999998,
      "eventListeners": -128,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17391.40500000002,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17362.247,
      "heapDeltaBytes": -39988564,
      "heapUsedBytes": 166844900,
      "domNodes": -8312,
      "jsHeapTotalBytes": -11997184,
      "scriptDurationMs": 529.175,
      "eventListeners": -16387,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.329999999999927,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17336.76300000002,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17319.47,
      "heapDeltaBytes": -60410920,
      "heapUsedBytes": 167757176,
      "domNodes": -8312,
      "jsHeapTotalBytes": -12492800,
      "scriptDurationMs": 591.847,
      "eventListeners": -16385,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21276.681999999993,
      "styleRecalcs": 146,
      "styleRecalcDurationMs": 19.774000000000015,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 21233.157000000003,
      "heapDeltaBytes": -55006936,
      "heapUsedBytes": 168915856,
      "domNodes": -8312,
      "jsHeapTotalBytes": -15925248,
      "scriptDurationMs": 954.262,
      "eventListeners": -16381,
      "totalBlockingTimeMs": 410,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21230.150999999976,
      "styleRecalcs": 146,
      "styleRecalcDurationMs": 18.268000000000008,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 21176.817,
      "heapDeltaBytes": -47063656,
      "heapUsedBytes": 179314984,
      "domNodes": -8312,
      "jsHeapTotalBytes": -13389824,
      "scriptDurationMs": 947.022,
      "eventListeners": -16383,
      "totalBlockingTimeMs": 397,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 474.6319999999855,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 28.903,
      "layouts": 5,
      "layoutDurationMs": 2.072,
      "taskDurationMs": 157.65100000000004,
      "heapDeltaBytes": -14901588,
      "heapUsedBytes": 51806936,
      "domNodes": 183,
      "jsHeapTotalBytes": 7999488,
      "scriptDurationMs": 12.439000000000002,
      "eventListeners": 132,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "workflow-execution",
      "durationMs": 462.3380000000452,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 17.189000000000004,
      "layouts": 3,
      "layoutDurationMs": 0.5790000000000001,
      "taskDurationMs": 108.31900000000002,
      "heapDeltaBytes": -16112748,
      "heapUsedBytes": 51053000,
      "domNodes": 117,
      "jsHeapTotalBytes": 7475200,
      "scriptDurationMs": 9.121,
      "eventListeners": 65,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    }
  ]
}

@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Two conditions in useMediaAssetActions.ts that previously applied only to output assets are extended to also match temp assets: the deleteAssetApi history-deletion branch and the hasOutputAssets check for triggering history refresh. A new test suite verifies the temp-asset deletion path.

Temp Asset Deletion Fix

Layer / File(s) Summary
Expand deletion logic to temp assets
src/platform/assets/composables/useMediaAssetActions.ts
deleteAssetApi routes temp assets through api.deleteItem('history', jobId) (previously only output assets), and hasOutputAssets now treats temp as output-like so assetsStore.updateHistory() is triggered.
Test suite for temp asset deletion
src/platform/assets/composables/useMediaAssetActions.test.ts
Imports api and adds a deleteAssets — temp (preview-node) outputs describe block that asserts api.deleteItem('history', jobId) is called, mockDeleteAsset is not called, and mockUpdateHistory is called.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related issues

  • #14682 — Can't delete temp assets (preview node outputs): This PR directly fixes the deletion path for temp assets, resolving the "Deleting imported files is only supported in cloud version" error.

Suggested labels

core/1.46, cloud/1.46

Suggested reviewers

  • christian-byrne
  • dante01yoon

Poem

🐇 A temp file once stuck, refused to depart,
"Only cloud can delete me!" — quite bold of the art.
But now with a patch, both output and temp
route through history's door — no more of that hemp!
Hop hop, the bunny fixed the delete, hip-hip! 🎉


Important

Pre-merge checks failed

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

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
End-To-End Regression Coverage For Fixes ❓ Inconclusive Commit subjects and PR title aren’t provided, so the bug-fix signal required by the check can’t be verified from metadata alone. Please provide the PR title/commit subjects (and any browser_tests changes if present) so the end-to-end regression coverage check can be decided.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: enabling deletion of temp preview-node assets.
Linked Issues check ✅ Passed The changes match issue #14682 by allowing temp preview outputs to delete in OSS and refreshing the panel afterward.
Out of Scope Changes check ✅ Passed The diff is narrowly scoped to temp-asset deletion logic and its regression test, with no unrelated changes.
Adr Compliance For Entity/Litegraph Changes ✅ Passed Changed files are only under src/platform/assets/composables/, so the ADR 0003/0008 entity/litegraph check does not apply.
Description check ✅ Passed The description is detailed and covers the fix, issue link, testing, and concerns, though it does not follow the requested template sections.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@           Coverage Diff            @@
##             main   #13294    +/-   ##
========================================
  Coverage   79.07%   79.07%            
========================================
  Files        1745     1745            
  Lines       99107    99108     +1     
  Branches    32146    32820   +674     
========================================
+ Hits        78368    78370     +2     
+ Misses      20351    20343     -8     
- Partials      388      395     +7     
Flag Coverage Δ
unit 68.90% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...latform/assets/composables/useMediaAssetActions.ts 81.76% <100.00%> (+0.33%) ⬆️

... and 5 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.

@alexisrolland

Copy link
Copy Markdown
Member

@DeniDoman thanks for the PR. I tested this and I can confirm this works as expected and solves the bug. I'll bring it up to frontend team for technical review.

@dante01yoon dante01yoon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed current head 5d20fe4c. I found no blocking correctness issues in the temp-asset history deletion path or its regression coverage. I’m intentionally withholding approval pending a second technical review.

Second-reviewer recommendation: synap5e (Simon Pinfold). He is a current Comfy-Org member with the strongest recent ownership of the assets subsystem, including grouped output handling and several current assets-mode changes. christian-byrne is the best backup: he authored the existing jobId/history-deletion logic touched here and has substantial asset-browser history.

@christian-byrne christian-byrne left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the contribution

@christian-byrne
christian-byrne added this pull request to the merge queue Jul 28, 2026
Merged via the queue into Comfy-Org:main with commit 155eccd Jul 28, 2026
59 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Can't delete temp assets (preview node outputs)

4 participants