Skip to content

feat: instrument unified auth retry outcomes - #14500

Merged
dante01yoon merged 1 commit into
mainfrom
feat/unified-auth-retry-telemetry
Jul 31, 2026
Merged

feat: instrument unified auth retry outcomes#14500
dante01yoon merged 1 commit into
mainfrom
feat/unified-auth-retry-telemetry

Conversation

@dante01yoon

Copy link
Copy Markdown
Collaborator

Summary

Adds one terminal Datadog RUM action for each flag-enabled unified-auth 401 recovery attempt so rollout monitoring can distinguish successful recovery, persistent authorization failures, re-mint failures, and retry transport failures.

Changes

  • What: Emits auth.unified.request_retry.succeeded or auth.unified.request_retry.failed after fetch and Axios 401 recovery, with only low-cardinality transport, outcome, final_status, and failure_reason context.
  • Root cause: Resource events show the treatment cohort but cannot identify whether a 401 was recovered or amplified by the retry path. Current production baselines include tens of thousands of repeated 401/403 events from fewer than 100 sessions, so raw resource counts cannot safely drive rollout decisions.
  • Privacy: Does not emit tokens, authorization headers, request URLs, response bodies, or user identifiers.
  • Dependencies: Related to feat: instrument Allowlist actions #14273, which supplies unified_cloud_auth feature-flag attribution. This PR remains runtime-safe without it; cohort filtering becomes available after both changes deploy.

Review Focus

  • Exactly one lifecycle action is emitted per initial 401 that enters the unified retry path.
  • Flag-off and non-401 traffic remain telemetry no-ops.
  • Persistent 401s and transport failures preserve the existing response/error behavior.

Verification

  • pnpm test:unit src/platform/auth/unified/remintRetry.test.ts src/platform/telemetry/TelemetryRegistry.test.ts src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts (40 tests)
  • pnpm typecheck
  • Targeted ESLint on all changed files

Screenshots (if applicable)

Not applicable; telemetry-only change with no UI impact.

@dante01yoon
dante01yoon requested a review from a team July 31, 2026 19:59
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jul 31, 2026
@dosubot

dosubot Bot commented Jul 31, 2026

Copy link
Copy Markdown

📄 Knowledge review

Dosu skipped reviewing this PR because your organization has used its 200 included credits for the month. Your usage will reset on 2026-08-01. To have Dosu review this PR before then, ask your organization admin to upgrade to a pro account.


Leave Feedback Ask Dosu about ComfyUI_frontend Add Dosu to your team

@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 07/31/2026, 08:01:33 PM UTC

Links

🎭 Playwright: ✅ 1780 passed, 0 failed · 1 flaky

📊 Browser Reports
  • chromium: View Report (✅ 1759 / ❌ 0 / ⚠️ 1 / ⏭️ 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.19 MB gzip 🔴 +396 B

Details

Summary

  • Raw size: 34.4 MB baseline 34.4 MB — 🔴 +1.79 kB
  • Gzip: 8.19 MB baseline 8.19 MB — 🔴 +396 B
  • Brotli: 5.67 MB baseline 5.67 MB — 🔴 +286 B
  • Bundles: 426 current • 426 baseline • 146 added / 146 removed

Category Glance
Data & Services 🔴 +1.5 kB (3.45 MB) · Other 🔴 +255 B (12.7 MB) · Panels & Settings 🔴 +29 B (551 kB) · Vendor & Third-Party ⚪ 0 B (15.7 MB) · Graph Workspace ⚪ 0 B (1.29 MB) · Utilities & Hooks ⚪ 0 B (386 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-DmcKdeVt.js (removed) 3.62 kB 🟢 -3.62 kB 🟢 -1.81 kB 🟢 -1.57 kB
assets/index-DmGKOuys.js (new) 3.62 kB 🔴 +3.62 kB 🔴 +1.8 kB 🔴 +1.57 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-_po9WvON.js (removed) 1.29 MB 🟢 -1.29 MB 🟢 -276 kB 🟢 -208 kB
assets/GraphView-CYils6I2.js (new) 1.29 MB 🔴 +1.29 MB 🔴 +276 kB 🔴 +208 kB

Status: 1 added / 1 removed / 1 unchanged

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-5aSBaFhp.js (removed) 24.9 kB 🟢 -24.9 kB 🟢 -6.22 kB 🟢 -5.51 kB
assets/CloudSurveyView-Brpwbe3w.js (new) 24.9 kB 🔴 +24.9 kB 🔴 +6.22 kB 🔴 +5.51 kB
assets/CloudLoginView-C7Ag2Ayj.js (removed) 11.6 kB 🟢 -11.6 kB 🟢 -3.11 kB 🟢 -2.74 kB
assets/CloudLoginView-CW0bOnjc.js (new) 11.6 kB 🔴 +11.6 kB 🔴 +3.11 kB 🔴 +2.73 kB
assets/CloudSignupView-BogXXR__.js (removed) 9.9 kB 🟢 -9.9 kB 🟢 -2.78 kB 🟢 -2.43 kB
assets/CloudSignupView-DwieJ2ub.js (new) 9.9 kB 🔴 +9.9 kB 🔴 +2.78 kB 🔴 +2.44 kB
assets/CloudLayoutView-CBF7ORkF.js (removed) 9.48 kB 🟢 -9.48 kB 🟢 -2.32 kB 🟢 -1.99 kB
assets/CloudLayoutView-x-fqy4ZK.js (new) 9.48 kB 🔴 +9.48 kB 🔴 +2.32 kB 🔴 +1.99 kB
assets/UserCheckView-BxE7mBYc.js (removed) 8.75 kB 🟢 -8.75 kB 🟢 -2.19 kB 🟢 -1.9 kB
assets/UserCheckView-CSvuMN55.js (new) 8.75 kB 🔴 +8.75 kB 🔴 +2.19 kB 🔴 +1.9 kB
assets/WidgetTextPreview-BmOEakme.js (new) 6.07 kB 🔴 +6.07 kB 🔴 +2.13 kB 🔴 +1.89 kB
assets/WidgetTextPreview-C2tbX2u9.js (removed) 6.07 kB 🟢 -6.07 kB 🟢 -2.13 kB 🟢 -1.9 kB
assets/CloudSubscriptionRedirectView-B7QdTBgf.js (removed) 5.99 kB 🟢 -5.99 kB 🟢 -2.23 kB 🟢 -1.94 kB
assets/CloudSubscriptionRedirectView-BxzOJzU1.js (new) 5.99 kB 🔴 +5.99 kB 🔴 +2.23 kB 🔴 +1.94 kB
assets/UserSelectView-Bipq_14r.js (new) 5.49 kB 🔴 +5.49 kB 🔴 +1.95 kB 🔴 +1.71 kB
assets/UserSelectView-C3ZB-XuP.js (removed) 5.49 kB 🟢 -5.49 kB 🟢 -1.95 kB 🟢 -1.72 kB
assets/CloudForgotPasswordView-C0MP-wSK.js (new) 5.09 kB 🔴 +5.09 kB 🔴 +1.73 kB 🔴 +1.51 kB
assets/CloudForgotPasswordView-uHkXhL_Y.js (removed) 5.09 kB 🟢 -5.09 kB 🟢 -1.72 kB 🟢 -1.51 kB
assets/CloudAuthTimeoutView-CdJRfLx3.js (removed) 4.43 kB 🟢 -4.43 kB 🟢 -1.54 kB 🟢 -1.34 kB
assets/CloudAuthTimeoutView-In5kWI_2.js (new) 4.43 kB 🔴 +4.43 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/OAuthLayoutView-CJl-4krC.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -700 B 🟢 -594 B
assets/OAuthLayoutView-CTcIAEz2.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +701 B 🔴 +594 B
assets/WidgetTextPreview-CeAEFmMI.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -89 B
assets/WidgetTextPreview-LIEidlOW.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +87 B

Status: 12 added / 12 removed / 4 unchanged

Panels & Settings — 551 kB (baseline 551 kB) • 🔴 +29 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-BrJlluqn.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.95 kB 🔴 +8.81 kB
assets/KeybindingPanel-CGXxzRh0.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.95 kB 🟢 -8.82 kB
assets/SecretsPanel-BkmUlLQm.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +7.86 kB 🔴 +6.89 kB
assets/SecretsPanel-Mz_MnbpT.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -7.86 kB 🟢 -6.89 kB
assets/CreditsPanel-BDteiSM4.js (removed) 15.9 kB 🟢 -15.9 kB 🟢 -4.63 kB 🟢 -4.07 kB
assets/CreditsPanel-hX011GlB.js (new) 15.9 kB 🔴 +15.9 kB 🔴 +4.63 kB 🔴 +4.06 kB
assets/SubscriptionPanel-BnYbcbXI.js (new) 11.4 kB 🔴 +11.4 kB 🔴 +3.63 kB 🔴 +3.17 kB
assets/SubscriptionPanel-CfcseFBo.js (removed) 11.4 kB 🟢 -11.4 kB 🟢 -3.63 kB 🟢 -3.2 kB
assets/AboutPanel-BPrngyhy.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.02 kB 🔴 +2.71 kB
assets/AboutPanel-BtXFVFv1.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.02 kB 🟢 -2.71 kB
assets/ExtensionPanel-Bw42IwXG.js (new) 9.19 kB 🔴 +9.19 kB 🔴 +2.51 kB 🔴 +2.22 kB
assets/ExtensionPanel-C2FPLVBi.js (removed) 9.19 kB 🟢 -9.19 kB 🟢 -2.51 kB 🟢 -2.22 kB
assets/ServerConfigPanel-B3LhfMJ7.js (removed) 6.09 kB 🟢 -6.09 kB 🟢 -1.94 kB 🟢 -1.72 kB
assets/ServerConfigPanel-npiQ7ESh.js (new) 6.09 kB 🔴 +6.09 kB 🔴 +1.94 kB 🔴 +1.73 kB
assets/UserPanel-BIYVEogV.js (removed) 5.73 kB 🟢 -5.73 kB 🟢 -1.78 kB 🟢 -1.55 kB
assets/UserPanel-lSbcn69q.js (new) 5.73 kB 🔴 +5.73 kB 🔴 +1.78 kB 🔴 +1.55 kB
assets/refreshRemoteConfig-BsllwrJX.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +1.25 kB 🔴 +1.11 kB
assets/refreshRemoteConfig-D6tOZgMq.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/cloudRemoteConfig-CpuPntCL.js (removed) 933 B 🟢 -933 B 🟢 -506 B 🟢 -418 B
assets/cloudRemoteConfig-DDn4nUKW.js (new) 933 B 🔴 +933 B 🔴 +504 B 🔴 +417 B
assets/refreshRemoteConfig-B9UveGOG.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +82 B
assets/refreshRemoteConfig-CTUJ3vdG.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -90 B

Status: 11 added / 11 removed / 15 unchanged

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SignUpForm-CIV9HR2g.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -4.15 kB 🟢 -3.62 kB
assets/SignUpForm-WctGXY4o.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +4.15 kB 🔴 +3.62 kB
assets/auth-dh54zizz.js (removed) 3.65 kB 🟢 -3.65 kB 🟢 -1.27 kB 🟢 -1.09 kB
assets/auth-DT9PSlyt.js (new) 3.65 kB 🔴 +3.65 kB 🔴 +1.27 kB 🔴 +1.09 kB
assets/usePostAuthRedirect-BnLOJL7z.js (new) 3.28 kB 🔴 +3.28 kB 🔴 +1.24 kB 🔴 +1.08 kB
assets/usePostAuthRedirect-DY0UYZyf.js (removed) 3.28 kB 🟢 -3.28 kB 🟢 -1.24 kB 🟢 -1.08 kB
assets/UpdatePasswordContent-BHPx1bNz.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -839 B 🟢 -726 B
assets/UpdatePasswordContent-CEv86t7Y.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +839 B 🔴 +728 B
assets/authStore-BTzXSkWq.js (removed) 128 B 🟢 -128 B 🟢 -104 B 🟢 -104 B
assets/authStore-CsB2HhWc.js (new) 128 B 🔴 +128 B 🔴 +104 B 🔴 +104 B
assets/workspaceAuthStore-DA9I5sMT.js (new) 108 B 🔴 +108 B 🔴 +99 B 🔴 +108 B
assets/workspaceAuthStore-fcXIrT0-.js (removed) 108 B 🟢 -108 B 🟢 -99 B 🟢 -104 B
assets/auth-Be4OU1B7.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -79 B
assets/auth-CoZo073x.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +93 B

Status: 7 added / 7 removed / 3 unchanged

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyHubPublishDialog-B86C_5HO.js (new) 90 kB 🔴 +90 kB 🔴 +19.2 kB 🔴 +16.5 kB
assets/ComfyHubPublishDialog-Bf9gyXC6.js (removed) 90 kB 🟢 -90 kB 🟢 -19.2 kB 🟢 -16.5 kB
assets/useShareDialog-CIwq-voE.js (removed) 23.9 kB 🟢 -23.9 kB 🟢 -5.7 kB 🟢 -5.04 kB
assets/useShareDialog-DPvL9WUU.js (new) 23.9 kB 🔴 +23.9 kB 🔴 +5.69 kB 🔴 +5.04 kB
assets/feedbackDialog-DOA0qwoO.js (removed) 4.45 kB 🟢 -4.45 kB 🟢 -1.86 kB 🟢 -1.59 kB
assets/feedbackDialog-HPY1y4q1.js (new) 4.45 kB 🔴 +4.45 kB 🔴 +1.87 kB 🔴 +1.59 kB
assets/useRangeEditor-DhDUxk8v.js (new) 3.23 kB 🔴 +3.23 kB 🔴 +1.13 kB 🔴 +1.04 kB
assets/useRangeEditor-Dtayoigt.js (removed) 3.23 kB 🟢 -3.23 kB 🟢 -1.13 kB 🟢 -1.04 kB
assets/ComfyHubPublishDialog-BA1bzdlT.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +92 B
assets/ComfyHubPublishDialog-CYi_KG6E.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -89 B
assets/useSubscriptionDialog-DPArkCRW.js (removed) 108 B 🟢 -108 B 🟢 -102 B 🟢 -95 B
assets/useSubscriptionDialog-pLZnI4at.js (new) 108 B 🔴 +108 B 🔴 +102 B 🔴 +93 B

Status: 6 added / 6 removed / 1 unchanged

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-BYHaNnpT.js (removed) 13.5 kB 🟢 -13.5 kB 🟢 -3.73 kB 🟢 -3.31 kB
assets/ComfyQueueButton-CFcLfrAZ.js (new) 13.5 kB 🔴 +13.5 kB 🔴 +3.73 kB 🔴 +3.32 kB
assets/useTerminalTabs-8bAPP2Jv.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.69 kB 🟢 -3.26 kB
assets/useTerminalTabs-DMFuA-OZ.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.69 kB 🔴 +3.26 kB
assets/InviteMembersForm-CP4esvj1.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.65 kB 🔴 +2.36 kB
assets/InviteMembersForm-CuQukKcf.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.65 kB 🟢 -2.35 kB
assets/SubscribeButton-DSmUCJt9.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -954 B 🟢 -835 B
assets/SubscribeButton-H3GzCVq1.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +954 B 🔴 +833 B
assets/cloudFeedbackTopbarButton-Cf3m4NdG.js (removed) 705 B 🟢 -705 B 🟢 -419 B 🟢 -360 B
assets/cloudFeedbackTopbarButton-pQIXCuXY.js (new) 705 B 🔴 +705 B 🔴 +421 B 🔴 +361 B
assets/ComfyQueueButton-Ds1AL5PU.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -93 B
assets/ComfyQueueButton-XciStiZQ.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +93 B

Status: 6 added / 6 removed / 9 unchanged

Data & Services — 3.45 MB (baseline 3.44 MB) • 🔴 +1.5 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settingStore-BTYjbnpF.js (new) 3.17 MB 🔴 +3.17 MB 🔴 +734 kB 🔴 +553 kB
assets/settingStore-CaUqv_Cz.js (removed) 3.17 MB 🟢 -3.17 MB 🟢 -734 kB 🟢 -553 kB
assets/load3dService-Bmh8JUbZ.js (new) 132 kB 🔴 +132 kB 🔴 +29.2 kB 🔴 +24.6 kB
assets/load3dService-DQ7RRpb3.js (removed) 132 kB 🟢 -132 kB 🟢 -29.2 kB 🟢 -24.6 kB
assets/api-C6embjgz.js (new) 93.4 kB 🔴 +93.4 kB 🔴 +25.8 kB 🔴 +22.1 kB
assets/api-DQhJ-yI7.js (removed) 92 kB 🟢 -92 kB 🟢 -25.4 kB 🟢 -21.8 kB
assets/workflowShareService-BznEjmA9.js (new) 16.4 kB 🔴 +16.4 kB 🔴 +4.89 kB 🔴 +4.33 kB
assets/workflowShareService-HkfeVxs_.js (removed) 16.4 kB 🟢 -16.4 kB 🟢 -4.89 kB 🟢 -4.33 kB
assets/keybindingService-B11NgE3m.js (new) 7.08 kB 🔴 +7.08 kB 🔴 +1.82 kB 🔴 +1.58 kB
assets/keybindingService-D4YbbkH-.js (removed) 7.08 kB 🟢 -7.08 kB 🟢 -1.82 kB 🟢 -1.58 kB
assets/releaseStore-CWgunKrj.js (new) 6.72 kB 🔴 +6.72 kB 🔴 +2.03 kB 🔴 +1.77 kB
assets/releaseStore-DzbWuNnt.js (removed) 6.72 kB 🟢 -6.72 kB 🟢 -2.03 kB 🟢 -1.78 kB
assets/systemStatsStore-DzIfjTlf.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.74 kB 🔴 +1.47 kB
assets/systemStatsStore-XH-_8QJY.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.74 kB 🟢 -1.47 kB
assets/userStore-BxtPhd-h.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -898 B 🟢 -795 B
assets/userStore-Ca4Dc0N-.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +897 B 🔴 +801 B
assets/audioService-ByoGTtt-.js (new) 1.71 kB 🔴 +1.71 kB 🔴 +828 B 🔴 +722 B
assets/audioService-Ht7HBsRj.js (removed) 1.71 kB 🟢 -1.71 kB 🟢 -830 B 🟢 -724 B
assets/dialogService-A6ed8JTn.js (removed) 98 B 🟢 -98 B 🟢 -97 B 🟢 -84 B
assets/dialogService-C2sWWpma.js (new) 98 B 🔴 +98 B 🔴 +97 B 🔴 +83 B
assets/releaseStore-CjgA1H8G.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -84 B
assets/releaseStore-nQiToktg.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +84 B
assets/settingStore-CmI3Jvah.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +83 B
assets/settingStore-DyeyuS56.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -83 B
assets/assetsStore-BcF1kuIz.js (removed) 94 B 🟢 -94 B 🟢 -92 B 🟢 -85 B
assets/assetsStore-DD5Dm_Rf.js (new) 94 B 🔴 +94 B 🔴 +92 B 🔴 +83 B
assets/api-BBtQpYGj.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B
assets/api-mDIlahTL.js (removed) 62 B 🟢 -62 B 🟢 -74 B 🟢 -66 B

Status: 14 added / 14 removed / 3 unchanged

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-BCzAH-BF.js (removed) 235 kB 🟢 -235 kB 🟢 -52.5 kB 🟢 -42.7 kB
assets/useConflictDetection-BQzj-MDH.js (new) 235 kB 🔴 +235 kB 🔴 +52.5 kB 🔴 +42.7 kB
assets/useLoad3d-BQkIeufi.js (removed) 25.7 kB 🟢 -25.7 kB 🟢 -5.79 kB 🟢 -5.12 kB
assets/useLoad3d-SV_QRnLt.js (new) 25.7 kB 🔴 +25.7 kB 🔴 +5.79 kB 🔴 +5.13 kB
assets/useLoad3dViewer-7SfbR4cX.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +4.98 kB 🔴 +4.36 kB
assets/useLoad3dViewer-ctSprUl7.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -4.98 kB 🟢 -4.35 kB
assets/useImageCrop-Br545Xaw.js (removed) 15 kB 🟢 -15 kB 🟢 -3.42 kB 🟢 -2.98 kB
assets/useImageCrop-DBMa_g3O.js (new) 15 kB 🔴 +15 kB 🔴 +3.42 kB 🔴 +2.98 kB
assets/useDowngradeToPersonal-BiRrg1Fl.js (new) 8.85 kB 🔴 +8.85 kB 🔴 +2.53 kB 🔴 +2.17 kB
assets/useDowngradeToPersonal-DUUz8axl.js (removed) 8.85 kB 🟢 -8.85 kB 🟢 -2.53 kB 🟢 -2.17 kB
assets/useFeatureFlags-BpUmsVDU.js (new) 7.31 kB 🔴 +7.31 kB 🔴 +2.18 kB 🔴 +1.83 kB
assets/useFeatureFlags-BzTu0MUW.js (removed) 7.31 kB 🟢 -7.31 kB 🟢 -2.18 kB 🟢 -1.84 kB
assets/assetPreviewUtil-B1loZBdO.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -969 B 🟢 -845 B
assets/assetPreviewUtil-D7dwD9-7.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +968 B 🔴 +844 B
assets/useUpstreamValue-C2YFsAik.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +757 B 🔴 +676 B
assets/useUpstreamValue-DD1c55zE.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -758 B 🟢 -676 B
assets/useWorkspaceTierLabel-DjwEycu0.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +815 B 🔴 +697 B
assets/useWorkspaceTierLabel-Tv56u8lA.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -814 B 🟢 -700 B
assets/subscriptionCheckoutUtil-BamMe4O0.js (new) 841 B 🔴 +841 B 🔴 +501 B 🔴 +425 B
assets/subscriptionCheckoutUtil-DmtqtObK.js (removed) 841 B 🟢 -841 B 🟢 -502 B 🟢 -426 B
assets/useSessionCookie-RN6CZnW7.js (new) 692 B 🔴 +692 B 🔴 +354 B 🔴 +306 B
assets/useSessionCookie-uJbZoek4.js (removed) 692 B 🟢 -692 B 🟢 -357 B 🟢 -311 B
assets/useLoad3d-DOXmI0Gh.js (new) 311 B 🔴 +311 B 🔴 +163 B 🔴 +146 B
assets/useLoad3d-KAhodhBg.js (removed) 311 B 🟢 -311 B 🟢 -163 B 🟢 -147 B
assets/useSessionCookie-BFov6v2m.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +81 B
assets/useSessionCookie-CHfbxxmE.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -79 B
assets/useFeatureFlags-C_UaBzEa.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -86 B
assets/useFeatureFlags-CAhAPlQo.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +87 B
assets/useLoad3dViewer-CEEucfTI.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -84 B
assets/useLoad3dViewer-DDEgoEzQ.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +87 B
assets/useCurrentUser-Dz_nLoAx.js (new) 94 B 🔴 +94 B 🔴 +95 B 🔴 +90 B
assets/useCurrentUser-xJH4hLw3.js (removed) 94 B 🟢 -94 B 🟢 -95 B 🟢 -84 B

Status: 16 added / 16 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.7 MB (baseline 12.7 MB) • 🔴 +255 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-Bp-a7TMW.js (new) 111 kB 🔴 +111 kB 🔴 +28.6 kB 🔴 +24.2 kB
assets/core-C-RGmfsR.js (removed) 111 kB 🟢 -111 kB 🟢 -28.7 kB 🟢 -24.3 kB
assets/WidgetSelect-CKKFqZJ6.js (new) 88 kB 🔴 +88 kB 🔴 +19.9 kB 🔴 +17 kB
assets/WidgetSelect-D3D7z-Rc.js (removed) 88 kB 🟢 -88 kB 🟢 -19.9 kB 🟢 -17.1 kB
assets/Load3D-BlKSBG__.js (removed) 71.3 kB 🟢 -71.3 kB 🟢 -11.7 kB 🟢 -9.98 kB
assets/Load3D-BRGTXe-L.js (new) 71.3 kB 🔴 +71.3 kB 🔴 +11.7 kB 🔴 +9.97 kB
assets/WidgetVideoEdit-BUtwm4K_.js (removed) 63.4 kB 🟢 -63.4 kB 🟢 -14.6 kB 🟢 -12.8 kB
assets/WidgetVideoEdit-DFlrjVvn.js (new) 63.4 kB 🔴 +63.4 kB 🔴 +14.6 kB 🔴 +12.8 kB
assets/WorkspaceSettingsPanelContent-CClaf9un.js (new) 61.6 kB 🔴 +61.6 kB 🔴 +13.2 kB 🔴 +11.5 kB
assets/WorkspaceSettingsPanelContent-XwkhtlMT.js (removed) 61.6 kB 🟢 -61.6 kB 🟢 -13.2 kB 🟢 -11.5 kB
assets/SubscriptionTransitionPreviewWorkspace-BxbapejR.js (new) 61.3 kB 🔴 +61.3 kB 🔴 +12.5 kB 🔴 +10.9 kB
assets/SubscriptionTransitionPreviewWorkspace-DfgGTTyT.js (removed) 61.3 kB 🟢 -61.3 kB 🟢 -12.5 kB 🟢 -10.9 kB
assets/Preview3d-CPJSRWQ0.js (removed) 50.9 kB 🟢 -50.9 kB 🟢 -8.3 kB 🟢 -7.23 kB
assets/Preview3d-DgIbVnLR.js (new) 50.9 kB 🔴 +50.9 kB 🔴 +8.3 kB 🔴 +7.24 kB
assets/main-Dc3woRk2.js (new) 46.9 kB 🔴 +46.9 kB 🔴 +13.8 kB 🔴 +12 kB
assets/main-BEdL_imA.js (removed) 46.9 kB 🟢 -46.9 kB 🟢 -13.8 kB 🟢 -12 kB
assets/SubscriptionRequiredDialogContentUnified-BHvDO_j-.js (removed) 42.7 kB 🟢 -42.7 kB 🟢 -9.43 kB 🟢 -8.21 kB
assets/SubscriptionRequiredDialogContentUnified-CBfUpC4u.js (new) 42.7 kB 🔴 +42.7 kB 🔴 +9.42 kB 🔴 +8.2 kB
assets/MembersPanelContent-C5KUzUSp.js (new) 41.8 kB 🔴 +41.8 kB 🔴 +8.79 kB 🔴 +7.83 kB
assets/MembersPanelContent-IgbIxsVx.js (removed) 41.8 kB 🟢 -41.8 kB 🟢 -8.79 kB 🟢 -7.83 kB
assets/WidgetBoundingBoxes-Bz7J2RjH.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +9.16 kB 🔴 +8.13 kB
assets/WidgetBoundingBoxes-u3uVPr5q.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -9.16 kB 🟢 -8.13 kB
assets/WidgetPainter-CPcMKROY.js (new) 32.6 kB 🔴 +32.6 kB 🔴 +7.87 kB 🔴 +6.97 kB
assets/WidgetPainter-CPI9bHnC.js (removed) 32.6 kB 🟢 -32.6 kB 🟢 -7.87 kB 🟢 -6.97 kB
assets/Load3dViewerContent-CEn1AtjA.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +6.26 kB 🔴 +5.44 kB
assets/Load3dViewerContent-DyrsZGTX.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -6.26 kB 🟢 -5.43 kB
assets/SubscriptionPanelContentWorkspace-CBqFWKZY.js (new) 29.5 kB 🔴 +29.5 kB 🔴 +6.83 kB 🔴 +6 kB
assets/SubscriptionPanelContentWorkspace-Dh3EQuTA.js (removed) 29.5 kB 🟢 -29.5 kB 🟢 -6.83 kB 🟢 -6.01 kB
assets/SubscriptionRequiredDialogContent-C_ywIZ2U.js (removed) 26.1 kB 🟢 -26.1 kB 🟢 -6.14 kB 🟢 -5.39 kB
assets/SubscriptionRequiredDialogContent-Xo3QMWVn.js (new) 26.1 kB 🔴 +26.1 kB 🔴 +6.14 kB 🔴 +5.41 kB
assets/SubscriptionRequiredDialogContentWorkspace-C1bEWNQ7.js (new) 25.1 kB 🔴 +25.1 kB 🔴 +5.8 kB 🔴 +5.11 kB
assets/SubscriptionRequiredDialogContentWorkspace-DfOn0Qh9.js (removed) 25.1 kB 🟢 -25.1 kB 🟢 -5.8 kB 🟢 -5.1 kB
assets/initHostTelemetry-C-DpI_gD.js (new) 23.9 kB 🔴 +23.9 kB 🔴 +5.68 kB 🔴 +4.73 kB
assets/initHostTelemetry-BjPavo6H.js (removed) 23.7 kB 🟢 -23.7 kB 🟢 -5.67 kB 🟢 -4.7 kB
assets/load3d-DNmx1_gm.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.4 kB 🔴 +4.67 kB
assets/load3d-EjUBwpQS.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.4 kB 🟢 -4.67 kB
assets/CurrentUserPopoverWorkspace-BKl0mUkd.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.69 kB 🟢 -4.18 kB
assets/CurrentUserPopoverWorkspace-DZs1Yngp.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.69 kB 🔴 +4.18 kB
assets/SignInContent-BJDl9Rzf.js (new) 20.2 kB 🔴 +20.2 kB 🔴 +5.1 kB 🔴 +4.45 kB
assets/SignInContent-CwOfmobr.js (removed) 20.2 kB 🟢 -20.2 kB 🟢 -5.1 kB 🟢 -4.46 kB
assets/CreditsTile-BcXaMCLi.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -4.55 kB 🟢 -4.02 kB
assets/CreditsTile-DtYTUuC4.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +4.55 kB 🔴 +4.01 kB
assets/WidgetRecordAudio-6-5J0d8W.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.59 kB 🔴 +4.09 kB
assets/WidgetRecordAudio-BcA4lpFx.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.59 kB 🟢 -4.1 kB
assets/WidgetInputNumber-Bk2-umr_.js (new) 13.9 kB 🔴 +13.9 kB 🔴 +3.63 kB 🔴 +3.21 kB
assets/WidgetInputNumber-BKE5PPMv.js (removed) 13.9 kB 🟢 -13.9 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/WidgetRange-B-BJA-6I.js (removed) 13.7 kB 🟢 -13.7 kB 🟢 -3.53 kB 🟢 -3.11 kB
assets/WidgetRange-CjHZQlB3.js (new) 13.7 kB 🔴 +13.7 kB 🔴 +3.54 kB 🔴 +3.11 kB
assets/WaveAudioPlayer-b3EYeYF_.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.46 kB 🟢 -3.04 kB
assets/WaveAudioPlayer-C5a6pOxI.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.46 kB 🔴 +3.03 kB
assets/WidgetCurve-3pvvTpbh.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.47 kB 🟢 -3.15 kB
assets/WidgetCurve-B5nYpiAY.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.47 kB 🔴 +3.15 kB
assets/TeamWorkspacesDialogContent-B7bnUMXG.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -2.96 kB 🟢 -2.63 kB
assets/TeamWorkspacesDialogContent-BTeb5r2S.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +2.97 kB 🔴 +2.63 kB
assets/onboardingCloudRoutes-DAtHnwkm.js (new) 9.07 kB 🔴 +9.07 kB 🔴 +2.77 kB 🔴 +2.42 kB
assets/onboardingCloudRoutes-CpuQdUxo.js (removed) 9.07 kB 🟢 -9.07 kB 🟢 -2.78 kB 🟢 -2.41 kB
assets/Load3DConfiguration-BgSBjbVs.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.61 kB 🔴 +2.3 kB
assets/Load3DConfiguration-DRtmd6vo.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.61 kB 🟢 -2.3 kB
assets/WidgetImageCrop-Co8_swid.js (new) 8.49 kB 🔴 +8.49 kB 🔴 +2.65 kB 🔴 +2.34 kB
assets/WidgetImageCrop-CPSqydv9.js (removed) 8.49 kB 🟢 -8.49 kB 🟢 -2.65 kB 🟢 -2.34 kB
assets/SetMemberCreditLimitDialogContent-BjeedwKR.js (new) 8.47 kB 🔴 +8.47 kB 🔴 +2.34 kB 🔴 +2.05 kB
assets/SetMemberCreditLimitDialogContent-DBVYlPYy.js (removed) 8.47 kB 🟢 -8.47 kB 🟢 -2.34 kB 🟢 -2.04 kB
assets/nodeTemplates-BLmIgdkq.js (removed) 8.28 kB 🟢 -8.28 kB 🟢 -2.84 kB 🟢 -2.51 kB
assets/nodeTemplates-g7BjuRzl.js (new) 8.28 kB 🔴 +8.28 kB 🔴 +2.84 kB 🔴 +2.51 kB
assets/NightlySurveyController-CChQ27Fj.js (removed) 7.5 kB 🟢 -7.5 kB 🟢 -2.56 kB 🟢 -2.24 kB
assets/NightlySurveyController-DsxwHKRY.js (new) 7.5 kB 🔴 +7.5 kB 🔴 +2.56 kB 🔴 +2.24 kB
assets/types-2O8b9lID.js (new) 7.09 kB 🔴 +7.09 kB 🔴 +2.44 kB 🔴 +1.98 kB
assets/types-DQDrDd50.js (removed) 6.95 kB 🟢 -6.95 kB 🟢 -2.4 kB 🟢 -1.94 kB
assets/WidgetWithControl-C1aPN_Vz.js (new) 6.35 kB 🔴 +6.35 kB 🔴 +2.58 kB 🔴 +2.31 kB
assets/WidgetWithControl-C26fXgz_.js (removed) 6.35 kB 🟢 -6.35 kB 🟢 -2.58 kB 🟢 -2.3 kB
assets/tierBenefits-B1_i-XNq.js (removed) 6.2 kB 🟢 -6.2 kB 🟢 -1.96 kB 🟢 -1.71 kB
assets/tierBenefits-D8zeSAwT.js (new) 6.2 kB 🔴 +6.2 kB 🔴 +1.96 kB 🔴 +1.71 kB
assets/CancelSubscriptionDialogContent-Bjg5hfv4.js (removed) 5.97 kB 🟢 -5.97 kB 🟢 -1.98 kB 🟢 -1.74 kB
assets/CancelSubscriptionDialogContent-Dl0SbnRK.js (new) 5.97 kB 🔴 +5.97 kB 🔴 +1.98 kB 🔴 +1.74 kB
assets/load3dPreviewExtensions-Auqdp0MH.js (new) 5.88 kB 🔴 +5.88 kB 🔴 +1.81 kB 🔴 +1.6 kB
assets/load3dPreviewExtensions-DYWtLCiC.js (removed) 5.88 kB 🟢 -5.88 kB 🟢 -1.81 kB 🟢 -1.6 kB
assets/missingModelDownload-a5pIGYIw.js (new) 5.88 kB 🔴 +5.88 kB 🔴 +2.07 kB 🔴 +1.81 kB
assets/missingModelDownload-N4JmLknS.js (removed) 5.88 kB 🟢 -5.88 kB 🟢 -2.07 kB 🟢 -1.81 kB
assets/launchCancellationFlow-BhBl84YK.js (removed) 5.18 kB 🟢 -5.18 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/launchCancellationFlow-D03Vj6s4.js (new) 5.18 kB 🔴 +5.18 kB 🔴 +1.78 kB 🔴 +1.56 kB
assets/CreateWorkspaceDialogContent-DEzekvt9.js (removed) 5.12 kB 🟢 -5.12 kB 🟢 -1.79 kB 🟢 -1.55 kB
assets/CreateWorkspaceDialogContent-DIeVIpif.js (new) 5.12 kB 🔴 +5.12 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/ChangeMemberRoleDialogContent-BwDlFLWk.js (removed) 4.97 kB 🟢 -4.97 kB 🟢 -1.63 kB 🟢 -1.43 kB
assets/ChangeMemberRoleDialogContent-xrHcbj3z.js (new) 4.97 kB 🔴 +4.97 kB 🔴 +1.63 kB 🔴 +1.43 kB
assets/EditWorkspaceDialogContent-D7R_LZLx.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.76 kB 🔴 +1.53 kB
assets/EditWorkspaceDialogContent-V-tnSrDu.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.76 kB 🟢 -1.53 kB
assets/WidgetTextarea-CcsDIIIL.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.87 kB 🟢 -1.63 kB
assets/WidgetTextarea-DaHAHbbR.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.87 kB 🔴 +1.63 kB
assets/saveMesh-BXdLE9Ub.js (removed) 4.76 kB 🟢 -4.76 kB 🟢 -1.52 kB 🟢 -1.34 kB
assets/saveMesh-Ce4bijWB.js (new) 4.76 kB 🔴 +4.76 kB 🔴 +1.52 kB 🔴 +1.35 kB
assets/WorkspacePanelContent-BY7ucDvj.js (new) 4.72 kB 🔴 +4.72 kB 🔴 +1.6 kB 🔴 +1.4 kB
assets/WorkspacePanelContent-CKy8zIXH.js (removed) 4.72 kB 🟢 -4.72 kB 🟢 -1.6 kB 🟢 -1.4 kB
assets/InviteMemberDialogContent-CC89r88c.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.58 kB 🟢 -1.38 kB
assets/InviteMemberDialogContent-gy3FOMI9.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.58 kB 🔴 +1.38 kB
assets/ValueControlPopover-dDZpE51p.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.55 kB 🟢 -1.38 kB
assets/ValueControlPopover-GFyCQH7c.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/DeleteWorkspaceDialogContent-BoD5Ey2_.js (new) 3.84 kB 🔴 +3.84 kB 🔴 +1.44 kB 🔴 +1.24 kB
assets/DeleteWorkspaceDialogContent-uwVaEXuD.js (removed) 3.84 kB 🟢 -3.84 kB 🟢 -1.44 kB 🟢 -1.23 kB
assets/LeaveWorkspaceDialogContent-DaIqGEIp.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.38 kB 🔴 +1.19 kB
assets/LeaveWorkspaceDialogContent-Dt-_XGuK.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.38 kB 🟢 -1.19 kB
assets/RemoveMemberDialogContent-BMN4UBFa.js (new) 3.65 kB 🔴 +3.65 kB 🔴 +1.33 kB 🔴 +1.15 kB
assets/RemoveMemberDialogContent-StVtcOWm.js (removed) 3.65 kB 🟢 -3.65 kB 🟢 -1.34 kB 🟢 -1.15 kB
assets/RevokeInviteDialogContent-DYF_DO8K.js (removed) 3.56 kB 🟢 -3.56 kB 🟢 -1.35 kB 🟢 -1.17 kB
assets/RevokeInviteDialogContent-HjESufTG.js (new) 3.56 kB 🔴 +3.56 kB 🔴 +1.35 kB 🔴 +1.17 kB
assets/InviteMemberUpsellDialogContent-BRXPLst2.js (new) 3.44 kB 🔴 +3.44 kB 🔴 +1.23 kB 🔴 +1.08 kB
assets/InviteMemberUpsellDialogContent-Bxm2utde.js (removed) 3.44 kB 🟢 -3.44 kB 🟢 -1.23 kB 🟢 -1.08 kB
assets/workspaceCheckoutTelemetry-DZJfkxkr.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.52 kB 🟢 -1.33 kB
assets/workspaceCheckoutTelemetry-wicF2-fh.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.52 kB 🔴 +1.33 kB
assets/Media3DTop-DBUDBWEG.js (new) 3.21 kB 🔴 +3.21 kB 🔴 +1.26 kB 🔴 +1.1 kB
assets/Media3DTop-FttgDKx3.js (removed) 3.21 kB 🟢 -3.21 kB 🟢 -1.26 kB 🟢 -1.1 kB
assets/GlobalToast-CWRDlvpX.js (removed) 3 kB 🟢 -3 kB 🟢 -1.22 kB 🟢 -1.04 kB
assets/GlobalToast-DzOE7UN-.js (new) 3 kB 🔴 +3 kB 🔴 +1.22 kB 🔴 +1.08 kB
assets/load3dAdvanced-B1jdwX_b.js (removed) 2.82 kB 🟢 -2.82 kB 🟢 -1.09 kB 🟢 -955 B
assets/load3dAdvanced-BFY1lQnH.js (new) 2.82 kB 🔴 +2.82 kB 🔴 +1.09 kB 🔴 +955 B
assets/SubscribeToRun-D12F59I3.js (new) 2.39 kB 🔴 +2.39 kB 🔴 +1.03 kB 🔴 +898 B
assets/SubscribeToRun-DFPIncHH.js (removed) 2.39 kB 🟢 -2.39 kB 🟢 -1.03 kB 🟢 -900 B
assets/MediaAudioTop-D2vWkM56.js (removed) 1.62 kB 🟢 -1.62 kB 🟢 -806 B 🟢 -664 B
assets/MediaAudioTop-DoQTJX4-.js (new) 1.62 kB 🔴 +1.62 kB 🔴 +806 B 🔴 +665 B
assets/CloudRunButtonWrapper-CLv0FRk0.js (removed) 1.05 kB 🟢 -1.05 kB 🟢 -511 B 🟢 -451 B
assets/CloudRunButtonWrapper-D3Lf29WH.js (new) 1.05 kB 🔴 +1.05 kB 🔴 +517 B 🔴 +454 B
assets/cloudSessionCookie-Au4tNHGW.js (removed) 933 B 🟢 -933 B 🟢 -432 B 🟢 -378 B
assets/cloudSessionCookie-D1bRUK6V.js (new) 933 B 🔴 +933 B 🔴 +434 B 🔴 +379 B
assets/cloudBadges-B8lBGQxe.js (new) 922 B 🔴 +922 B 🔴 +513 B 🔴 +435 B
assets/cloudBadges-CJgRxlZt.js (removed) 922 B 🟢 -922 B 🟢 -512 B 🟢 -433 B
assets/Load3DAdvanced-BMnHQvVC.js (new) 761 B 🔴 +761 B 🔴 +423 B 🔴 +360 B
assets/Load3DAdvanced-Cqm5z7AT.js (removed) 761 B 🟢 -761 B 🟢 -422 B 🟢 -360 B
assets/nightlyBadges-BD_KhXYS.js (removed) 411 B 🟢 -411 B 🟢 -270 B 🟢 -229 B
assets/nightlyBadges-ebhLZYh8.js (new) 411 B 🔴 +411 B 🔴 +270 B 🔴 +232 B
assets/missingModelDownload-DB854sG2.js (new) 371 B 🔴 +371 B 🔴 +204 B 🔴 +174 B
assets/missingModelDownload-RlTY8UEe.js (removed) 371 B 🟢 -371 B 🟢 -205 B 🟢 -175 B
assets/SubscriptionPanelContentWorkspace-BCabSiBU.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +93 B
assets/SubscriptionPanelContentWorkspace-BEF-7bHv.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -90 B
assets/Load3dViewerContent-aRm1kPqT.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -92 B
assets/Load3dViewerContent-D2N683b3.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +91 B
assets/Load3DAdvanced-BCpIZfPK.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +91 B
assets/Load3DAdvanced-CQSn5KBp.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -90 B
assets/WidgetLegacy-CgtKAlJW.js (new) 117 B 🔴 +117 B 🔴 +106 B 🔴 +99 B
assets/WidgetLegacy-msFLv0Bd.js (removed) 117 B 🟢 -117 B 🟢 -106 B 🟢 -99 B
assets/workflowDraftStoreV2-BLW9lIIB.js (new) 112 B 🔴 +112 B 🔴 +101 B 🔴 +110 B
assets/workflowDraftStoreV2-BSpWqZDF.js (removed) 112 B 🟢 -112 B 🟢 -101 B 🟢 -112 B
assets/Load3D-B6Ndnv5f.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -92 B
assets/Load3D-Bo-RnsK3.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +87 B
assets/changeTracker-CermpI4P.js (new) 91 B 🔴 +91 B 🔴 +93 B 🔴 +84 B
assets/changeTracker-D4VcYCep.js (removed) 91 B 🟢 -91 B 🟢 -93 B 🟢 -85 B

Status: 72 added / 72 removed / 208 unchanged

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 43.8 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 50.1 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 72.3 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.3 MB heap
large-graph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 63.7 MB heap
large-graph-pan: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 62.9 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.1 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 65.4 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.4 MB heap
subgraph-idle: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.7 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.0 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 112ms TBT · 87.6 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 66.6 MB heap
vue-large-graph-idle: · 56.3 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 159.5 MB heap
vue-large-graph-pan: · 56.3 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 343ms TBT · 158.1 MB heap
workflow-execution: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 57.6 MB heap

⚠️ 6 regressions detected

Show regressions
Metric Baseline PR (median) Δ Sig
canvas-idle: task duration 572ms 553ms -3% ⚠️ z=5.1
canvas-zoom-sweep: task duration 462ms 387ms -16% ⚠️ z=2.6
large-graph-idle: task duration 840ms 696ms -17% ⚠️ z=2.8
large-graph-pan: task duration 1418ms 1245ms -12% ⚠️ z=3.8
minimap-idle: task duration 838ms 707ms -16% ⚠️ z=3.8
subgraph-idle: task duration 543ms 489ms -10% ⚠️ z=3.8
All metrics
Metric Baseline PR (median) Δ Sig
canvas-idle: avg frame time 17ms 17ms -0% z=-0.5
canvas-idle: p95 frame time 17ms 17ms -0%
canvas-idle: layout duration 0ms 0ms +0%
canvas-idle: style recalc duration 8ms 9ms +6% z=-2.5
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 8 10 +25% z=-2.1
canvas-idle: task duration 572ms 553ms -3% ⚠️ z=5.1
canvas-idle: script duration 24ms 22ms -9% z=-1.4
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 69.4 MB 43.8 MB -37%
canvas-idle: DOM nodes 16 -279 -1844% z=-236.5
canvas-idle: event listeners 4 -148 -3800% z=-33.7
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 -11% z=1.0
canvas-mouse-sweep: style recalc duration 48ms 43ms -11% z=0.0
canvas-mouse-sweep: layout count 12 12 +0%
canvas-mouse-sweep: style recalc count 76 77 +1% z=-0.7
canvas-mouse-sweep: task duration 986ms 971ms -1% z=1.8
canvas-mouse-sweep: script duration 131ms 126ms -4% z=-1.5
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 50.1 MB 50.1 MB -0%
canvas-mouse-sweep: DOM nodes -281 -281 -0% z=-132.5
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 -18% z=0.2
canvas-zoom-sweep: style recalc duration 21ms 17ms -18% z=-1.4
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 32 32 -2% z=0.5
canvas-zoom-sweep: task duration 462ms 387ms -16% ⚠️ z=2.6
canvas-zoom-sweep: script duration 27ms 20ms -25% z=-2.2
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 72.4 MB 72.3 MB -0%
canvas-zoom-sweep: DOM nodes 77 78 +1% z=-2.2
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 12ms 8ms -32% z=-1.9
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 443ms 395ms -11% z=1.9
dom-widget-clipping: script duration 65ms 59ms -9% z=-2.7
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 53.3 MB 53.3 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.2
large-graph-idle: p95 frame time 17ms 17ms +0%
large-graph-idle: layout duration 0ms 0ms +0%
large-graph-idle: style recalc duration 7ms 8ms +11% z=-4.2
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 7 9 +29% z=-8.3
large-graph-idle: task duration 840ms 696ms -17% ⚠️ z=2.8
large-graph-idle: script duration 130ms 101ms -22% z=-0.1
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 64.1 MB 63.7 MB -1%
large-graph-idle: DOM nodes -283 -280 -1% z=-336.6
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 15ms 15ms -5% z=-3.3
large-graph-pan: layout count 0 0 +0%
large-graph-pan: style recalc count 68 69 +1% z=-0.9
large-graph-pan: task duration 1418ms 1245ms -12% ⚠️ z=3.8
large-graph-pan: script duration 452ms 406ms -10% z=-0.1
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 62.2 MB 62.9 MB +1%
large-graph-pan: DOM nodes -286 -282 -2% z=-182.1
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 9ms 8ms -9%
large-graph-zoom: style recalc duration 17ms 15ms -15%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 64 65 +1%
large-graph-zoom: task duration 1686ms 1510ms -10%
large-graph-zoom: script duration 576ms 524ms -9%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 62.1 MB 56.1 MB -10%
large-graph-zoom: DOM nodes -288 -287 -1%
large-graph-zoom: event listeners -148 -148 +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 6ms 7ms +14% z=-2.8
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 7 9 +29% z=-0.8
minimap-idle: task duration 838ms 707ms -16% ⚠️ z=3.8
minimap-idle: script duration 135ms 106ms -22% z=0.7
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 66.0 MB 65.4 MB -1%
minimap-idle: DOM nodes -284 -281 -1% z=-219.1
minimap-idle: event listeners -144 -144 +0% z=-225.0
subgraph-dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
subgraph-dom-widget-clipping: p95 frame time 17ms 17ms -1%
subgraph-dom-widget-clipping: layout duration 0ms 0ms +0%
subgraph-dom-widget-clipping: style recalc duration 12ms 13ms +12% z=0.6
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 436ms 407ms -7% z=1.6
subgraph-dom-widget-clipping: script duration 127ms 120ms -6% z=-1.3
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 53.5 MB 53.4 MB -0%
subgraph-dom-widget-clipping: DOM nodes 20 20 +0% z=-1.9
subgraph-dom-widget-clipping: event listeners 8 6 -25% 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 9ms 8ms -13% z=-3.7
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 9 9 +0% z=-2.9
subgraph-idle: task duration 543ms 489ms -10% ⚠️ z=3.8
subgraph-idle: script duration 21ms 15ms -30% z=-2.1
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 69.0 MB 56.7 MB -18%
subgraph-idle: DOM nodes 18 -132 -831% z=-102.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 -15% z=-0.8
subgraph-mouse-sweep: style recalc duration 42ms 36ms -14% z=-1.9
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 75 75 +0% z=-2.7
subgraph-mouse-sweep: task duration 910ms 788ms -13% z=0.3
subgraph-mouse-sweep: script duration 105ms 91ms -13% z=-1.5
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 60.2 MB 53.0 MB -12%
subgraph-mouse-sweep: DOM nodes 61 -108 -277% z=-78.3
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 -1%
subgraph-transition-enter: layout duration 13ms 12ms -7%
subgraph-transition-enter: style recalc duration 33ms 29ms -10%
subgraph-transition-enter: layout count 15 15 +0%
subgraph-transition-enter: style recalc count 19 19 +0%
subgraph-transition-enter: task duration 1064ms 1005ms -6%
subgraph-transition-enter: script duration 50ms 35ms -30%
subgraph-transition-enter: TBT 142ms 112ms -21%
subgraph-transition-enter: heap used 95.3 MB 87.6 MB -8%
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 45ms 41ms -9%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 249 250 +0%
viewport-pan-sweep: task duration 4843ms 4390ms -9%
viewport-pan-sweep: script duration 1426ms 1313ms -8%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 66.5 MB 66.6 MB +0%
viewport-pan-sweep: DOM nodes -282 -281 -0%
viewport-pan-sweep: event listeners -126 -128 +2%
vue-large-graph-idle: avg frame time 18ms 18ms -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 18729ms 17720ms -5%
vue-large-graph-idle: script duration 560ms 553ms -1%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 159.9 MB 159.5 MB -0%
vue-large-graph-idle: DOM nodes -8312 -8313 +0%
vue-large-graph-idle: event listeners -16387 -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 29ms 20ms -31%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 176 148 -16%
vue-large-graph-pan: task duration 23818ms 21288ms -11%
vue-large-graph-pan: script duration 967ms 864ms -11%
vue-large-graph-pan: TBT 1022ms 343ms -66%
vue-large-graph-pan: heap used 148.6 MB 158.1 MB +6%
vue-large-graph-pan: DOM nodes -8312 -8312 +0%
vue-large-graph-pan: event listeners -16383 -16384 +0%
workflow-execution: avg frame time 17ms 17ms +0% z=1.6
workflow-execution: p95 frame time 17ms 17ms -1%
workflow-execution: layout duration 1ms 0ms -35% z=-7.5
workflow-execution: style recalc duration 21ms 15ms -27% z=-4.1
workflow-execution: layout count 3 2 -33% z=-5.4
workflow-execution: style recalc count 13 10 -23% z=-3.8
workflow-execution: task duration 123ms 91ms -26% z=-2.9
workflow-execution: script duration 12ms 8ms -28% z=-7.0
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 48.7 MB 57.6 MB +18%
workflow-execution: DOM nodes 119 117 -2% z=-6.2
workflow-execution: event listeners 65 50 -23% z=-0.4
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-31T20:11:40.948Z",
  "gitSha": "170874faa4b9524de05401bd64ed57bb06cc8c07",
  "branch": "feat/unified-auth-retry-telemetry",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2176.5430000000097,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 8.681000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 587.121,
      "heapDeltaBytes": -22127832,
      "heapUsedBytes": 45652220,
      "domNodes": -277,
      "jsHeapTotalBytes": 19914752,
      "scriptDurationMs": 26.524999999999995,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2057.042000000024,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 8.592999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 519.714,
      "heapDeltaBytes": -21693100,
      "heapUsedBytes": 46136064,
      "domNodes": -281,
      "jsHeapTotalBytes": 19914752,
      "scriptDurationMs": 17.877000000000002,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2009.824000000009,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 45.574,
      "layouts": 12,
      "layoutDurationMs": 3.8770000000000002,
      "taskDurationMs": 1034.993,
      "heapDeltaBytes": -15457320,
      "heapUsedBytes": 52494332,
      "domNodes": -281,
      "jsHeapTotalBytes": 20701184,
      "scriptDurationMs": 135.193,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1889.7269999999935,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 39.75,
      "layouts": 12,
      "layoutDurationMs": 3.7220000000000004,
      "taskDurationMs": 907.894,
      "heapDeltaBytes": -15685076,
      "heapUsedBytes": 52478856,
      "domNodes": -280,
      "jsHeapTotalBytes": 19390464,
      "scriptDurationMs": 116.94699999999999,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1738.36799999998,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 16.662,
      "layouts": 6,
      "layoutDurationMs": 0.642,
      "taskDurationMs": 389.444,
      "heapDeltaBytes": 8024124,
      "heapUsedBytes": 75761820,
      "domNodes": 78,
      "jsHeapTotalBytes": 19787776,
      "scriptDurationMs": 20.797000000000004,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1770.1479999999492,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 17.22,
      "layouts": 6,
      "layoutDurationMs": 0.662,
      "taskDurationMs": 384.292,
      "heapDeltaBytes": 7848756,
      "heapUsedBytes": 75910540,
      "domNodes": 77,
      "jsHeapTotalBytes": 20312064,
      "scriptDurationMs": 20.19,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 664.1529999999989,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.312,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 405.65399999999994,
      "heapDeltaBytes": -12101684,
      "heapUsedBytes": 55960204,
      "domNodes": 18,
      "jsHeapTotalBytes": 21884928,
      "scriptDurationMs": 61.215,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 592.2969999999737,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 8.367,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 384.723,
      "heapDeltaBytes": -12067380,
      "heapUsedBytes": 55862372,
      "domNodes": 20,
      "jsHeapTotalBytes": 21884928,
      "scriptDurationMs": 57.151999999999994,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2033.0609999999751,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.788999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 704.634,
      "heapDeltaBytes": 8226424,
      "heapUsedBytes": 66831756,
      "domNodes": -279,
      "jsHeapTotalBytes": 4517888,
      "scriptDurationMs": 102.96799999999999,
      "eventListeners": -142,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2036.877000000004,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.822000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 687.193,
      "heapDeltaBytes": 8152156,
      "heapUsedBytes": 66706560,
      "domNodes": -280,
      "jsHeapTotalBytes": 5042176,
      "scriptDurationMs": 99.92300000000002,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2176.259000000016,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 14.814999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1247.6490000000001,
      "heapDeltaBytes": 6140524,
      "heapUsedBytes": 65776764,
      "domNodes": -281,
      "jsHeapTotalBytes": 5005312,
      "scriptDurationMs": 404.10599999999994,
      "eventListeners": -142,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2147.3759999998947,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 14.535,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1241.611,
      "heapDeltaBytes": 6424108,
      "heapUsedBytes": 66181816,
      "domNodes": -282,
      "jsHeapTotalBytes": 5267456,
      "scriptDurationMs": 407.305,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3149.168999999972,
      "styleRecalcs": 64,
      "styleRecalcDurationMs": 13.885000000000002,
      "layouts": 60,
      "layoutDurationMs": 8.096,
      "taskDurationMs": 1506.7719999999997,
      "heapDeltaBytes": -4871824,
      "heapUsedBytes": 56747148,
      "domNodes": -287,
      "jsHeapTotalBytes": 7401472,
      "scriptDurationMs": 519.269,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3229.947999999922,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 15.6,
      "layouts": 60,
      "layoutDurationMs": 8.067000000000002,
      "taskDurationMs": 1514.0529999999999,
      "heapDeltaBytes": -466184,
      "heapUsedBytes": 60992452,
      "domNodes": -286,
      "jsHeapTotalBytes": 8450048,
      "scriptDurationMs": 528.5060000000001,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2037.0570000000043,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.478999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 718.558,
      "heapDeltaBytes": 8175652,
      "heapUsedBytes": 68556328,
      "domNodes": -280,
      "jsHeapTotalBytes": 4780032,
      "scriptDurationMs": 111.24599999999998,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2037.0390000000498,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.020999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 695.173,
      "heapDeltaBytes": 7955308,
      "heapUsedBytes": 68580732,
      "domNodes": -281,
      "jsHeapTotalBytes": 4517888,
      "scriptDurationMs": 99.893,
      "eventListeners": -144,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 617.8580000000125,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 16.613999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 411.27900000000005,
      "heapDeltaBytes": -12135760,
      "heapUsedBytes": 55768288,
      "domNodes": 20,
      "jsHeapTotalBytes": 22671360,
      "scriptDurationMs": 118.663,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 595.4590000000053,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 10.013,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 403.426,
      "heapDeltaBytes": -11690600,
      "heapUsedBytes": 56301128,
      "domNodes": 20,
      "jsHeapTotalBytes": 21884928,
      "scriptDurationMs": 120.883,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1997.4530000000073,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.482000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 464.66700000000003,
      "heapDeltaBytes": 4646440,
      "heapUsedBytes": 72668372,
      "domNodes": 18,
      "jsHeapTotalBytes": 20312064,
      "scriptDurationMs": 14.513,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2024.454999999989,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.605,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 512.872,
      "heapDeltaBytes": -21703844,
      "heapUsedBytes": 46317332,
      "domNodes": -281,
      "jsHeapTotalBytes": 20439040,
      "scriptDurationMs": 14.593,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1709.7800000000234,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 37.426,
      "layouts": 16,
      "layoutDurationMs": 4.760000000000001,
      "taskDurationMs": 830.918,
      "heapDeltaBytes": -19908844,
      "heapUsedBytes": 47952008,
      "domNodes": -278,
      "jsHeapTotalBytes": 20963328,
      "scriptDurationMs": 93.056,
      "eventListeners": -148,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1696.7390000000933,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 34.89,
      "layouts": 16,
      "layoutDurationMs": 4.153,
      "taskDurationMs": 744.663,
      "heapDeltaBytes": -4825120,
      "heapUsedBytes": 63110964,
      "domNodes": 62,
      "jsHeapTotalBytes": 21098496,
      "scriptDurationMs": 88.866,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 1386.2909999999715,
      "styleRecalcs": 19,
      "styleRecalcDurationMs": 29.487,
      "layouts": 15,
      "layoutDurationMs": 11.630999999999998,
      "taskDurationMs": 1004.836,
      "heapDeltaBytes": 3222172,
      "heapUsedBytes": 91901700,
      "domNodes": 13673,
      "jsHeapTotalBytes": 14680064,
      "scriptDurationMs": 35.11500000000001,
      "eventListeners": 2371,
      "totalBlockingTimeMs": 112,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8234.983999999997,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 40.378,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4380.109,
      "heapDeltaBytes": 10746692,
      "heapUsedBytes": 69871996,
      "domNodes": -281,
      "jsHeapTotalBytes": 7626752,
      "scriptDurationMs": 1301.848,
      "eventListeners": -128,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8247.434999999996,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 41.003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4400.438999999999,
      "heapDeltaBytes": 11317876,
      "heapUsedBytes": 69872268,
      "domNodes": -281,
      "jsHeapTotalBytes": 7069696,
      "scriptDurationMs": 1325.046,
      "eventListeners": -128,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17712.769000000037,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17697.257,
      "heapDeltaBytes": -40481264,
      "heapUsedBytes": 167363972,
      "domNodes": -8312,
      "jsHeapTotalBytes": -12525568,
      "scriptDurationMs": 532.369,
      "eventListeners": -16385,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17761.814999999955,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17742.238,
      "heapDeltaBytes": -42014076,
      "heapUsedBytes": 167198440,
      "domNodes": -8313,
      "jsHeapTotalBytes": -14360576,
      "scriptDurationMs": 574.572,
      "eventListeners": -16387,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21137.976999999977,
      "styleRecalcs": 144,
      "styleRecalcDurationMs": 19.173999999999968,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 21113.190000000002,
      "heapDeltaBytes": -44287156,
      "heapUsedBytes": 177549724,
      "domNodes": -8312,
      "jsHeapTotalBytes": -8921088,
      "scriptDurationMs": 835.894,
      "eventListeners": -16383,
      "totalBlockingTimeMs": 231,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21510.107999999946,
      "styleRecalcs": 152,
      "styleRecalcDurationMs": 20.778999999999993,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 21463.064,
      "heapDeltaBytes": -66671896,
      "heapUsedBytes": 153947616,
      "domNodes": -8312,
      "jsHeapTotalBytes": -9637888,
      "scriptDurationMs": 892.6700000000001,
      "eventListeners": -16385,
      "totalBlockingTimeMs": 454,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 456.84800000003634,
      "styleRecalcs": 13,
      "styleRecalcDurationMs": 17.786,
      "layouts": 2,
      "layoutDurationMs": 0.35199999999999987,
      "taskDurationMs": 112.26,
      "heapDeltaBytes": -15934972,
      "heapUsedBytes": 51036040,
      "domNodes": 130,
      "jsHeapTotalBytes": 7991296,
      "scriptDurationMs": 10.809999999999999,
      "eventListeners": 67,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "workflow-execution",
      "durationMs": 99.32199999991553,
      "styleRecalcs": 7,
      "styleRecalcDurationMs": 12.778,
      "layouts": 2,
      "layoutDurationMs": 0.559,
      "taskDurationMs": 69.798,
      "heapDeltaBytes": 2991096,
      "heapUsedBytes": 69818180,
      "domNodes": 104,
      "jsHeapTotalBytes": 3145728,
      "scriptDurationMs": 6.166000000000001,
      "eventListeners": 33,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.700000000000728
    }
  ]
}

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The change adds structured telemetry for unified authentication retry outcomes. Fetch and Axios paths report success, rejected retries, remint failures, missing bearers, non-replayable bodies, and request errors through the telemetry registry and Datadog RUM provider.

Changes

Unified auth retry telemetry

Layer / File(s) Summary
Telemetry contract and dispatch
src/platform/telemetry/types.ts, src/platform/telemetry/TelemetryRegistry.ts, src/platform/telemetry/TelemetryRegistry.test.ts
Defines retry metadata, failure reasons, event constants, and optional provider support. The registry dispatches metadata to compatible providers.
Fetch and Axios retry instrumentation
src/platform/auth/unified/remintRetry.ts, src/platform/auth/unified/remintRetry.test.ts
Reports retry outcomes and failure reasons for fetch and Axios flows. Tests cover successful, rejected, disabled, and failed retry paths.
Datadog retry events
src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.ts, src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts
Emits separate Datadog events for successful and failed unified-auth retries and validates the metadata payload.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant FetchRetryPath
  participant AxiosRetryPath
  participant TelemetryRegistry
  participant DatadogRumTelemetryProvider
  FetchRetryPath->>TelemetryRegistry: trackUnifiedAuthRetry(metadata)
  AxiosRetryPath->>TelemetryRegistry: trackUnifiedAuthRetry(metadata)
  TelemetryRegistry->>DatadogRumTelemetryProvider: dispatch retry metadata
  DatadogRumTelemetryProvider->>DatadogRumTelemetryProvider: emit success or failure event
Loading

Suggested reviewers: huang47


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 The PR context provides changed files and a description, but no PR title or commit subjects, so the required bug-fix signal cannot be verified. Provide the PR title and commit subjects so the bug-fix-language condition can be assessed.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary change: telemetry instrumentation for unified auth retry outcomes.
Description check ✅ Passed The description covers the required summary, changes, review focus, and screenshots sections with relevant implementation and verification details.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Adr Compliance For Entity/Litegraph Changes ✅ Passed The changed files are limited to unified-auth retry and telemetry paths; none are under litegraph, ECS, or graph-entity files.
✨ 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 feat/unified-auth-retry-telemetry

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.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/platform/auth/unified/remintRetry.test.ts`:
- Around line 10-20: Add behavioral tests in the remint retry test suite for
fetch and Axios request failures emitting retry_request_failed, plus Axios
missing_bearer and remint_failed terminal paths. Assert each event’s metadata,
verify request failures omit final_status, and confirm the original thrown error
is preserved; retain coverage across enabled success/failure, disabled-flag, and
edge/error behavior using the existing mockRemint, mockTrackUnifiedAuthRetry,
and flagState symbols.

In `@src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts`:
- Around line 27-44: Add a test alongside the existing terminal failure case in
the DatadogRumTelemetryProvider tests that calls trackUnifiedAuthRetry with
outcome: 'succeeded' and verifies addAction receives
TelemetryEvents.UNIFIED_AUTH_RETRY_SUCCEEDED with the retry payload. Preserve
the existing failure coverage and assert the successful mapping explicitly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3f3b192c-2166-4a3d-a033-ce7c6687a9a2

📥 Commits

Reviewing files that changed from the base of the PR and between 15a8601 and f3c1392.

📒 Files selected for processing (7)
  • src/platform/auth/unified/remintRetry.test.ts
  • src/platform/auth/unified/remintRetry.ts
  • src/platform/telemetry/TelemetryRegistry.test.ts
  • src/platform/telemetry/TelemetryRegistry.ts
  • src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.test.ts
  • src/platform/telemetry/providers/cloud/DatadogRumTelemetryProvider.ts
  • src/platform/telemetry/types.ts

Comment thread src/platform/auth/unified/remintRetry.test.ts
@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.21053% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/platform/auth/unified/remintRetry.ts 87.09% 4 Missing ⚠️
...try/providers/cloud/DatadogRumTelemetryProvider.ts 60.00% 1 Missing and 1 partial ⚠️
@@           Coverage Diff            @@
##             main   #14500    +/-   ##
========================================
  Coverage   79.35%   79.35%            
========================================
  Files        1767     1767            
  Lines      113935   113970    +35     
  Branches    36681    35830   -851     
========================================
+ Hits        90414    90443    +29     
- Misses      22982    22983     +1     
- Partials      539      544     +5     
Flag Coverage Δ
unit 70.22% <84.21%> (+<0.01%) ⬆️

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

Files with missing lines Coverage Δ
src/platform/telemetry/TelemetryRegistry.ts 25.98% <100.00%> (+1.18%) ⬆️
src/platform/telemetry/types.ts 100.00% <ø> (ø)
...try/providers/cloud/DatadogRumTelemetryProvider.ts 93.54% <60.00%> (-6.46%) ⬇️
src/platform/auth/unified/remintRetry.ts 90.62% <87.09%> (-2.03%) ⬇️

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

@dante01yoon dante01yoon added the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Jul 31, 2026
@dante01yoon

Copy link
Copy Markdown
Collaborator Author

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Comments resolved and changes approved.

@dante01yoon
dante01yoon added this pull request to the merge queue Jul 31, 2026
Merged via the queue into main with commit 63ffe2a Jul 31, 2026
107 checks passed
@dante01yoon
dante01yoon deleted the feat/unified-auth-retry-telemetry branch July 31, 2026 23:05
@github-actions

Copy link
Copy Markdown

⚠️ Backport to core/1.48 failed

Reason: Merge conflicts detected during cherry-pick of 63ffe2a

The auto-backport could not be completed automatically. Please backport
manually onto branch backport-14500-to-core-1.48 (from origin/core/1.48) and
open a PR to core/1.48.

📄 Conflicting files
src/platform/telemetry/TelemetryRegistry.ts
🤖 Prompt for AI Agents
Backport PR #14500 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/14500) to core/1.48.
Cherry-pick merge commit 63ffe2acc6716bb7eb941e23ea9208765fbfb884 onto new branch
backport-14500-to-core-1.48 from origin/core/1.48.
Resolve conflicts in: src/platform/telemetry/TelemetryRegistry.ts .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport core/1.48] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @dante01yoon

@github-actions

Copy link
Copy Markdown

⚠️ Backport to cloud/1.48 failed

Reason: Merge conflicts detected during cherry-pick of 63ffe2a

The auto-backport could not be completed automatically. Please backport
manually onto branch backport-14500-to-cloud-1.48 (from origin/cloud/1.48) and
open a PR to cloud/1.48.

📄 Conflicting files
src/platform/telemetry/TelemetryRegistry.ts
🤖 Prompt for AI Agents
Backport PR #14500 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/14500) to cloud/1.48.
Cherry-pick merge commit 63ffe2acc6716bb7eb941e23ea9208765fbfb884 onto new branch
backport-14500-to-cloud-1.48 from origin/cloud/1.48.
Resolve conflicts in: src/platform/telemetry/TelemetryRegistry.ts .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport cloud/1.48] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @dante01yoon

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

Labels

needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants