Skip to content

feat: surface 429 Retry-After as cooldown toast on invite resend - #15676

Open
christian-byrne wants to merge 2 commits into
mainfrom
fix/resend-invite-layering
Open

feat: surface 429 Retry-After as cooldown toast on invite resend#15676
christian-byrne wants to merge 2 commits into
mainfrom
fix/resend-invite-layering

Conversation

@christian-byrne

Copy link
Copy Markdown
Contributor

Summary

  • Adds retryAfter?: number field to WorkspaceApiError, parsed from the Retry-After response header on HTTP 429 responses (integer seconds only; HTTP-date form falls back to undefined)
  • handleResendInvite in useMembersPanel now shows a dismissible warn toast with a pluralised countdown ("You can resend in N second(s)") instead of the generic error toast when the server rate-limits
  • Toast lifetime is capped at 10 s regardless of server-reported delay

Context

The original resend-invite PR (#13137) shipped the API call and store wiring but the 429 cooldown UX was not included. This is a follow-up to complete that flow.

Test plan

  • Trigger a resend while rate-limited (mock 429 with Retry-After: 30 header) — verify warn toast with countdown appears
  • Trigger a resend while rate-limited with no Retry-After header — verify warn toast appears without detail line
  • Trigger a non-429 error — verify generic error toast still appears
  • Successful resend — verify success toast unchanged

🤖 Generated with Claude Code

WorkspaceApiError gains a retryAfter field parsed from the Retry-After
header (integer seconds only). handleResendInvite in useMembersPanel now
shows a dismissible warn toast with pluralised countdown instead of the
generic error toast when the server rate-limits.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@christian-byrne
christian-byrne requested a review from a team August 23, 2026 05:43
@dosubot dosubot Bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Aug 23, 2026
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7155a3ff-5045-4d29-ada4-ed27fbf323d3

📥 Commits

Reviewing files that changed from the base of the PR and between a7196d6 and 07008be.

📒 Files selected for processing (3)
  • src/locales/en/main.json
  • src/platform/workspace/api/workspaceApi.ts
  • src/platform/workspace/composables/useMembersPanel.ts

Included review availability: 9 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.


📝 Walkthrough

Walkthrough

The workspace API now parses Retry-After values for HTTP 429 responses. Invite resend handling displays a localized cooldown warning with a capped duration. Other errors retain the existing generic message.

Changes

Invite resend cooldown

Layer / File(s) Summary
Parse and propagate retry duration
src/platform/workspace/api/workspaceApi.ts
WorkspaceApiError now carries an optional retryAfter value. HTTP 429 handling parses positive Retry-After values and rounds them up to seconds.
Display invite cooldown warning
src/platform/workspace/composables/useMembersPanel.ts, src/locales/en/main.json
Invite resend handling shows a warning with singular or plural cooldown text and caps the toast duration at 10 seconds. Other errors retain the generic toast.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 07008

This change adds a clearer cooldown toast for rate-limited invite resends while preserving existing handling for other outcomes; no actionable merge-blocking risk remains beyond normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant MembersPanel
  participant WorkspaceApi
  participant WorkspaceApiError
  participant Toast
  MembersPanel->>WorkspaceApi: resend invite
  WorkspaceApi-->>WorkspaceApiError: HTTP 429 with retryAfter
  WorkspaceApiError-->>MembersPanel: throw rate-limit error
  MembersPanel->>Toast: show localized cooldown warning
Loading

Suggested reviewers: dante01yoon


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 changed files and PR description are available, but the PR title and commit subjects are not provided; the required bug-fix signal cannot be verified. Provide the PR title and commit subjects to determine whether the bug-fix condition applies.
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: showing a cooldown toast for invite resend rate limits.
Description check ✅ Passed The description explains the change, context, behavior, and test plan, although it does not use all template headings.
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.
Website End-To-End Regression Coverage ✅ Passed The changed files are under src/, not apps/website/src/ or apps/website/public/. The website-specific check does not apply.
Adr Compliance For Entity/Litegraph Changes ✅ Passed The changed files are localization and workspace API/composable files. None are under the litegraph, ECS, or graph-entity scopes.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/resend-invite-layering

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

@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 08/23/2026, 05:50:57 AM UTC

Links

🎭 Playwright: ✅ 1980 passed, 0 failed · 2 flaky

📊 Browser Reports
  • chromium: View Report (✅ 1959 / ❌ 0 / ⚠️ 2 / ⏭️ 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: 9.11 MB gzip 🔴 +295 B

Details

Summary

  • Raw size: 38.6 MB baseline 38.6 MB — 🔴 +1.02 kB
  • Gzip: 9.11 MB baseline 9.11 MB — 🔴 +295 B
  • Brotli: 6.37 MB baseline 6.37 MB — 🟢 -89 B
  • Bundles: 438 current • 438 baseline • 155 added / 155 removed

Category Glance
Other 🔴 +587 B (14.1 MB) · Data & Services 🔴 +429 B (3.53 MB) · Vendor & Third-Party ⚪ 0 B (18.1 MB) · Graph Workspace ⚪ 0 B (1.38 MB) · Panels & Settings ⚪ 0 B (591 kB) · Utilities & Hooks ⚪ 0 B (549 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-D5gO-j3W.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.86 kB 🔴 +1.63 kB
assets/index-Dk97gSRP.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.86 kB 🟢 -1.63 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-0orTaboD.js (removed) 1.37 MB 🟢 -1.37 MB 🟢 -299 kB 🟢 -225 kB
assets/GraphView-RssCriXn.js (new) 1.37 MB 🔴 +1.37 MB 🔴 +299 kB 🔴 +225 kB
assets/WidgetCompositor-DJjpg5bG.js (removed) 8.17 kB 🟢 -8.17 kB 🟢 -2.76 kB 🟢 -2.45 kB
assets/WidgetCompositor-Kyk5Ph5-.js (new) 8.17 kB 🔴 +8.17 kB 🔴 +2.76 kB 🔴 +2.46 kB

Status: 2 added / 2 removed / 1 unchanged

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-DAP9EQEJ.js (removed) 25 kB 🟢 -25 kB 🟢 -6.25 kB 🟢 -5.52 kB
assets/CloudSurveyView-rVhhAmJ2.js (new) 25 kB 🔴 +25 kB 🔴 +6.25 kB 🔴 +5.53 kB
assets/CloudLayoutView-BDXMEO-0.js (new) 21.8 kB 🔴 +21.8 kB 🔴 +6.56 kB 🔴 +5.74 kB
assets/CloudLayoutView-CT0wNII8.js (removed) 21.8 kB 🟢 -21.8 kB 🟢 -6.56 kB 🟢 -5.74 kB
assets/UserCheckView-BZIqHx7r.js (new) 8.75 kB 🔴 +8.75 kB 🔴 +2.19 kB 🔴 +1.9 kB
assets/UserCheckView-CyBXkl4F.js (removed) 8.75 kB 🟢 -8.75 kB 🟢 -2.19 kB 🟢 -1.9 kB
assets/CloudLoginView-D8QPsJsQ.js (removed) 8.74 kB 🟢 -8.74 kB 🟢 -2.55 kB 🟢 -2.26 kB
assets/CloudLoginView-DN0y4Z2q.js (new) 8.74 kB 🔴 +8.74 kB 🔴 +2.55 kB 🔴 +2.25 kB
assets/useCloudAuthPage-D4v2k5zO.js (removed) 7.08 kB 🟢 -7.08 kB 🟢 -2.51 kB 🟢 -2.2 kB
assets/useCloudAuthPage-DSz8gFnw.js (new) 7.08 kB 🔴 +7.08 kB 🔴 +2.51 kB 🔴 +2.2 kB
assets/CloudSignupView-Cq6ou8qa.js (new) 6.96 kB 🔴 +6.96 kB 🔴 +2.28 kB 🔴 +2 kB
assets/CloudSignupView-GdrPZHT9.js (removed) 6.96 kB 🟢 -6.96 kB 🟢 -2.28 kB 🟢 -2 kB
assets/WidgetTextPreview-0omoYxJI.js (removed) 6.07 kB 🟢 -6.07 kB 🟢 -2.13 kB 🟢 -1.9 kB
assets/WidgetTextPreview-CVlpg19M.js (new) 6.07 kB 🔴 +6.07 kB 🔴 +2.13 kB 🔴 +1.9 kB
assets/CloudSubscriptionRedirectView-BX1SnQXJ.js (removed) 6.05 kB 🟢 -6.05 kB 🟢 -2.25 kB 🟢 -1.97 kB
assets/CloudSubscriptionRedirectView-BYCJ2XBn.js (new) 6.05 kB 🔴 +6.05 kB 🔴 +2.25 kB 🔴 +1.96 kB
assets/UserSelectView-BjN2MVK3.js (removed) 5.49 kB 🟢 -5.49 kB 🟢 -1.96 kB 🟢 -1.71 kB
assets/UserSelectView-TS5EF-mt.js (new) 5.49 kB 🔴 +5.49 kB 🔴 +1.96 kB 🔴 +1.71 kB
assets/CloudForgotPasswordView-BftlLRXk.js (removed) 4.97 kB 🟢 -4.97 kB 🟢 -1.72 kB 🟢 -1.49 kB
assets/CloudForgotPasswordView-C3UTCGLN.js (new) 4.97 kB 🔴 +4.97 kB 🔴 +1.73 kB 🔴 +1.49 kB
assets/CloudAuthTimeoutView-0MFT7KBE.js (removed) 4.43 kB 🟢 -4.43 kB 🟢 -1.54 kB 🟢 -1.33 kB
assets/CloudAuthTimeoutView-BqMwO_Nn.js (new) 4.43 kB 🔴 +4.43 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/OAuthLayoutView-B6mnlHLO.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -700 B 🟢 -596 B
assets/OAuthLayoutView-ZGhB3vF7.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +701 B 🔴 +595 B
assets/WidgetTextPreview-DzGfZ8sh.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +90 B
assets/WidgetTextPreview-RDfLHHr0.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -89 B

Status: 13 added / 13 removed / 4 unchanged

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-B_dCfVnz.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.94 kB 🔴 +8.79 kB
assets/KeybindingPanel-BPQSSD_i.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.94 kB 🟢 -8.8 kB
assets/CreditsPanel-DVXpOzEJ.js (removed) 36.6 kB 🟢 -36.6 kB 🟢 -8.9 kB 🟢 -7.81 kB
assets/CreditsPanel-jqp6mBBZ.js (new) 36.6 kB 🔴 +36.6 kB 🔴 +8.9 kB 🔴 +7.79 kB
assets/SecretsPanel-Da-TUVzE.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +7.87 kB 🔴 +6.9 kB
assets/SecretsPanel-oR3nEE9B.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -7.88 kB 🟢 -6.9 kB
assets/AboutPanel-BIfEi8Ym.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.12 kB 🔴 +2.79 kB
assets/AboutPanel-krs88tme.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.12 kB 🟢 -2.81 kB
assets/ExtensionPanel-CoeUU6Kn.js (new) 9.19 kB 🔴 +9.19 kB 🔴 +2.51 kB 🔴 +2.23 kB
assets/ExtensionPanel-DAMb5B6k.js (removed) 9.19 kB 🟢 -9.19 kB 🟢 -2.51 kB 🟢 -2.23 kB
assets/ServerConfigPanel-CPL3CqNt.js (removed) 6.09 kB 🟢 -6.09 kB 🟢 -1.94 kB 🟢 -1.72 kB
assets/ServerConfigPanel-DRYjMaaH.js (new) 6.09 kB 🔴 +6.09 kB 🔴 +1.94 kB 🔴 +1.72 kB
assets/UserPanel-DcvYBDms.js (removed) 5.73 kB 🟢 -5.73 kB 🟢 -1.78 kB 🟢 -1.54 kB
assets/UserPanel-DDnvIZxp.js (new) 5.73 kB 🔴 +5.73 kB 🔴 +1.78 kB 🔴 +1.54 kB
assets/refreshRemoteConfig-BiZm1eQP.js (removed) 4.24 kB 🟢 -4.24 kB 🟢 -1.51 kB 🟢 -1.33 kB
assets/refreshRemoteConfig-EPP7dwUX.js (new) 4.24 kB 🔴 +4.24 kB 🔴 +1.51 kB 🔴 +1.34 kB
assets/cloudRemoteConfig-BXOgC_yK.js (removed) 951 B 🟢 -951 B 🟢 -516 B 🟢 -421 B
assets/cloudRemoteConfig-DUTKhj5O.js (new) 951 B 🔴 +951 B 🔴 +518 B 🔴 +422 B
assets/CreditsPanel-BZTaVaNo.js (new) 116 B 🔴 +116 B 🔴 +95 B 🔴 +84 B
assets/CreditsPanel-sJR9TMxm.js (removed) 116 B 🟢 -116 B 🟢 -95 B 🟢 -92 B
assets/refreshRemoteConfig-B2K6-oRY.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +83 B
assets/refreshRemoteConfig-BGAHizIm.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -76 B

Status: 11 added / 11 removed / 16 unchanged

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SignUpForm-BmL-QXHZ.js (removed) 13.3 kB 🟢 -13.3 kB 🟢 -4.52 kB 🟢 -3.93 kB
assets/SignUpForm-CfAAO0Yi.js (new) 13.3 kB 🔴 +13.3 kB 🔴 +4.52 kB 🔴 +3.93 kB
assets/auth-CgBfKYWk.js (removed) 3.48 kB 🟢 -3.48 kB 🟢 -1.2 kB 🟢 -1.01 kB
assets/auth-DkkBX_rN.js (new) 3.48 kB 🔴 +3.48 kB 🔴 +1.2 kB 🔴 +1.01 kB
assets/UpdatePasswordContent-BI2AxJ02.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -841 B 🟢 -733 B
assets/UpdatePasswordContent-CoGNC5ak.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +841 B 🔴 +737 B
assets/authStore-BAd45DeC.js (removed) 128 B 🟢 -128 B 🟢 -104 B 🟢 -104 B
assets/authStore-vx_mcr6I.js (new) 128 B 🔴 +128 B 🔴 +104 B 🔴 +105 B
assets/workspaceAuthStore-D-_yk2st.js (removed) 108 B 🟢 -108 B 🟢 -99 B 🟢 -110 B
assets/workspaceAuthStore-DEQkRA5R.js (new) 108 B 🔴 +108 B 🔴 +99 B 🔴 +105 B
assets/auth-DS-S8fm8.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -87 B
assets/auth-ggIJ_2SY.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +83 B

Status: 6 added / 6 removed / 5 unchanged

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyHubPublishDialog-7q_LKlOV.js (new) 90.1 kB 🔴 +90.1 kB 🔴 +19.3 kB 🔴 +16.5 kB
assets/ComfyHubPublishDialog-D_zbaISO.js (removed) 90.1 kB 🟢 -90.1 kB 🟢 -19.3 kB 🟢 -16.5 kB
assets/useShareDialog-CFjoxAiq.js (removed) 23.9 kB 🟢 -23.9 kB 🟢 -5.7 kB 🟢 -5.05 kB
assets/useShareDialog-iuEfTStS.js (new) 23.9 kB 🔴 +23.9 kB 🔴 +5.69 kB 🔴 +5.03 kB
assets/feedbackDialog--QqNTy8B.js (new) 4.45 kB 🔴 +4.45 kB 🔴 +1.86 kB 🔴 +1.59 kB
assets/feedbackDialog-BI-mkErT.js (removed) 4.45 kB 🟢 -4.45 kB 🟢 -1.86 kB 🟢 -1.59 kB
assets/useRangeEditor-GqjRid3r.js (removed) 3.29 kB 🟢 -3.29 kB 🟢 -1.14 kB 🟢 -1.04 kB
assets/useRangeEditor-ljW_etuz.js (new) 3.29 kB 🔴 +3.29 kB 🔴 +1.14 kB 🔴 +1.04 kB
assets/useLayerEditor-6mWeZPhk.js (removed) 1.01 kB 🟢 -1.01 kB 🟢 -491 B 🟢 -405 B
assets/useLayerEditor-D5leFNN0.js (new) 1.01 kB 🔴 +1.01 kB 🔴 +490 B 🔴 +405 B
assets/ComfyHubPublishDialog-B5Zqw4hB.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -91 B
assets/ComfyHubPublishDialog-Ce84Qa80.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +89 B
assets/useSubscriptionDialog-DgVHZsDG.js (removed) 108 B 🟢 -108 B 🟢 -102 B 🟢 -91 B
assets/useSubscriptionDialog-DMLVDuEb.js (new) 108 B 🔴 +108 B 🔴 +102 B 🔴 +85 B

Status: 7 added / 7 removed / 1 unchanged

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-CePFPEGk.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.97 kB 🟢 -3.52 kB
assets/ComfyQueueButton-D4LJYRkr.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.97 kB 🔴 +3.52 kB
assets/useTerminalTabs-CdD_xmFG.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.69 kB 🟢 -3.28 kB
assets/useTerminalTabs-CVAxAr2a.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.69 kB 🔴 +3.27 kB
assets/InviteMembersForm-3kS4Gr_b.js (removed) 8.23 kB 🟢 -8.23 kB 🟢 -2.74 kB 🟢 -2.43 kB
assets/InviteMembersForm-DteH6H6_.js (new) 8.23 kB 🔴 +8.23 kB 🔴 +2.74 kB 🔴 +2.44 kB
assets/SubscribeButton-DJD5g26j.js (removed) 2.15 kB 🟢 -2.15 kB 🟢 -968 B 🟢 -845 B
assets/SubscribeButton-k3QnRfD5.js (new) 2.15 kB 🔴 +2.15 kB 🔴 +967 B 🔴 +850 B
assets/cloudFeedbackTopbarButton-1TcvacUd.js (removed) 705 B 🟢 -705 B 🟢 -419 B 🟢 -361 B
assets/cloudFeedbackTopbarButton-CndpFQ2Z.js (new) 705 B 🔴 +705 B 🔴 +420 B 🔴 +360 B
assets/ComfyQueueButton-DVfHeLni.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +89 B
assets/ComfyQueueButton-twbNQbYd.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -91 B

Status: 6 added / 6 removed / 8 unchanged

Data & Services — 3.53 MB (baseline 3.53 MB) • 🔴 +429 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settingStore-CNziz8a9.js (new) 3.17 MB 🔴 +3.17 MB 🔴 +743 kB 🔴 +558 kB
assets/settingStore-8D7_BEUp.js (removed) 3.17 MB 🟢 -3.17 MB 🟢 -743 kB 🟢 -559 kB
assets/api-C4THtmwP.js (new) 186 kB 🔴 +186 kB 🔴 +39.8 kB 🔴 +33.3 kB
assets/api-oBDMF4nf.js (removed) 186 kB 🟢 -186 kB 🟢 -39.8 kB 🟢 -33.3 kB
assets/load3dService-BIYA2zk2.js (removed) 131 kB 🟢 -131 kB 🟢 -29.2 kB 🟢 -24.6 kB
assets/load3dService-DapmFIej.js (new) 131 kB 🔴 +131 kB 🔴 +29.2 kB 🔴 +24.6 kB
assets/workflowShareService-C7j9sgdf.js (new) 16.5 kB 🔴 +16.5 kB 🔴 +4.91 kB 🔴 +4.35 kB
assets/workflowShareService-DUXAzkZT.js (removed) 16.5 kB 🟢 -16.5 kB 🟢 -4.91 kB 🟢 -4.35 kB
assets/keybindingService-BWejVIe0.js (new) 6.95 kB 🔴 +6.95 kB 🔴 +1.74 kB 🔴 +1.51 kB
assets/keybindingService-CmKRLaUl.js (removed) 6.95 kB 🟢 -6.95 kB 🟢 -1.74 kB 🟢 -1.51 kB
assets/releaseStore-C-kPZBuW.js (removed) 6.72 kB 🟢 -6.72 kB 🟢 -2.03 kB 🟢 -1.77 kB
assets/releaseStore-D5I0-dLP.js (new) 6.72 kB 🔴 +6.72 kB 🔴 +2.03 kB 🔴 +1.77 kB
assets/systemStatsStore-fVvc6rEk.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.74 kB 🔴 +1.47 kB
assets/systemStatsStore-Lt3NSt2x.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.74 kB 🟢 -1.47 kB
assets/userStore-01NrfhOO.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -896 B 🟢 -795 B
assets/userStore-DP3rqeNn.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +896 B 🔴 +796 B
assets/audioService-Du0gAv9e.js (new) 1.71 kB 🔴 +1.71 kB 🔴 +829 B 🔴 +724 B
assets/audioService-M0jKOj85.js (removed) 1.71 kB 🟢 -1.71 kB 🟢 -827 B 🟢 -730 B
assets/dialogService-Bp1xRG3V.js (removed) 98 B 🟢 -98 B 🟢 -97 B 🟢 -75 B
assets/dialogService-sDNMdLjh.js (new) 98 B 🔴 +98 B 🔴 +97 B 🔴 +80 B
assets/releaseStore-DpIw8k04.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -84 B
assets/releaseStore-r8XEtik8.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +90 B
assets/settingStore-B5SPpjVJ.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +76 B
assets/settingStore-DYNedWXG.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -89 B
assets/assetsStore-B82CMSHD.js (removed) 94 B 🟢 -94 B 🟢 -92 B 🟢 -85 B
assets/assetsStore-shUBH57v.js (new) 94 B 🔴 +94 B 🔴 +92 B 🔴 +83 B
assets/api-B7qrl0s-.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B
assets/api-CSyaXE37.js (removed) 62 B 🟢 -62 B 🟢 -74 B 🟢 -60 B

Status: 14 added / 14 removed / 3 unchanged

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-BBNJzIho.js (new) 236 kB 🔴 +236 kB 🔴 +53.1 kB 🔴 +43.2 kB
assets/useConflictDetection-qUh4iOpM.js (removed) 236 kB 🟢 -236 kB 🟢 -53.1 kB 🟢 -43.2 kB
assets/useLayerEditorSession-Bb--RSo0.js (removed) 158 kB 🟢 -158 kB 🟢 -40.8 kB 🟢 -34.3 kB
assets/useLayerEditorSession-BoypgRBD.js (new) 158 kB 🔴 +158 kB 🔴 +40.8 kB 🔴 +34.3 kB
assets/useLoad3d--Vif-jSJ.js (removed) 25.8 kB 🟢 -25.8 kB 🟢 -5.81 kB 🟢 -5.16 kB
assets/useLoad3d-DDWkBq9y.js (new) 25.8 kB 🔴 +25.8 kB 🔴 +5.8 kB 🔴 +5.15 kB
assets/useLoad3dViewer-DaXf5_Iu.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +4.98 kB 🔴 +4.37 kB
assets/useLoad3dViewer-DK3vBVjt.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -4.98 kB 🟢 -4.37 kB
assets/useImageCrop-BqWkgdvC.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.42 kB 🔴 +2.98 kB
assets/useImageCrop-C8VYcXVi.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.42 kB 🟢 -2.98 kB
assets/useDowngradeToPersonal-BJJ4z9qf.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -2.74 kB 🟢 -2.35 kB
assets/useDowngradeToPersonal-DWmw1zkD.js (new) 10.9 kB 🔴 +10.9 kB 🔴 +2.74 kB 🔴 +2.35 kB
assets/useFeatureFlags-BkdWQPBC.js (removed) 7.25 kB 🟢 -7.25 kB 🟢 -2.05 kB 🟢 -1.73 kB
assets/useFeatureFlags-C8Pn8Ej9.js (new) 7.25 kB 🔴 +7.25 kB 🔴 +2.05 kB 🔴 +1.74 kB
assets/useCompositorLayers-Bf1WCYd0.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +899 B 🔴 +811 B
assets/useCompositorLayers-CaV9pzRM.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -899 B 🟢 -804 B
assets/useExternalLink-Chkmxu8C.js (removed) 2.85 kB 🟢 -2.85 kB 🟢 -1.07 kB 🟢 -925 B
assets/useExternalLink-D6m1Hem5.js (new) 2.85 kB 🔴 +2.85 kB 🔴 +1.07 kB 🔴 +927 B
assets/assetPreviewUtil-B0aqBTKh.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -967 B 🟢 -846 B
assets/assetPreviewUtil-sytSb4RO.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +968 B 🔴 +846 B
assets/downloadUtil-cimekMzp.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -909 B 🟢 -728 B
assets/downloadUtil-RBAZD-Tt.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +908 B 🔴 +727 B
assets/useUpstreamValue-0vP3nUSu.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -760 B 🟢 -684 B
assets/useUpstreamValue-DuaUxF_I.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +759 B 🔴 +686 B
assets/useWorkspaceTierLabel-4Ma7GfDI.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +814 B 🔴 +700 B
assets/useWorkspaceTierLabel-Dt2Yowlg.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -814 B 🟢 -697 B
assets/useErrorHandling-DN_WcbZ-.js (removed) 1.49 kB 🟢 -1.49 kB 🟢 -616 B 🟢 -527 B
assets/useErrorHandling-DzzPTCzM.js (new) 1.49 kB 🔴 +1.49 kB 🔴 +614 B 🔴 +521 B
assets/subscriptionCheckoutUtil-Cye1qGYu.js (removed) 877 B 🟢 -877 B 🟢 -525 B 🟢 -434 B
assets/subscriptionCheckoutUtil-DJIzSNK6.js (new) 877 B 🔴 +877 B 🔴 +522 B 🔴 +437 B
assets/useSessionCookie-B1pZOwRB.js (new) 652 B 🔴 +652 B 🔴 +335 B 🔴 +290 B
assets/useSessionCookie-DtgORpvD.js (removed) 652 B 🟢 -652 B 🟢 -337 B 🟢 -292 B
assets/useLoad3d-BHss21f6.js (removed) 311 B 🟢 -311 B 🟢 -163 B 🟢 -147 B
assets/useLoad3d-CqQl0Ba9.js (new) 311 B 🔴 +311 B 🔴 +164 B 🔴 +150 B
assets/useSessionCookie-DaZ2TWTu.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +83 B
assets/useSessionCookie-DdtqvDQU.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -82 B
assets/useFeatureFlags-GLWloYzG.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +79 B
assets/useFeatureFlags-ZbOnS7nz.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -82 B
assets/useLoad3dViewer-9b12Qs9h.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +85 B
assets/useLoad3dViewer-PGdNf6S0.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -84 B
assets/useCurrentUser-Des0nKup.js (new) 94 B 🔴 +94 B 🔴 +95 B 🔴 +84 B
assets/useCurrentUser-t9kD9n5O.js (removed) 94 B 🟢 -94 B 🟢 -95 B 🟢 -89 B

Status: 21 added / 21 removed / 16 unchanged

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

External libraries and shared vendor chunks

Status: 18 unchanged

Other — 14.1 MB (baseline 14.1 MB) • 🔴 +587 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/main-CMr--vkr.js (new) 208 kB 🔴 +208 kB 🔴 +60.4 kB 🔴 +50.7 kB
assets/main-Bta5HL16.js (removed) 207 kB 🟢 -207 kB 🟢 -60.3 kB 🟢 -50.6 kB
assets/core-BRebun6g.js (removed) 115 kB 🟢 -115 kB 🟢 -30.1 kB 🟢 -25.4 kB
assets/core-CXDlyvps.js (new) 115 kB 🔴 +115 kB 🔴 +30.1 kB 🔴 +25.4 kB
assets/WorkspaceSettingsPanelContent-BEOlglIB.js (new) 110 kB 🔴 +110 kB 🔴 +21.6 kB 🔴 +18.2 kB
assets/WorkspaceSettingsPanelContent-DFZH4bum.js (removed) 109 kB 🟢 -109 kB 🟢 -21.4 kB 🟢 -18.1 kB
assets/WidgetSelect-CeS9cQA0.js (new) 88.8 kB 🔴 +88.8 kB 🔴 +20.1 kB 🔴 +17.2 kB
assets/WidgetSelect-DbyjsyGI.js (removed) 88.8 kB 🟢 -88.8 kB 🟢 -20.1 kB 🟢 -17.2 kB
assets/Load3D-CUL2KW7g.js (removed) 73.3 kB 🟢 -73.3 kB 🟢 -12.1 kB 🟢 -10.3 kB
assets/Load3D-DkFviS9E.js (new) 73.3 kB 🔴 +73.3 kB 🔴 +12.1 kB 🔴 +10.3 kB
assets/WidgetVideoEdit-5jt6JCl7.js (new) 71.2 kB 🔴 +71.2 kB 🔴 +16.9 kB 🔴 +14.9 kB
assets/WidgetVideoEdit-DDs9Zcdq.js (removed) 71.2 kB 🟢 -71.2 kB 🟢 -16.9 kB 🟢 -14.9 kB
assets/SubscriptionTransitionPreviewWorkspace-CnKjtuu7.js (new) 66.4 kB 🔴 +66.4 kB 🔴 +13.4 kB 🔴 +11.7 kB
assets/SubscriptionTransitionPreviewWorkspace-DFdpGGS8.js (removed) 66.4 kB 🟢 -66.4 kB 🟢 -13.4 kB 🟢 -11.7 kB
assets/Preview3d-B3icTOzC.js (removed) 50.9 kB 🟢 -50.9 kB 🟢 -8.32 kB 🟢 -7.26 kB
assets/Preview3d-CO1KisZO.js (new) 50.9 kB 🔴 +50.9 kB 🔴 +8.32 kB 🔴 +7.24 kB
assets/main-BigAYxSh.js (removed) 47.4 kB 🟢 -47.4 kB 🟢 -13.7 kB 🟢 -11.9 kB
assets/main-Br4aeArx.js (new) 47.4 kB 🔴 +47.4 kB 🔴 +13.7 kB 🔴 +11.9 kB
assets/SubscriptionRequiredDialogContentUnified-CmX1nPQt.js (new) 42.7 kB 🔴 +42.7 kB 🔴 +9.39 kB 🔴 +8.19 kB
assets/SubscriptionRequiredDialogContentUnified-iekiBur_.js (removed) 42.7 kB 🟢 -42.7 kB 🟢 -9.39 kB 🟢 -8.19 kB
assets/LayerEditorContent-86cnFlgJ.js (new) 42.5 kB 🔴 +42.5 kB 🔴 +9.62 kB 🔴 +8.41 kB
assets/LayerEditorContent-oN2bU7bz.js (removed) 42.5 kB 🟢 -42.5 kB 🟢 -9.62 kB 🟢 -8.42 kB
assets/WidgetBoundingBoxes-B1c90OWr.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -9.16 kB 🟢 -8.12 kB
assets/WidgetBoundingBoxes-DDFAk6Eo.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +9.16 kB 🔴 +8.13 kB
assets/WidgetPainter-BAOkNykL.js (new) 32.6 kB 🔴 +32.6 kB 🔴 +7.88 kB 🔴 +6.97 kB
assets/WidgetPainter-CXkn6fw-.js (removed) 32.6 kB 🟢 -32.6 kB 🟢 -7.88 kB 🟢 -6.97 kB
assets/Load3dViewerContent-B8EvqmWC.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +6.28 kB 🔴 +5.45 kB
assets/Load3dViewerContent-DYF3RRgE.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -6.28 kB 🟢 -5.45 kB
assets/HdrViewerContent-BCHtg-hu.js (removed) 29.8 kB 🟢 -29.8 kB 🟢 -8.25 kB 🟢 -7.28 kB
assets/HdrViewerContent-DnTRZ9YB.js (new) 29.8 kB 🔴 +29.8 kB 🔴 +8.25 kB 🔴 +7.27 kB
assets/SubscriptionRequiredDialogContent-D9eI3aaF.js (new) 26.9 kB 🔴 +26.9 kB 🔴 +6.36 kB 🔴 +5.6 kB
assets/SubscriptionRequiredDialogContent-DvbGPlXP.js (removed) 26.9 kB 🟢 -26.9 kB 🟢 -6.36 kB 🟢 -5.6 kB
assets/SubscriptionRequiredDialogContentWorkspace-D-7rgjuJ.js (removed) 25.1 kB 🟢 -25.1 kB 🟢 -5.81 kB 🟢 -5.11 kB
assets/SubscriptionRequiredDialogContentWorkspace-D8LpK3FU.js (new) 25.1 kB 🔴 +25.1 kB 🔴 +5.81 kB 🔴 +5.11 kB
assets/load3d-Cufhfd6C.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.4 kB 🔴 +4.67 kB
assets/load3d-R5nYaRW1.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.41 kB 🟢 -4.68 kB
assets/SignInContent-C0E633lO.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.18 kB 🟢 -4.53 kB
assets/SignInContent-CX4ryh9s.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.18 kB 🔴 +4.53 kB
assets/i18n-BZe8zcDj.js (new) 16.7 kB 🔴 +16.7 kB 🔴 +4.55 kB 🔴 +3.82 kB
assets/i18n-CL1S9YZu.js (removed) 16.7 kB 🟢 -16.7 kB 🟢 -4.55 kB 🟢 -3.82 kB
assets/WidgetRecordAudio-CNmpHcrH.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.6 kB 🟢 -4.11 kB
assets/WidgetRecordAudio-XF904_qK.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.6 kB 🔴 +4.09 kB
assets/CurrentUserPopoverWorkspace-BYVQEiJi.js (removed) 15.9 kB 🟢 -15.9 kB 🟢 -3.86 kB 🟢 -3.4 kB
assets/CurrentUserPopoverWorkspace-pHECazTe.js (new) 15.9 kB 🔴 +15.9 kB 🔴 +3.86 kB 🔴 +3.4 kB
assets/WidgetInputNumber-BIHb9tc3.js (new) 13.9 kB 🔴 +13.9 kB 🔴 +3.63 kB 🔴 +3.22 kB
assets/WidgetInputNumber-D311bX_e.js (removed) 13.9 kB 🟢 -13.9 kB 🟢 -3.63 kB 🟢 -3.22 kB
assets/WidgetRange-7QoOVjgt.js (new) 13.7 kB 🔴 +13.7 kB 🔴 +3.55 kB 🔴 +3.13 kB
assets/WidgetRange-DupIfU2u.js (removed) 13.7 kB 🟢 -13.7 kB 🟢 -3.55 kB 🟢 -3.13 kB
assets/WaveAudioPlayer-CPaO-mrJ.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.46 kB 🔴 +3.06 kB
assets/WaveAudioPlayer-Cxr-GqTQ.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.46 kB 🟢 -3.05 kB
assets/WidgetCurve-BOpskj-V.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.47 kB 🟢 -3.14 kB
assets/WidgetCurve-ilExyr_x.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.47 kB 🔴 +3.15 kB
assets/AudioPreviewPlayer-BWbbGVx8.js (removed) 10.6 kB 🟢 -10.6 kB 🟢 -3.05 kB 🟢 -2.73 kB
assets/AudioPreviewPlayer-DEab7Upr.js (new) 10.6 kB 🔴 +10.6 kB 🔴 +3.05 kB 🔴 +2.72 kB
assets/TeamWorkspacesDialogContent-DRbheJ7t.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +2.97 kB 🔴 +2.63 kB
assets/TeamWorkspacesDialogContent-tASTlq_0.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -2.97 kB 🟢 -2.63 kB
assets/onboardingCloudRoutes-3DQMF3LK.js (removed) 9.49 kB 🟢 -9.49 kB 🟢 -2.86 kB 🟢 -2.46 kB
assets/onboardingCloudRoutes-C3MCEm1C.js (new) 9.49 kB 🔴 +9.49 kB 🔴 +2.86 kB 🔴 +2.45 kB
assets/Load3DConfiguration-CG_oyooB.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.6 kB 🔴 +2.3 kB
assets/Load3DConfiguration-DPfvPxaU.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.61 kB 🟢 -2.3 kB
assets/WidgetImageCrop-B30ZtpD_.js (new) 8.49 kB 🔴 +8.49 kB 🔴 +2.65 kB 🔴 +2.34 kB
assets/WidgetImageCrop-DYtVA3zu.js (removed) 8.49 kB 🟢 -8.49 kB 🟢 -2.66 kB 🟢 -2.34 kB
assets/SetMemberCreditLimitDialogContent-BknRHwLx.js (removed) 8.47 kB 🟢 -8.47 kB 🟢 -2.34 kB 🟢 -2.05 kB
assets/SetMemberCreditLimitDialogContent-BPmLILNm.js (new) 8.47 kB 🔴 +8.47 kB 🔴 +2.34 kB 🔴 +2.04 kB
assets/nodeTemplates-BpieVx9o.js (new) 8.32 kB 🔴 +8.32 kB 🔴 +2.85 kB 🔴 +2.5 kB
assets/nodeTemplates-BxS2Phl_.js (removed) 8.32 kB 🟢 -8.32 kB 🟢 -2.85 kB 🟢 -2.5 kB
assets/WorkspaceSwitcherPopover-Bb08aCTy.js (new) 8.01 kB 🔴 +8.01 kB 🔴 +2.38 kB 🔴 +2.12 kB
assets/WorkspaceSwitcherPopover-Cd22Xeim.js (removed) 8.01 kB 🟢 -8.01 kB 🟢 -2.38 kB 🟢 -2.12 kB
assets/NightlySurveyController-BzMiy815.js (new) 7.5 kB 🔴 +7.5 kB 🔴 +2.55 kB 🔴 +2.25 kB
assets/NightlySurveyController-CnXs61Qd.js (removed) 7.5 kB 🟢 -7.5 kB 🟢 -2.55 kB 🟢 -2.23 kB
assets/CloudRunButtonWrapper--qVLGwH0.js (removed) 7.29 kB 🟢 -7.29 kB 🟢 -2.29 kB 🟢 -2.01 kB
assets/CloudRunButtonWrapper-0gRDBu_J.js (new) 7.29 kB 🔴 +7.29 kB 🔴 +2.29 kB 🔴 +2.01 kB
assets/WidgetWithControl-JJE894_A.js (new) 6.51 kB 🔴 +6.51 kB 🔴 +2.66 kB 🔴 +2.33 kB
assets/WidgetWithControl-NVcRUZyF.js (removed) 6.51 kB 🟢 -6.51 kB 🟢 -2.66 kB 🟢 -2.37 kB
assets/missingModelMetadata-BNqON3Lf.js (removed) 6.45 kB 🟢 -6.45 kB 🟢 -2.21 kB 🟢 -1.93 kB
assets/missingModelMetadata-RqrL2uzI.js (new) 6.45 kB 🔴 +6.45 kB 🔴 +2.21 kB 🔴 +1.93 kB
assets/CancelSubscriptionDialogContent-7jGbE1JP.js (removed) 5.97 kB 🟢 -5.97 kB 🟢 -1.98 kB 🟢 -1.75 kB
assets/CancelSubscriptionDialogContent-B_LYSym4.js (new) 5.97 kB 🔴 +5.97 kB 🔴 +1.98 kB 🔴 +1.75 kB
assets/main-DADb9B9M.js (new) 5.92 kB 🔴 +5.92 kB 🔴 +1.9 kB 🔴 +1.6 kB
assets/main-DgZX7vo3.js (removed) 5.92 kB 🟢 -5.92 kB 🟢 -1.91 kB 🟢 -1.6 kB
assets/load3dPreviewExtensions-DZuuLIxx.js (removed) 5.88 kB 🟢 -5.88 kB 🟢 -1.81 kB 🟢 -1.6 kB
assets/load3dPreviewExtensions-zkH05ui6.js (new) 5.88 kB 🔴 +5.88 kB 🔴 +1.81 kB 🔴 +1.6 kB
assets/launchCancellationFlow-D49IGdmd.js (new) 5.18 kB 🔴 +5.18 kB 🔴 +1.78 kB 🔴 +1.55 kB
assets/launchCancellationFlow-DDYWfZ-5.js (removed) 5.18 kB 🟢 -5.18 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/CreateWorkspaceDialogContent-BwwcV86V.js (new) 5.12 kB 🔴 +5.12 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/CreateWorkspaceDialogContent-CLFBRYxz.js (removed) 5.12 kB 🟢 -5.12 kB 🟢 -1.79 kB 🟢 -1.55 kB
assets/ChangeMemberRoleDialogContent-C4Cyzw-W.js (removed) 4.97 kB 🟢 -4.97 kB 🟢 -1.64 kB 🟢 -1.44 kB
assets/ChangeMemberRoleDialogContent-DHVFwybI.js (new) 4.97 kB 🔴 +4.97 kB 🔴 +1.64 kB 🔴 +1.43 kB
assets/InviteMemberDialogContent-2QGnGoiP.js (new) 4.96 kB 🔴 +4.96 kB 🔴 +1.64 kB 🔴 +1.43 kB
assets/InviteMemberDialogContent-DGMe3uvz.js (removed) 4.96 kB 🟢 -4.96 kB 🟢 -1.64 kB 🟢 -1.44 kB
assets/EditWorkspaceDialogContent-DtJ3HmYM.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.76 kB 🟢 -1.52 kB
assets/EditWorkspaceDialogContent-v7EO0dIc.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.76 kB 🔴 +1.52 kB
assets/WidgetTextarea-B58WLAB1.js (removed) 4.83 kB 🟢 -4.83 kB 🟢 -1.88 kB 🟢 -1.64 kB
assets/WidgetTextarea-DwhjocWz.js (new) 4.83 kB 🔴 +4.83 kB 🔴 +1.88 kB 🔴 +1.64 kB
assets/saveMesh-64J-259r.js (new) 4.76 kB 🔴 +4.76 kB 🔴 +1.52 kB 🔴 +1.35 kB
assets/saveMesh-B0quisbl.js (removed) 4.76 kB 🟢 -4.76 kB 🟢 -1.52 kB 🟢 -1.35 kB
assets/ValueControlPopover-BIUNrncj.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.55 kB 🟢 -1.38 kB
assets/ValueControlPopover-CuJr9qvm.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/ApiNodesSignInContent-DIKmfe0k.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.31 kB 🟢 -1.15 kB
assets/ApiNodesSignInContent-DW5KbY6r.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.31 kB 🔴 +1.17 kB
assets/DeleteWorkspaceDialogContent-Bi4UV0yz.js (removed) 3.84 kB 🟢 -3.84 kB 🟢 -1.44 kB 🟢 -1.24 kB
assets/DeleteWorkspaceDialogContent-Dgoz-50z.js (new) 3.84 kB 🔴 +3.84 kB 🔴 +1.44 kB 🔴 +1.24 kB
assets/RemoveMemberDialogContent-439QUCd8.js (new) 3.76 kB 🔴 +3.76 kB 🔴 +1.39 kB 🔴 +1.22 kB
assets/RemoveMemberDialogContent-DvrIAUFB.js (removed) 3.76 kB 🟢 -3.76 kB 🟢 -1.38 kB 🟢 -1.2 kB
assets/RevokeInviteDialogContent-Cct7nnAr.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.39 kB 🟢 -1.22 kB
assets/RevokeInviteDialogContent-rmRGG917.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.39 kB 🔴 +1.21 kB
assets/LeaveWorkspaceDialogContent-403juBr9.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.39 kB 🟢 -1.19 kB
assets/LeaveWorkspaceDialogContent-CEuonkj3.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.38 kB 🔴 +1.19 kB
assets/InviteMemberUpsellDialogContent-BLhBOMP3.js (new) 3.47 kB 🔴 +3.47 kB 🔴 +1.24 kB 🔴 +1.09 kB
assets/InviteMemberUpsellDialogContent-DcB5iJ3_.js (removed) 3.47 kB 🟢 -3.47 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/workspaceCheckoutTelemetry-BLYRH4fG.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.52 kB 🟢 -1.32 kB
assets/workspaceCheckoutTelemetry-BpDw7jsZ.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.52 kB 🔴 +1.32 kB
assets/GlobalToast-D1Py4HQL.js (new) 3.25 kB 🔴 +3.25 kB 🔴 +1.3 kB 🔴 +1.11 kB
assets/GlobalToast-D6Wu2jwx.js (removed) 3.25 kB 🟢 -3.25 kB 🟢 -1.3 kB 🟢 -1.11 kB
assets/Media3DTop-D197TTnG.js (removed) 3.21 kB 🟢 -3.21 kB 🟢 -1.26 kB 🟢 -1.11 kB
assets/Media3DTop-mQ3i62-9.js (new) 3.21 kB 🔴 +3.21 kB 🔴 +1.26 kB 🔴 +1.11 kB
assets/load3dAdvanced-B-tx6dfr.js (removed) 2.82 kB 🟢 -2.82 kB 🟢 -1.1 kB 🟢 -954 B
assets/load3dAdvanced-CzB1caFK.js (new) 2.82 kB 🔴 +2.82 kB 🔴 +1.09 kB 🔴 +953 B
assets/SubscribeToRun-B3QFwRAD.js (removed) 2.39 kB 🟢 -2.39 kB 🟢 -1.03 kB 🟢 -904 B
assets/SubscribeToRun-BbhTb9Yz.js (new) 2.39 kB 🔴 +2.39 kB 🔴 +1.03 kB 🔴 +904 B
assets/MediaAudioTop-BaxcsBGF.js (new) 1.62 kB 🔴 +1.62 kB 🔴 +807 B 🔴 +668 B
assets/MediaAudioTop-Ci8YVDYH.js (removed) 1.62 kB 🟢 -1.62 kB 🟢 -808 B 🟢 -669 B
assets/signInSchema-BwI7cF8g.js (new) 1.55 kB 🔴 +1.55 kB 🔴 +554 B 🔴 +487 B
assets/signInSchema-ptrdIIYJ.js (removed) 1.55 kB 🟢 -1.55 kB 🟢 -555 B 🟢 -526 B
assets/cloudSessionCookie-12kk-EyR.js (new) 933 B 🔴 +933 B 🔴 +434 B 🔴 +378 B
assets/cloudSessionCookie-AJmtblcQ.js (removed) 933 B 🟢 -933 B 🟢 -432 B 🟢 -379 B
assets/cloudBadges-Ds8FlVpw.js (new) 922 B 🔴 +922 B 🔴 +512 B 🔴 +465 B
assets/cloudBadges-DxLHxOjh.js (removed) 922 B 🟢 -922 B 🟢 -515 B 🟢 -443 B
assets/Load3DAdvanced-Cb548FX2.js (removed) 761 B 🟢 -761 B 🟢 -424 B 🟢 -359 B
assets/Load3DAdvanced-CuIPOBjK.js (new) 761 B 🔴 +761 B 🔴 +423 B 🔴 +358 B
assets/nightlyBadges-CP-J9zrd.js (new) 411 B 🔴 +411 B 🔴 +269 B 🔴 +232 B
assets/nightlyBadges-WsEuO1UV.js (removed) 411 B 🟢 -411 B 🟢 -274 B 🟢 -231 B
assets/Load3dViewerContent-BnaoOXU5.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +93 B
assets/Load3dViewerContent-BNYVfa0h.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -92 B
assets/missingModelMetadata-BuPBsglc.js (new) 125 B 🔴 +125 B 🔴 +103 B 🔴 +102 B
assets/missingModelMetadata-CGI7-4fH.js (removed) 125 B 🟢 -125 B 🟢 -103 B 🟢 -103 B
assets/Load3DAdvanced-D4tP5wlh.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +88 B
assets/Load3DAdvanced-z9T4uq3m.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -88 B
assets/WidgetLegacy-DU4hmSYv.js (new) 117 B 🔴 +117 B 🔴 +106 B 🔴 +105 B
assets/WidgetLegacy-n2cYluIO.js (removed) 117 B 🟢 -117 B 🟢 -106 B 🟢 -102 B
assets/workflowDraftStoreV2-Bav9Zmp0.js (new) 112 B 🔴 +112 B 🔴 +101 B 🔴 +111 B
assets/workflowDraftStoreV2-Cest0x5E.js (removed) 112 B 🟢 -112 B 🟢 -101 B 🟢 -116 B
assets/Load3D-6dufgYZu.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +82 B
assets/Load3D-CYqFOKr5.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -82 B
assets/i18n-CCx0eoyj.js (removed) 97 B 🟢 -97 B 🟢 -92 B 🟢 -101 B
assets/i18n-mznHPn0E.js (new) 97 B 🔴 +97 B 🔴 +92 B 🔴 +85 B
assets/changeTracker-o7q4_wjM.js (removed) 91 B 🟢 -91 B 🟢 -93 B 🟢 -87 B
assets/changeTracker-YpOJforz.js (new) 91 B 🔴 +91 B 🔴 +93 B 🔴 +83 B

Status: 74 added / 74 removed / 211 unchanged

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 68.7 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 68.6 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 62.7 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 69.3 MB heap
large-graph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 84.7 MB heap
large-graph-pan: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 69.0 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 61.8 MB heap
legacy-node-drag: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 64.1 MB heap
minimap-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 66.1 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 70.8 MB heap
subgraph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 62.2 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 54.5 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 129ms TBT · 91.7 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 83.0 MB heap
vue-large-graph-idle: · 57.1 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 173.2 MB heap
vue-large-graph-pan: · 57.1 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 17ms TBT · 165.4 MB heap
workflow-execution: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 63.1 MB heap

⚠️ 4 regressions detected

Show regressions
Metric Baseline PR (median) Δ Sig
canvas-idle: task duration 531ms 502ms -5% ⚠️ z=3.5
minimap-idle: task duration 701ms 628ms -10% ⚠️ z=2.1
subgraph-idle: task duration 508ms 501ms -1% ⚠️ z=4.2
workflow-execution: event listeners 51 61 +20% ⚠️ z=2.1
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 8ms 7ms -7% z=-4.2
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 9 9 -6% z=-4.7
canvas-idle: task duration 531ms 502ms -5% ⚠️ z=3.5
canvas-idle: script duration 10ms 8ms -19% z=-7.8
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 72.9 MB 68.7 MB -6%
canvas-idle: DOM nodes -281 -282 +0% z=-238.8
canvas-idle: event listeners -151 -166 +10% z=-37.5
canvas-mouse-sweep: avg frame time 17ms 17ms +0% z=0.2
canvas-mouse-sweep: p95 frame time 17ms 17ms +0%
canvas-mouse-sweep: layout duration 4ms 4ms -5% z=0.0
canvas-mouse-sweep: style recalc duration 42ms 44ms +4% z=0.3
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 947ms 946ms -0% z=1.4
canvas-mouse-sweep: script duration 112ms 103ms -8% z=-5.0
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 58.9 MB 68.6 MB +16%
canvas-mouse-sweep: DOM nodes -282 -278 -2% z=-131.4
canvas-mouse-sweep: event listeners -151 -184 +22% z=-46.2
canvas-zoom-sweep: avg frame time 17ms 17ms -0% z=-0.3
canvas-zoom-sweep: p95 frame time 17ms 17ms +1%
canvas-zoom-sweep: layout duration 1ms 1ms +4% z=-0.1
canvas-zoom-sweep: style recalc duration 17ms 17ms -0% z=-1.7
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 30 31 +2% z=-1.7
canvas-zoom-sweep: task duration 381ms 364ms -4% z=1.6
canvas-zoom-sweep: script duration 11ms 10ms -10% z=-5.8
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 62.7 MB 62.7 MB +0%
canvas-zoom-sweep: DOM nodes 76 76 -1% z=-4.7
canvas-zoom-sweep: event listeners 19 19 +0% z=-0.9
dom-widget-clipping: avg frame time 17ms 17ms -0% z=-0.2
dom-widget-clipping: p95 frame time 17ms 17ms -0%
dom-widget-clipping: layout duration 0ms 0ms +0%
dom-widget-clipping: style recalc duration 7ms 8ms +7% z=-2.6
dom-widget-clipping: layout count 0 0 +0%
dom-widget-clipping: style recalc count 10 12 +20% z=-2.2
dom-widget-clipping: task duration 390ms 362ms -7% z=-0.2
dom-widget-clipping: script duration 58ms 50ms -13% z=-5.3
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 69.8 MB 69.3 MB -1%
dom-widget-clipping: DOM nodes 16 20 +25% z=-1.5
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 8ms 7ms -1% z=-4.5
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 8 9 +13% z=-8.3
large-graph-idle: task duration 651ms 612ms -6% z=1.3
large-graph-idle: script duration 19ms 15ms -21% z=-8.3
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 63.8 MB 84.7 MB +33%
large-graph-idle: DOM nodes -282 -281 -0% z=-338.2
large-graph-idle: event listeners -179 -178 -1% z=-33.5
large-graph-pan: avg frame time 17ms 17ms +0% z=0.3
large-graph-pan: p95 frame time 17ms 17ms +1%
large-graph-pan: layout duration 0ms 0ms +0%
large-graph-pan: style recalc duration 16ms 15ms -4% z=-2.7
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 1393ms 1155ms -17% z=1.7
large-graph-pan: script duration 376ms 323ms -14% z=-4.3
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 68.5 MB 69.0 MB +1%
large-graph-pan: DOM nodes -280 -258 -8% z=-167.9
large-graph-pan: event listeners -149 -147 -1% z=-183.5
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 -15%
large-graph-zoom: style recalc duration 16ms 14ms -12%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 64 65 +2%
large-graph-zoom: task duration 1601ms 1356ms -15%
large-graph-zoom: script duration 429ms 366ms -15%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 73.8 MB 61.8 MB -16%
large-graph-zoom: DOM nodes -286 -288 +1%
large-graph-zoom: event listeners -151 -184 +22%
legacy-node-drag: avg frame time 17ms 17ms -0%
legacy-node-drag: p95 frame time 17ms 17ms -0%
legacy-node-drag: layout duration 0ms 0ms +0%
legacy-node-drag: style recalc duration 11ms 11ms +2%
legacy-node-drag: layout count 0 0 +0%
legacy-node-drag: style recalc count 46 47 +1%
legacy-node-drag: task duration 1569ms 1435ms -9%
legacy-node-drag: script duration 498ms 444ms -11%
legacy-node-drag: TBT 0ms 0ms +0%
legacy-node-drag: heap used 86.0 MB 64.1 MB -25%
legacy-node-drag: DOM nodes 12 -117 -1075%
legacy-node-drag: event listeners 186 109 -42%
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 7ms -23% z=-3.1
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 8 8 -6% z=-3.0
minimap-idle: task duration 701ms 628ms -10% ⚠️ z=2.1
minimap-idle: script duration 18ms 13ms -28% z=-8.6
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 70.8 MB 66.1 MB -7%
minimap-idle: DOM nodes -279 -280 +0% z=-218.3
minimap-idle: event listeners -147 -162 +10% z=-252.3
subgraph-dom-widget-clipping: avg frame time 17ms 17ms +0% z=-0.4
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 10ms 10ms -7% z=-3.3
subgraph-dom-widget-clipping: layout count 0 0 +0%
subgraph-dom-widget-clipping: style recalc count 45 47 +3% z=-2.5
subgraph-dom-widget-clipping: task duration 418ms 372ms -11% z=-0.4
subgraph-dom-widget-clipping: script duration 124ms 113ms -9% z=-2.4
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 70.7 MB 70.8 MB +0%
subgraph-dom-widget-clipping: DOM nodes 16 19 +19% z=-2.8
subgraph-dom-widget-clipping: event listeners 8 8 +0% z=-1.4
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 8ms 11ms +38% z=0.2
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 8 10 +19% z=-2.1
subgraph-idle: task duration 508ms 501ms -1% ⚠️ z=4.2
subgraph-idle: script duration 8ms 8ms -1% z=-4.7
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 70.0 MB 62.2 MB -11%
subgraph-idle: DOM nodes -282 -281 -1% z=-202.2
subgraph-idle: event listeners -181 -182 +1% 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 -12% z=-1.5
subgraph-mouse-sweep: style recalc duration 42ms 34ms -19% z=-2.5
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 75 76 +1% z=-2.4
subgraph-mouse-sweep: task duration 947ms 778ms -18% z=0.2
subgraph-mouse-sweep: script duration 94ms 76ms -20% z=-3.8
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 63.5 MB 54.5 MB -14%
subgraph-mouse-sweep: DOM nodes -282 -280 -1% z=-155.3
subgraph-mouse-sweep: event listeners -183 -151 -17% variance too high
subgraph-transition-enter: avg frame time 17ms 17ms +0%
subgraph-transition-enter: p95 frame time 17ms 17ms +0%
subgraph-transition-enter: layout duration 13ms 15ms +13%
subgraph-transition-enter: style recalc duration 32ms 28ms -13%
subgraph-transition-enter: layout count 13 13 +0%
subgraph-transition-enter: style recalc count 18 18 +0%
subgraph-transition-enter: task duration 950ms 878ms -8%
subgraph-transition-enter: script duration 21ms 16ms -21%
subgraph-transition-enter: TBT 155ms 129ms -17%
subgraph-transition-enter: heap used 99.4 MB 91.7 MB -8%
subgraph-transition-enter: DOM nodes 13673 13673 +0%
subgraph-transition-enter: event listeners 2373 2375 +0%
viewport-pan-sweep: avg frame time 17ms 17ms +0%
viewport-pan-sweep: p95 frame time 17ms 17ms +1%
viewport-pan-sweep: layout duration 0ms 0ms +0%
viewport-pan-sweep: style recalc duration 44ms 36ms -19%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 250 250 +0%
viewport-pan-sweep: task duration 4687ms 4098ms -13%
viewport-pan-sweep: script duration 1178ms 1040ms -12%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 73.8 MB 83.0 MB +13%
viewport-pan-sweep: DOM nodes -280 -263 -6%
viewport-pan-sweep: event listeners -163 -148 -9%
vue-large-graph-idle: avg frame time 18ms 17ms -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 16908ms 14637ms -13%
vue-large-graph-idle: script duration 117ms 89ms -24%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 172.3 MB 173.2 MB +1%
vue-large-graph-idle: DOM nodes -8312 -8312 +0%
vue-large-graph-idle: event listeners -16389 -16392 +0%
vue-large-graph-pan: avg frame time 18ms 18ms -2%
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 23ms 17ms -28%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 171 161 -6%
vue-large-graph-pan: task duration 20859ms 17899ms -14%
vue-large-graph-pan: script duration 525ms 463ms -12%
vue-large-graph-pan: TBT 174ms 17ms -90%
vue-large-graph-pan: heap used 173.0 MB 165.4 MB -4%
vue-large-graph-pan: DOM nodes -8312 -8312 +0%
vue-large-graph-pan: event listeners -16385 -16386 +0%
workflow-execution: avg frame time 17ms 17ms +0% z=0.1
workflow-execution: p95 frame time 17ms 17ms +0%
workflow-execution: layout duration 1ms 1ms +49% z=-2.6
workflow-execution: style recalc duration 21ms 19ms -10% z=-2.4
workflow-execution: layout count 3 3 +0% z=-3.6
workflow-execution: style recalc count 9 12 +33% z=-2.8
workflow-execution: task duration 114ms 96ms -15% z=-2.4
workflow-execution: script duration 8ms 6ms -21% z=-7.7
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 62.4 MB 63.1 MB +1%
workflow-execution: DOM nodes 119 128 +8% z=-4.6
workflow-execution: event listeners 51 61 +20% ⚠️ z=2.1
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-08-23T06:09:13.643Z",
  "gitSha": "441fcd8c2be2d9fc4f1c4f55f9ab0ed42a460f8e",
  "branch": "fix/resend-invite-layering",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2024.5780000000195,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 6.586999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 501.2559999999999,
      "heapDeltaBytes": 332520,
      "heapUsedBytes": 62354652,
      "domNodes": -282,
      "jsHeapTotalBytes": 4448256,
      "scriptDurationMs": 7.218000000000001,
      "eventListeners": -181,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2017.0630000000074,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.539999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 503.68199999999996,
      "heapDeltaBytes": 20004060,
      "heapUsedBytes": 81720496,
      "domNodes": -282,
      "jsHeapTotalBytes": 4448256,
      "scriptDurationMs": 8.332,
      "eventListeners": -151,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2111.507999999986,
      "styleRecalcs": 79,
      "styleRecalcDurationMs": 54.226,
      "layouts": 12,
      "layoutDurationMs": 3.8579999999999997,
      "taskDurationMs": 1043.854,
      "heapDeltaBytes": 10038044,
      "heapUsedBytes": 72212900,
      "domNodes": -276,
      "jsHeapTotalBytes": 5758976,
      "scriptDurationMs": 106.601,
      "eventListeners": -185,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1794.6590000000242,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 32.938,
      "layouts": 12,
      "layoutDurationMs": 3.3819999999999997,
      "taskDurationMs": 848.838,
      "heapDeltaBytes": 8983060,
      "heapUsedBytes": 71586136,
      "domNodes": -279,
      "jsHeapTotalBytes": 5758976,
      "scriptDurationMs": 99.19699999999999,
      "eventListeners": -183,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1724.9889999999937,
      "styleRecalcs": 30,
      "styleRecalcDurationMs": 16.460999999999995,
      "layouts": 6,
      "layoutDurationMs": 0.6629999999999999,
      "taskDurationMs": 360.47200000000004,
      "heapDeltaBytes": 3261420,
      "heapUsedBytes": 65868184,
      "domNodes": 76,
      "jsHeapTotalBytes": 4718592,
      "scriptDurationMs": 9.134,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1717.8199999999606,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 16.598000000000003,
      "layouts": 6,
      "layoutDurationMs": 0.6100000000000001,
      "taskDurationMs": 367.80400000000003,
      "heapDeltaBytes": 3256240,
      "heapUsedBytes": 65723740,
      "domNodes": 75,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 10.449000000000002,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 618.504999999999,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 6.931,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 374.40000000000003,
      "heapDeltaBytes": 9806784,
      "heapUsedBytes": 72098552,
      "domNodes": 18,
      "jsHeapTotalBytes": 4980736,
      "scriptDurationMs": 51.477,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 559.8919999999907,
      "styleRecalcs": 13,
      "styleRecalcDurationMs": 8.705,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 348.92400000000004,
      "heapDeltaBytes": 10817260,
      "heapUsedBytes": 73338636,
      "domNodes": 22,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 49.522,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2022.3470000000248,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.177,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 607.151,
      "heapDeltaBytes": 12930848,
      "heapUsedBytes": 88751000,
      "domNodes": -284,
      "jsHeapTotalBytes": 3928064,
      "scriptDurationMs": 13.562999999999999,
      "eventListeners": -177,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2022.2009999999955,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 7.752999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 616.614,
      "heapDeltaBytes": 12884256,
      "heapUsedBytes": 88789460,
      "domNodes": -278,
      "jsHeapTotalBytes": 3403776,
      "scriptDurationMs": 15.855999999999995,
      "eventListeners": -179,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2135.1420000000303,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 12.786999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1160.861,
      "heapDeltaBytes": -5768992,
      "heapUsedBytes": 71878308,
      "domNodes": -278,
      "jsHeapTotalBytes": -565248,
      "scriptDurationMs": 323.256,
      "eventListeners": -147,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2149.836999999934,
      "styleRecalcs": 70,
      "styleRecalcDurationMs": 17.433999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1148.747,
      "heapDeltaBytes": -4801488,
      "heapUsedBytes": 72853068,
      "domNodes": -238,
      "jsHeapTotalBytes": -40960,
      "scriptDurationMs": 322.831,
      "eventListeners": -147,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3161.230000000046,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 14.177999999999995,
      "layouts": 60,
      "layoutDurationMs": 7.414000000000001,
      "taskDurationMs": 1355.0680000000002,
      "heapDeltaBytes": -13218664,
      "heapUsedBytes": 64770668,
      "domNodes": -288,
      "jsHeapTotalBytes": 3928064,
      "scriptDurationMs": 368.11699999999996,
      "eventListeners": -185,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3136.6859999999406,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 14.354000000000003,
      "layouts": 60,
      "layoutDurationMs": 7.615,
      "taskDurationMs": 1356.185,
      "heapDeltaBytes": -12884928,
      "heapUsedBytes": 64853020,
      "domNodes": -288,
      "jsHeapTotalBytes": 5500928,
      "scriptDurationMs": 363.00300000000004,
      "eventListeners": -183,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2217.1150000000353,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 12.728999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1467.8850000000002,
      "heapDeltaBytes": -20478528,
      "heapUsedBytes": 64215764,
      "domNodes": -248,
      "jsHeapTotalBytes": 5763072,
      "scriptDurationMs": 446.84100000000007,
      "eventListeners": 31,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2176.364000000035,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 10.132000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1401.613,
      "heapDeltaBytes": -14938652,
      "heapUsedBytes": 70278044,
      "domNodes": 14,
      "jsHeapTotalBytes": 8163328,
      "scriptDurationMs": 441.37800000000004,
      "eventListeners": 186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2061.3109999999892,
      "styleRecalcs": 7,
      "styleRecalcDurationMs": 6.128999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 635.51,
      "heapDeltaBytes": -10898024,
      "heapUsedBytes": 73962028,
      "domNodes": -276,
      "jsHeapTotalBytes": 4452352,
      "scriptDurationMs": 12.898,
      "eventListeners": -147,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2029.9219999999423,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.973999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 621.3029999999999,
      "heapDeltaBytes": -13277136,
      "heapUsedBytes": 64565420,
      "domNodes": -283,
      "jsHeapTotalBytes": 3141632,
      "scriptDurationMs": 13.857999999999999,
      "eventListeners": -177,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 563.9590000000112,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 9.438,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 370.513,
      "heapDeltaBytes": 11465696,
      "heapUsedBytes": 74006168,
      "domNodes": 18,
      "jsHeapTotalBytes": 5242880,
      "scriptDurationMs": 115.34400000000001,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 559.2690000000857,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 9.671,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 372.83299999999997,
      "heapDeltaBytes": 11823656,
      "heapUsedBytes": 74454052,
      "domNodes": 20,
      "jsHeapTotalBytes": 4980736,
      "scriptDurationMs": 110.52000000000001,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2016.963999999973,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 6.646000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 493.14599999999996,
      "heapDeltaBytes": 2415708,
      "heapUsedBytes": 65206472,
      "domNodes": -281,
      "jsHeapTotalBytes": 4448256,
      "scriptDurationMs": 7.802,
      "eventListeners": -183,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2042.0060000000149,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 14.48,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 509.58899999999994,
      "heapDeltaBytes": 2399120,
      "heapUsedBytes": 65220068,
      "domNodes": -280,
      "jsHeapTotalBytes": 4448256,
      "scriptDurationMs": 7.650999999999998,
      "eventListeners": -181,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1717.2669999999925,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 33.181999999999995,
      "layouts": 16,
      "layoutDurationMs": 3.9699999999999998,
      "taskDurationMs": 774.5079999999999,
      "heapDeltaBytes": -5302228,
      "heapUsedBytes": 57195744,
      "domNodes": -281,
      "jsHeapTotalBytes": 4972544,
      "scriptDurationMs": 75.944,
      "eventListeners": -151,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1724.7540000000186,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 35.421,
      "layouts": 16,
      "layoutDurationMs": 4.47,
      "taskDurationMs": 781.551,
      "heapDeltaBytes": -5162252,
      "heapUsedBytes": 57082016,
      "domNodes": -279,
      "jsHeapTotalBytes": 4448256,
      "scriptDurationMs": 75.58999999999999,
      "eventListeners": -151,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 1383.3239999999591,
      "styleRecalcs": 18,
      "styleRecalcDurationMs": 28.041999999999998,
      "layouts": 13,
      "layoutDurationMs": 15.086999999999998,
      "taskDurationMs": 878.4809999999999,
      "heapDeltaBytes": -2153168,
      "heapUsedBytes": 96155804,
      "domNodes": 13673,
      "jsHeapTotalBytes": 13631488,
      "scriptDurationMs": 16.496999999999996,
      "eventListeners": 2375,
      "totalBlockingTimeMs": 129,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8160.686999999996,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 35.754999999999995,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4103.549,
      "heapDeltaBytes": 5820556,
      "heapUsedBytes": 82597284,
      "domNodes": -242,
      "jsHeapTotalBytes": -303104,
      "scriptDurationMs": 1045.3349999999998,
      "eventListeners": -133,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8196.282999999994,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 35.382000000000005,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4091.761,
      "heapDeltaBytes": 15586708,
      "heapUsedBytes": 91532564,
      "domNodes": -284,
      "jsHeapTotalBytes": 4677632,
      "scriptDurationMs": 1035.244,
      "eventListeners": -163,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 15243.63199999999,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14617.789999999999,
      "heapDeltaBytes": -51047968,
      "heapUsedBytes": 180885476,
      "domNodes": -8312,
      "jsHeapTotalBytes": -22835200,
      "scriptDurationMs": 93.148,
      "eventListeners": -16391,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.220000000000073,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 15319.991999999957,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14655.703,
      "heapDeltaBytes": -48895744,
      "heapUsedBytes": 182376464,
      "domNodes": -8312,
      "jsHeapTotalBytes": -10248192,
      "scriptDurationMs": 85.142,
      "eventListeners": -16393,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 18251.627999999982,
      "styleRecalcs": 159,
      "styleRecalcDurationMs": 16.596,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17834.702999999998,
      "heapDeltaBytes": -39672008,
      "heapUsedBytes": 172842828,
      "domNodes": -8312,
      "jsHeapTotalBytes": -18391040,
      "scriptDurationMs": 464.447,
      "eventListeners": -16387,
      "totalBlockingTimeMs": 15,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 18440.58199999995,
      "styleRecalcs": 162,
      "styleRecalcDurationMs": 17.342999999999996,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 17963.059999999998,
      "heapDeltaBytes": -46652212,
      "heapUsedBytes": 174080004,
      "domNodes": -8312,
      "jsHeapTotalBytes": -21368832,
      "scriptDurationMs": 461.66499999999996,
      "eventListeners": -16385,
      "totalBlockingTimeMs": 19,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 481.20499999998856,
      "styleRecalcs": 16,
      "styleRecalcDurationMs": 23.415,
      "layouts": 4,
      "layoutDurationMs": 1.378,
      "taskDurationMs": 116.42899999999999,
      "heapDeltaBytes": 4976728,
      "heapUsedBytes": 67449544,
      "domNodes": 128,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 7.3500000000000005,
      "eventListeners": 97,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "workflow-execution",
      "durationMs": 116.80300000000443,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 14.375,
      "layouts": 2,
      "layoutDurationMs": 0.959,
      "taskDurationMs": 76.37799999999999,
      "heapDeltaBytes": 3020804,
      "heapUsedBytes": 64917116,
      "domNodes": 128,
      "jsHeapTotalBytes": 262144,
      "scriptDurationMs": 5.4079999999999995,
      "eventListeners": 25,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66666666666665,
      "p95FrameDurationMs": 16.700000000000728
    }
  ]
}

@github-actions github-actions Bot added the risk:R2 PR risk grade (advisory shadow check; grader-owned) label Aug 23, 2026
@christian-byrne christian-byrne self-assigned this Aug 23, 2026
@codecov

codecov Bot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/platform/workspace/api/workspaceApi.ts 50.00% 2 Missing ⚠️
@@            Coverage Diff             @@
##             main   #15676      +/-   ##
==========================================
- Coverage   81.31%   80.00%   -1.32%     
==========================================
  Files        1873     1873              
  Lines      106745   112576    +5831     
  Branches    33400    35204    +1804     
==========================================
+ Hits        86802    90064    +3262     
- Misses      19597    22051    +2454     
- Partials      346      461     +115     
Flag Coverage Δ
e2e 67.41% <50.00%> (+0.75%) ⬆️

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

Files with missing lines Coverage Δ
.../platform/workspace/composables/useMembersPanel.ts 96.12% <ø> (ø)
src/platform/workspace/api/workspaceApi.ts 66.14% <50.00%> (-20.17%) ⬇️

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

@datadog-official

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 2 Pipeline jobs failed

CI: Tests Unit | test

View in Datadog · View in GitHub Actions

1 failed test. Error: No "createI18n" export is defined on the "vue-i18n" mock at src/i18n.ts:295:21.

Check AI Co-Authors | Check for AI agent co-author trailers

View in Datadog · View in GitHub Actions

AI agent Co-authored-by trailers detected in PR commits. Remove trailers to merge.

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 07008be | Docs | View more details | Give us feedback!

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

Labels

risk:R2 PR risk grade (advisory shadow check; grader-owned) size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants