Skip to content

fix(billing): don't show an error when a checkout is superseded - #14705

Merged
wei-hai merged 4 commits into
mainfrom
fix/superseded-checkout-error-toast
Aug 4, 2026
Merged

fix(billing): don't show an error when a checkout is superseded#14705
wei-hai merged 4 commits into
mainfrom
fix/superseded-checkout-error-toast

Conversation

@wei-hai

@wei-hai wei-hai commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

What and why

Picking a different plan part-way through checkout makes the API replace the pending subscription operation with a new one. The replaced operation terminates as failed — it never completed — even though nothing actually went wrong. The store treated that like any other failure and showed "We couldn't update your subscription. Please try again." while the replacement checkout was still running and about to succeed.

Users hit this by starting a subscription, changing their mind, and picking a different plan: an error toast, immediately followed by a working subscription.

The change

handleFailure now recognises the API's checkout_superseded failure reason and skips the error toast for it. The operation is still recorded as failed and still resolves normally — only the user-facing alarm goes away.

The failure is also reported as stale_operation instead of unknown, so a routine plan switch stops inflating the count of unexplained billing failures. stale_operation is an existing category; no telemetry types changed.

Takes effect once the API returns checkout_superseded for a replaced checkout.

Scope

One if and one telemetry value. Deliberately narrow:

  • Genuine subscription failures still toast exactly as before.
  • Top-up and cancel paths are untouched.
  • The success path already ignores stale operations (it checks the active checkout id before advancing), so it needed no change.

Verification

  • vitest run src/platform/workspace/stores/billingOperationStore.test.ts src/platform/workspace/composables/useSubscriptionCheckout.test.ts --coverage — 144 passed, run with coverage to match CI.
  • New regression test: a superseded operation raises no error toast and reports stale_operation.
  • pnpm typecheck, oxfmt --check, eslint — all clean.

🤖 Generated with Claude Code

Picking a different plan mid-checkout makes the API replace the pending
subscription operation. The replaced operation terminates as failed even
though nothing went wrong, so the user saw "We couldn't update your
subscription" while the replacement checkout was still succeeding.

Suppress the error toast for that case, keyed on the API's
`checkout_superseded` reason, and report it as `stale_operation` rather
than `unknown` so it stops counting as an unexplained billing failure.
Genuine failures are unaffected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@wei-hai
wei-hai requested a review from a team August 4, 2026 19:52
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Aug 4, 2026
@dosubot

dosubot Bot commented Aug 4, 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-09-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 Aug 4, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 08/04/2026, 08:41:19 PM UTC

Links

🎭 Playwright: ✅ 1782 passed, 0 failed · 4 flaky

📊 Browser Reports
  • chromium: View Report (✅ 1761 / ❌ 0 / ⚠️ 4 / ⏭️ 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.25 MB gzip 🔴 +149 B

Details

Summary

  • Raw size: 34.7 MB baseline 34.7 MB — 🔴 +219 B
  • Gzip: 8.25 MB baseline 8.25 MB — 🔴 +149 B
  • Brotli: 5.71 MB baseline 5.71 MB — 🔴 +43 B
  • Bundles: 427 current • 427 baseline • 144 added / 144 removed

Category Glance
Data & Services 🔴 +219 B (3.47 MB) · Vendor & Third-Party ⚪ 0 B (15.7 MB) · Other ⚪ 0 B (12.8 MB) · Graph Workspace ⚪ 0 B (1.35 MB) · Panels & Settings ⚪ 0 B (551 kB) · Utilities & Hooks ⚪ 0 B (386 kB) · + 5 more

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

Main entry bundles and manifests

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

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-D-3zSOVm.js (removed) 1.35 MB 🟢 -1.35 MB 🟢 -294 kB 🟢 -221 kB
assets/GraphView-DijKS4HB.js (new) 1.35 MB 🔴 +1.35 MB 🔴 +294 kB 🔴 +221 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-CvWfHHjK.js (removed) 24.9 kB 🟢 -24.9 kB 🟢 -6.22 kB 🟢 -5.5 kB
assets/CloudSurveyView-YxuaJgqz.js (new) 24.9 kB 🔴 +24.9 kB 🔴 +6.22 kB 🔴 +5.5 kB
assets/CloudLoginView-C4mHQE3E.js (new) 11.6 kB 🔴 +11.6 kB 🔴 +3.11 kB 🔴 +2.73 kB
assets/CloudLoginView-DwHFADMG.js (removed) 11.6 kB 🟢 -11.6 kB 🟢 -3.11 kB 🟢 -2.73 kB
assets/CloudSignupView-C6oc5YTV.js (removed) 9.9 kB 🟢 -9.9 kB 🟢 -2.77 kB 🟢 -2.43 kB
assets/CloudSignupView-D3i8Uds-.js (new) 9.9 kB 🔴 +9.9 kB 🔴 +2.78 kB 🔴 +2.42 kB
assets/CloudLayoutView-CRvOD7s3.js (removed) 9.48 kB 🟢 -9.48 kB 🟢 -2.31 kB 🟢 -2 kB
assets/CloudLayoutView-CviwEw1e.js (new) 9.48 kB 🔴 +9.48 kB 🔴 +2.31 kB 🔴 +2 kB
assets/UserCheckView-DptTbcqx.js (new) 8.75 kB 🔴 +8.75 kB 🔴 +2.19 kB 🔴 +1.9 kB
assets/UserCheckView-q1kzJLmk.js (removed) 8.75 kB 🟢 -8.75 kB 🟢 -2.19 kB 🟢 -1.9 kB
assets/WidgetTextPreview-Dhdy1wlA.js (removed) 6.07 kB 🟢 -6.07 kB 🟢 -2.13 kB 🟢 -1.89 kB
assets/WidgetTextPreview-DxmcQh-e.js (new) 6.07 kB 🔴 +6.07 kB 🔴 +2.13 kB 🔴 +1.89 kB
assets/CloudSubscriptionRedirectView-w-vUy9Jw.js (removed) 5.99 kB 🟢 -5.99 kB 🟢 -2.23 kB 🟢 -1.94 kB
assets/CloudSubscriptionRedirectView-W5xb3HBU.js (new) 5.99 kB 🔴 +5.99 kB 🔴 +2.23 kB 🔴 +1.94 kB
assets/UserSelectView-Bv36wenC.js (new) 5.49 kB 🔴 +5.49 kB 🔴 +1.96 kB 🔴 +1.72 kB
assets/UserSelectView-Qf8rw_ly.js (removed) 5.49 kB 🟢 -5.49 kB 🟢 -1.96 kB 🟢 -1.72 kB
assets/CloudForgotPasswordView-B08huq90.js (removed) 5.09 kB 🟢 -5.09 kB 🟢 -1.73 kB 🟢 -1.51 kB
assets/CloudForgotPasswordView-CcDJBkfv.js (new) 5.09 kB 🔴 +5.09 kB 🔴 +1.73 kB 🔴 +1.51 kB
assets/CloudAuthTimeoutView-BOwExRwb.js (removed) 4.43 kB 🟢 -4.43 kB 🟢 -1.54 kB 🟢 -1.34 kB
assets/CloudAuthTimeoutView-BtMUGElh.js (new) 4.43 kB 🔴 +4.43 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/OAuthLayoutView-DxrRVNDM.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +699 B 🔴 +594 B
assets/OAuthLayoutView-ToFXidCO.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -700 B 🟢 -595 B
assets/WidgetTextPreview-CrOjM9J5.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +94 B
assets/WidgetTextPreview-Vk4e__Vs.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -88 B

Status: 12 added / 12 removed / 4 unchanged

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-DPt_XJtz.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.95 kB 🟢 -8.81 kB
assets/KeybindingPanel-xGjoczVU.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.95 kB 🔴 +8.81 kB
assets/SecretsPanel-CHWxbQAS.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +7.86 kB 🔴 +6.89 kB
assets/SecretsPanel-n-DKk3co.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -7.86 kB 🟢 -6.9 kB
assets/CreditsPanel-DDCNqD-E.js (removed) 15.9 kB 🟢 -15.9 kB 🟢 -4.63 kB 🟢 -4.07 kB
assets/CreditsPanel-DgJMujyI.js (new) 15.9 kB 🔴 +15.9 kB 🔴 +4.63 kB 🔴 +4.07 kB
assets/SubscriptionPanel-CWXSkqQo.js (new) 11.5 kB 🔴 +11.5 kB 🔴 +3.65 kB 🔴 +3.2 kB
assets/SubscriptionPanel-Dej0jEaI.js (removed) 11.5 kB 🟢 -11.5 kB 🟢 -3.65 kB 🟢 -3.19 kB
assets/AboutPanel-0DMYkPiL.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.03 kB 🔴 +2.71 kB
assets/AboutPanel-nuGQOQ4E.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.03 kB 🟢 -2.71 kB
assets/ExtensionPanel-Bplb5UFy.js (new) 9.19 kB 🔴 +9.19 kB 🔴 +2.51 kB 🔴 +2.23 kB
assets/ExtensionPanel-DzQd6wkm.js (removed) 9.19 kB 🟢 -9.19 kB 🟢 -2.51 kB 🟢 -2.23 kB
assets/ServerConfigPanel-BbaUxHfD.js (new) 6.09 kB 🔴 +6.09 kB 🔴 +1.94 kB 🔴 +1.73 kB
assets/ServerConfigPanel-BFxGZ9Md.js (removed) 6.09 kB 🟢 -6.09 kB 🟢 -1.94 kB 🟢 -1.72 kB
assets/UserPanel-6hbd-Xe8.js (removed) 5.73 kB 🟢 -5.73 kB 🟢 -1.78 kB 🟢 -1.55 kB
assets/UserPanel-CBK_84qY.js (new) 5.73 kB 🔴 +5.73 kB 🔴 +1.78 kB 🔴 +1.55 kB
assets/refreshRemoteConfig-CU-4Yg8B.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -1.26 kB 🟢 -1.11 kB
assets/refreshRemoteConfig-DcJzhxOZ.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +1.25 kB 🔴 +1.11 kB
assets/cloudRemoteConfig-h3UPxFiM.js (removed) 933 B 🟢 -933 B 🟢 -504 B 🟢 -417 B
assets/cloudRemoteConfig-VHfgGH9L.js (new) 933 B 🔴 +933 B 🔴 +505 B 🔴 +414 B
assets/refreshRemoteConfig-8-gIQaFP.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +85 B
assets/refreshRemoteConfig-CCJ7VoND.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -83 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-DCr1FJ4Q.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +4.15 kB 🔴 +3.62 kB
assets/SignUpForm-DEhhra4t.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -4.15 kB 🟢 -3.62 kB
assets/auth-B4-hK2X6.js (removed) 3.65 kB 🟢 -3.65 kB 🟢 -1.27 kB 🟢 -1.09 kB
assets/auth-DeA-ofYS.js (new) 3.65 kB 🔴 +3.65 kB 🔴 +1.27 kB 🔴 +1.09 kB
assets/usePostAuthRedirect-D__cElha.js (new) 3.28 kB 🔴 +3.28 kB 🔴 +1.24 kB 🔴 +1.08 kB
assets/usePostAuthRedirect-D_Hb2ZVk.js (removed) 3.28 kB 🟢 -3.28 kB 🟢 -1.24 kB 🟢 -1.08 kB
assets/UpdatePasswordContent-Bc5q9NKw.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -839 B 🟢 -725 B
assets/UpdatePasswordContent-foffUWBg.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +841 B 🔴 +727 B
assets/authStore-BVdlynsa.js (new) 128 B 🔴 +128 B 🔴 +104 B 🔴 +104 B
assets/authStore-BzPc9_IC.js (removed) 128 B 🟢 -128 B 🟢 -104 B 🟢 -104 B
assets/workspaceAuthStore-DIwBtkxw.js (new) 108 B 🔴 +108 B 🔴 +99 B 🔴 +110 B
assets/workspaceAuthStore-DpTkQu1k.js (removed) 108 B 🟢 -108 B 🟢 -99 B 🟢 -100 B
assets/auth-Bdcy9ujk.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -80 B
assets/auth-DFQ9mUCD.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +85 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-CN2rSfEg.js (removed) 90 kB 🟢 -90 kB 🟢 -19.2 kB 🟢 -16.5 kB
assets/ComfyHubPublishDialog-WRMLLQe8.js (new) 90 kB 🔴 +90 kB 🔴 +19.2 kB 🔴 +16.5 kB
assets/useShareDialog-Cgla54TK.js (removed) 23.9 kB 🟢 -23.9 kB 🟢 -5.69 kB 🟢 -5.03 kB
assets/useShareDialog-DcQqTeTA.js (new) 23.9 kB 🔴 +23.9 kB 🔴 +5.7 kB 🔴 +5.03 kB
assets/feedbackDialog-C6mPhUrD.js (removed) 4.45 kB 🟢 -4.45 kB 🟢 -1.87 kB 🟢 -1.59 kB
assets/feedbackDialog-DzRWM5aD.js (new) 4.45 kB 🔴 +4.45 kB 🔴 +1.87 kB 🔴 +1.6 kB
assets/useRangeEditor-Brb8BB5T.js (removed) 3.23 kB 🟢 -3.23 kB 🟢 -1.13 kB 🟢 -1.04 kB
assets/useRangeEditor-Cd0GRjml.js (new) 3.23 kB 🔴 +3.23 kB 🔴 +1.13 kB 🔴 +1.05 kB
assets/ComfyHubPublishDialog-BMkswbmw.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -90 B
assets/ComfyHubPublishDialog-CpUxgNva.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +88 B
assets/useSubscriptionDialog-BFmn5feP.js (removed) 108 B 🟢 -108 B 🟢 -102 B 🟢 -96 B
assets/useSubscriptionDialog-tyY-Yda3.js (new) 108 B 🔴 +108 B 🔴 +102 B 🔴 +91 B

Status: 6 added / 6 removed / 1 unchanged

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-8kU_MnzF.js (new) 13.5 kB 🔴 +13.5 kB 🔴 +3.73 kB 🔴 +3.31 kB
assets/ComfyQueueButton-Y4789sBM.js (removed) 13.5 kB 🟢 -13.5 kB 🟢 -3.73 kB 🟢 -3.31 kB
assets/useTerminalTabs-D6_rLO7C.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.69 kB 🟢 -3.27 kB
assets/useTerminalTabs-MeFfDB-X.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.69 kB 🔴 +3.27 kB
assets/InviteMembersForm-Cd2XsXju.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.65 kB 🔴 +2.36 kB
assets/InviteMembersForm-CvWFvsZG.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.65 kB 🟢 -2.35 kB
assets/SubscribeButton-DEhyJMgL.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +956 B 🔴 +835 B
assets/SubscribeButton-kEdcTslW.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -955 B 🟢 -834 B
assets/cloudFeedbackTopbarButton-BkJTzZPN.js (removed) 705 B 🟢 -705 B 🟢 -421 B 🟢 -360 B
assets/cloudFeedbackTopbarButton-MM44cViS.js (new) 705 B 🔴 +705 B 🔴 +424 B 🔴 +360 B
assets/ComfyQueueButton-2shm-EbS.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -90 B
assets/ComfyQueueButton-DpTpxL9m.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +90 B

Status: 6 added / 6 removed / 9 unchanged

Data & Services — 3.47 MB (baseline 3.47 MB) • 🔴 +219 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settingStore-C28NpB5E.js (new) 3.2 MB 🔴 +3.2 MB 🔴 +739 kB 🔴 +557 kB
assets/settingStore-Cs_Fw-vv.js (removed) 3.2 MB 🟢 -3.2 MB 🟢 -739 kB 🟢 -557 kB
assets/load3dService-DHH_k-ga.js (removed) 132 kB 🟢 -132 kB 🟢 -29.2 kB 🟢 -24.6 kB
assets/load3dService-pYSxi-QL.js (new) 132 kB 🔴 +132 kB 🔴 +29.3 kB 🔴 +24.6 kB
assets/api-AU6VApkD.js (new) 97.1 kB 🔴 +97.1 kB 🔴 +26.8 kB 🔴 +23 kB
assets/api-TKjUYPQH.js (removed) 97.1 kB 🟢 -97.1 kB 🟢 -26.8 kB 🟢 -23 kB
assets/workflowShareService-BwXZdB6N.js (new) 16.4 kB 🔴 +16.4 kB 🔴 +4.89 kB 🔴 +4.34 kB
assets/workflowShareService-DMIp_P_i.js (removed) 16.4 kB 🟢 -16.4 kB 🟢 -4.89 kB 🟢 -4.34 kB
assets/keybindingService-BQjsi7ON.js (removed) 7.16 kB 🟢 -7.16 kB 🟢 -1.83 kB 🟢 -1.6 kB
assets/keybindingService-CKWgbaE_.js (new) 7.16 kB 🔴 +7.16 kB 🔴 +1.84 kB 🔴 +1.6 kB
assets/releaseStore-CqlzQyfl.js (new) 6.72 kB 🔴 +6.72 kB 🔴 +2.03 kB 🔴 +1.77 kB
assets/releaseStore-uXvdQVwW.js (removed) 6.72 kB 🟢 -6.72 kB 🟢 -2.02 kB 🟢 -1.77 kB
assets/systemStatsStore-BBKwvPoc.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.74 kB 🔴 +1.47 kB
assets/systemStatsStore-BV4zeCis.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.74 kB 🟢 -1.47 kB
assets/userStore-DbEtWejd.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +898 B 🔴 +795 B
assets/userStore-DwSmw7il.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -898 B 🟢 -795 B
assets/audioService-CdZ4iTpW.js (new) 1.71 kB 🔴 +1.71 kB 🔴 +828 B 🔴 +721 B
assets/audioService-CSZkPWuH.js (removed) 1.71 kB 🟢 -1.71 kB 🟢 -831 B 🟢 -721 B
assets/dialogService-BfOGtHTj.js (new) 98 B 🔴 +98 B 🔴 +97 B 🔴 +82 B
assets/dialogService-iXd3Bf2j.js (removed) 98 B 🟢 -98 B 🟢 -97 B 🟢 -85 B
assets/releaseStore-DNyB_35H.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -91 B
assets/releaseStore-LRmLchPk.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +84 B
assets/settingStore-Bx-KeXd4.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -82 B
assets/settingStore-CVMTOcn5.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +90 B
assets/assetsStore-B3GWJJiP.js (new) 94 B 🔴 +94 B 🔴 +92 B 🔴 +86 B
assets/assetsStore-KLmGpyGn.js (removed) 94 B 🟢 -94 B 🟢 -92 B 🟢 -85 B
assets/api-7f7XBMOW.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B
assets/api-a-RSmK0l.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-501STcBm.js (removed) 235 kB 🟢 -235 kB 🟢 -52.5 kB 🟢 -42.7 kB
assets/useConflictDetection-BpnRsKzy.js (new) 235 kB 🔴 +235 kB 🔴 +52.5 kB 🔴 +42.7 kB
assets/useLoad3d-CmLJ3Pv7.js (removed) 25.7 kB 🟢 -25.7 kB 🟢 -5.79 kB 🟢 -5.13 kB
assets/useLoad3d-D4akBjx8.js (new) 25.7 kB 🔴 +25.7 kB 🔴 +5.8 kB 🔴 +5.13 kB
assets/useLoad3dViewer-BB18EQtA.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +4.98 kB 🔴 +4.36 kB
assets/useLoad3dViewer-D3iDaA9y.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -4.98 kB 🟢 -4.37 kB
assets/useImageCrop-CVPU0T9M.js (new) 15 kB 🔴 +15 kB 🔴 +3.42 kB 🔴 +2.98 kB
assets/useImageCrop-D5fGcU38.js (removed) 15 kB 🟢 -15 kB 🟢 -3.42 kB 🟢 -2.99 kB
assets/useDowngradeToPersonal-CLXBtOr-.js (new) 8.85 kB 🔴 +8.85 kB 🔴 +2.54 kB 🔴 +2.17 kB
assets/useDowngradeToPersonal-QtHVRNZs.js (removed) 8.85 kB 🟢 -8.85 kB 🟢 -2.53 kB 🟢 -2.17 kB
assets/useFeatureFlags-BlbodadJ.js (new) 7.52 kB 🔴 +7.52 kB 🔴 +2.21 kB 🔴 +1.85 kB
assets/useFeatureFlags-CFne7ING.js (removed) 7.52 kB 🟢 -7.52 kB 🟢 -2.21 kB 🟢 -1.86 kB
assets/assetPreviewUtil-Cd-Of99G.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +972 B 🔴 +836 B
assets/assetPreviewUtil-DHtIEn5a.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -970 B 🟢 -835 B
assets/useUpstreamValue-Dzv-iUXZ.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -757 B 🟢 -675 B
assets/useUpstreamValue-oMJbclCV.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +760 B 🔴 +677 B
assets/useWorkspaceTierLabel-C84Pgirg.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -813 B 🟢 -698 B
assets/useWorkspaceTierLabel-CzHbyYuT.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +814 B 🔴 +698 B
assets/subscriptionCheckoutUtil-B19cdU8F.js (removed) 773 B 🟢 -773 B 🟢 -472 B 🟢 -406 B
assets/subscriptionCheckoutUtil-ITUQx2tB.js (new) 773 B 🔴 +773 B 🔴 +472 B 🔴 +406 B
assets/useSessionCookie-ByTIxXGA.js (new) 692 B 🔴 +692 B 🔴 +356 B 🔴 +311 B
assets/useSessionCookie-D0zVpVaL.js (removed) 692 B 🟢 -692 B 🟢 -355 B 🟢 -308 B
assets/useLoad3d-BaGoNFeO.js (removed) 311 B 🟢 -311 B 🟢 -165 B 🟢 -148 B
assets/useLoad3d-BumE_0a3.js (new) 311 B 🔴 +311 B 🔴 +164 B 🔴 +149 B
assets/useSessionCookie-C96C74uq.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -82 B
assets/useSessionCookie-DAW7QjZc.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +80 B
assets/useFeatureFlags-Bv59yzRg.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -83 B
assets/useFeatureFlags-DumKXDK_.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +79 B
assets/useLoad3dViewer-BKtW2aHs.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -85 B
assets/useLoad3dViewer-f6X3OlVt.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +85 B
assets/useCurrentUser-CLN0vCFo.js (new) 94 B 🔴 +94 B 🔴 +95 B 🔴 +97 B
assets/useCurrentUser-CmvaCjUE.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.8 MB (baseline 12.8 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-CWeBElCM.js (new) 111 kB 🔴 +111 kB 🔴 +28.7 kB 🔴 +24.3 kB
assets/core-DaAit9dM.js (removed) 111 kB 🟢 -111 kB 🟢 -28.7 kB 🟢 -24.3 kB
assets/WidgetSelect-BsYtuqdO.js (removed) 88.7 kB 🟢 -88.7 kB 🟢 -20.1 kB 🟢 -17.2 kB
assets/WidgetSelect-CF3e4_N7.js (new) 88.7 kB 🔴 +88.7 kB 🔴 +20.1 kB 🔴 +17.2 kB
assets/Load3D-_0YFnR3j.js (removed) 71.3 kB 🟢 -71.3 kB 🟢 -11.7 kB 🟢 -9.97 kB
assets/Load3D-CalXIBJ4.js (new) 71.3 kB 🔴 +71.3 kB 🔴 +11.7 kB 🔴 +9.98 kB
assets/WidgetVideoEdit-C7edIB3z.js (new) 63.4 kB 🔴 +63.4 kB 🔴 +14.6 kB 🔴 +12.8 kB
assets/WidgetVideoEdit-COeg9uXq.js (removed) 63.4 kB 🟢 -63.4 kB 🟢 -14.6 kB 🟢 -12.8 kB
assets/SubscriptionTransitionPreviewWorkspace-CbG58WV3.js (removed) 63.1 kB 🟢 -63.1 kB 🟢 -13 kB 🟢 -11.4 kB
assets/SubscriptionTransitionPreviewWorkspace-UrcyTus9.js (new) 63.1 kB 🔴 +63.1 kB 🔴 +13 kB 🔴 +11.3 kB
assets/WorkspaceSettingsPanelContent-DnXu9un-.js (removed) 61.6 kB 🟢 -61.6 kB 🟢 -13.2 kB 🟢 -11.5 kB
assets/WorkspaceSettingsPanelContent-DT3bVVdx.js (new) 61.6 kB 🔴 +61.6 kB 🔴 +13.1 kB 🔴 +11.5 kB
assets/Preview3d-BfHe-ewv.js (new) 50.9 kB 🔴 +50.9 kB 🔴 +8.31 kB 🔴 +7.25 kB
assets/Preview3d-DLZOUTxt.js (removed) 50.9 kB 🟢 -50.9 kB 🟢 -8.31 kB 🟢 -7.25 kB
assets/main-BOV3w2ev.js (removed) 47 kB 🟢 -47 kB 🟢 -13.9 kB 🟢 -12 kB
assets/main-TeFvO4Vj.js (new) 47 kB 🔴 +47 kB 🔴 +13.9 kB 🔴 +12 kB
assets/SubscriptionRequiredDialogContentUnified-BkJ5ZC0X.js (removed) 42.9 kB 🟢 -42.9 kB 🟢 -9.46 kB 🟢 -8.24 kB
assets/SubscriptionRequiredDialogContentUnified-DYD8ON4f.js (new) 42.9 kB 🔴 +42.9 kB 🔴 +9.46 kB 🔴 +8.24 kB
assets/MembersPanelContent-BW124JBP.js (removed) 41.8 kB 🟢 -41.8 kB 🟢 -8.79 kB 🟢 -7.83 kB
assets/MembersPanelContent-CZ5ndG0O.js (new) 41.8 kB 🔴 +41.8 kB 🔴 +8.79 kB 🔴 +7.83 kB
assets/WidgetBoundingBoxes-BDF4-lgm.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +9.16 kB 🔴 +8.13 kB
assets/WidgetBoundingBoxes-CZQUCaXU.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -9.16 kB 🟢 -8.13 kB
assets/WidgetPainter-cpFVWV96.js (removed) 32.6 kB 🟢 -32.6 kB 🟢 -7.87 kB 🟢 -6.97 kB
assets/WidgetPainter-dKA7DODd.js (new) 32.6 kB 🔴 +32.6 kB 🔴 +7.87 kB 🔴 +6.97 kB
assets/SubscriptionPanelContentWorkspace-DCXpCAJA.js (removed) 31.8 kB 🟢 -31.8 kB 🟢 -7.05 kB 🟢 -6.21 kB
assets/SubscriptionPanelContentWorkspace-DUhK4eBy.js (new) 31.8 kB 🔴 +31.8 kB 🔴 +7.06 kB 🔴 +6.2 kB
assets/Load3dViewerContent-B9G5tXdt.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -6.27 kB 🟢 -5.43 kB
assets/Load3dViewerContent-DflHjcBa.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +6.27 kB 🔴 +5.45 kB
assets/SubscriptionRequiredDialogContent-C9BMydwM.js (removed) 26.1 kB 🟢 -26.1 kB 🟢 -6.14 kB 🟢 -5.4 kB
assets/SubscriptionRequiredDialogContent-Cbz8QDwA.js (new) 26.1 kB 🔴 +26.1 kB 🔴 +6.14 kB 🔴 +5.4 kB
assets/SubscriptionRequiredDialogContentWorkspace-DHh7_dbu.js (new) 25.1 kB 🔴 +25.1 kB 🔴 +5.8 kB 🔴 +5.11 kB
assets/SubscriptionRequiredDialogContentWorkspace-DYav-1jo.js (removed) 25.1 kB 🟢 -25.1 kB 🟢 -5.8 kB 🟢 -5.09 kB
assets/load3d-D85q5Mqf.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.41 kB 🔴 +4.67 kB
assets/load3d-Wo7mF3Mn.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.41 kB 🟢 -4.67 kB
assets/CurrentUserPopoverWorkspace-CbQxUUxa.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -4.72 kB 🟢 -4.2 kB
assets/CurrentUserPopoverWorkspace-DqH6G-2J.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +4.72 kB 🔴 +4.2 kB
assets/SignInContent-D0UyWt7u.js (new) 20.2 kB 🔴 +20.2 kB 🔴 +5.1 kB 🔴 +4.45 kB
assets/SignInContent-qJroe1xM.js (removed) 20.2 kB 🟢 -20.2 kB 🟢 -5.1 kB 🟢 -4.45 kB
assets/CreditsTile-BaWB8I4u.js (removed) 19 kB 🟢 -19 kB 🟢 -4.79 kB 🟢 -4.23 kB
assets/CreditsTile-CIsAcCE_.js (new) 19 kB 🔴 +19 kB 🔴 +4.79 kB 🔴 +4.22 kB
assets/WidgetRecordAudio-DD-iWMCd.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.59 kB 🟢 -4.1 kB
assets/WidgetRecordAudio-DqB2xUqT.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.59 kB 🔴 +4.1 kB
assets/WidgetInputNumber-h4T-RN0U.js (new) 13.9 kB 🔴 +13.9 kB 🔴 +3.63 kB 🔴 +3.22 kB
assets/WidgetInputNumber-w9uvXfKU.js (removed) 13.9 kB 🟢 -13.9 kB 🟢 -3.63 kB 🟢 -3.22 kB
assets/WidgetRange-BCQxX6qJ.js (removed) 13.7 kB 🟢 -13.7 kB 🟢 -3.53 kB 🟢 -3.11 kB
assets/WidgetRange-Ihr6sa76.js (new) 13.7 kB 🔴 +13.7 kB 🔴 +3.53 kB 🔴 +3.12 kB
assets/WaveAudioPlayer-CNb6qRPa.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.46 kB 🔴 +3.04 kB
assets/WaveAudioPlayer-DRIGCotB.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.47 kB 🟢 -3.04 kB
assets/WidgetCurve-B96iAl8y.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -3.47 kB 🟢 -3.15 kB
assets/WidgetCurve-BOZlRAbO.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +3.48 kB 🔴 +3.14 kB
assets/TeamWorkspacesDialogContent-C8r3Hf6N.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +2.97 kB 🔴 +2.63 kB
assets/TeamWorkspacesDialogContent-DWP8i9dJ.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -2.97 kB 🟢 -2.63 kB
assets/onboardingCloudRoutes-BkPTat7g.js (removed) 9.13 kB 🟢 -9.13 kB 🟢 -2.79 kB 🟢 -2.4 kB
assets/onboardingCloudRoutes-DhHcgB0V.js (new) 9.13 kB 🔴 +9.13 kB 🔴 +2.79 kB 🔴 +2.4 kB
assets/Load3DConfiguration-CWLevb06.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.61 kB 🔴 +2.3 kB
assets/Load3DConfiguration-OCwKdwru.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.61 kB 🟢 -2.3 kB
assets/WidgetImageCrop-Dl1znLBg.js (new) 8.49 kB 🔴 +8.49 kB 🔴 +2.65 kB 🔴 +2.35 kB
assets/WidgetImageCrop-DySpSjDu.js (removed) 8.49 kB 🟢 -8.49 kB 🟢 -2.65 kB 🟢 -2.34 kB
assets/SetMemberCreditLimitDialogContent-2I5ht9ej.js (new) 8.47 kB 🔴 +8.47 kB 🔴 +2.34 kB 🔴 +2.04 kB
assets/SetMemberCreditLimitDialogContent-qyfY-z3C.js (removed) 8.47 kB 🟢 -8.47 kB 🟢 -2.34 kB 🟢 -2.04 kB
assets/nodeTemplates-8xAL_cVf.js (removed) 8.28 kB 🟢 -8.28 kB 🟢 -2.85 kB 🟢 -2.5 kB
assets/nodeTemplates-DRwFmkvD.js (new) 8.28 kB 🔴 +8.28 kB 🔴 +2.84 kB 🔴 +2.51 kB
assets/NightlySurveyController-CJdNcf0q.js (removed) 7.5 kB 🟢 -7.5 kB 🟢 -2.56 kB 🟢 -2.24 kB
assets/NightlySurveyController-DNdnA0AQ.js (new) 7.5 kB 🔴 +7.5 kB 🔴 +2.56 kB 🔴 +2.24 kB
assets/WidgetWithControl-AZD8trtY.js (new) 6.37 kB 🔴 +6.37 kB 🔴 +2.59 kB 🔴 +2.29 kB
assets/WidgetWithControl-BDigtH8n.js (removed) 6.37 kB 🟢 -6.37 kB 🟢 -2.59 kB 🟢 -2.29 kB
assets/tierBenefits-CmhzXGkD.js (removed) 6.2 kB 🟢 -6.2 kB 🟢 -1.97 kB 🟢 -1.71 kB
assets/tierBenefits-CrbOGuvF.js (new) 6.2 kB 🔴 +6.2 kB 🔴 +1.97 kB 🔴 +1.71 kB
assets/CancelSubscriptionDialogContent-BsybzvPF.js (new) 5.97 kB 🔴 +5.97 kB 🔴 +1.98 kB 🔴 +1.75 kB
assets/CancelSubscriptionDialogContent-V_oLYyBa.js (removed) 5.97 kB 🟢 -5.97 kB 🟢 -1.98 kB 🟢 -1.75 kB
assets/load3dPreviewExtensions-B2YewgaF.js (removed) 5.88 kB 🟢 -5.88 kB 🟢 -1.81 kB 🟢 -1.6 kB
assets/load3dPreviewExtensions-C3dndh1f.js (new) 5.88 kB 🔴 +5.88 kB 🔴 +1.81 kB 🔴 +1.6 kB
assets/missingModelDownload-CFQVDdt1.js (removed) 5.88 kB 🟢 -5.88 kB 🟢 -2.07 kB 🟢 -1.81 kB
assets/missingModelDownload-QCM8-VB6.js (new) 5.88 kB 🔴 +5.88 kB 🔴 +2.07 kB 🔴 +1.81 kB
assets/launchCancellationFlow-CCpf4xb6.js (removed) 5.18 kB 🟢 -5.18 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/launchCancellationFlow-CwfauGkX.js (new) 5.18 kB 🔴 +5.18 kB 🔴 +1.78 kB 🔴 +1.56 kB
assets/CreateWorkspaceDialogContent-Bf2Tsu_K.js (removed) 5.12 kB 🟢 -5.12 kB 🟢 -1.79 kB 🟢 -1.55 kB
assets/CreateWorkspaceDialogContent-BOSNADty.js (new) 5.12 kB 🔴 +5.12 kB 🔴 +1.79 kB 🔴 +1.55 kB
assets/ChangeMemberRoleDialogContent-C3OX2f8y.js (new) 4.97 kB 🔴 +4.97 kB 🔴 +1.63 kB 🔴 +1.42 kB
assets/ChangeMemberRoleDialogContent-CT965baU.js (removed) 4.97 kB 🟢 -4.97 kB 🟢 -1.63 kB 🟢 -1.42 kB
assets/EditWorkspaceDialogContent-BcYiUWzb.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.76 kB 🟢 -1.52 kB
assets/EditWorkspaceDialogContent-z61MxWzF.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.76 kB 🔴 +1.52 kB
assets/WidgetTextarea-BzRJImGf.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.87 kB 🟢 -1.63 kB
assets/WidgetTextarea-DYZ2HK6v.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.87 kB 🔴 +1.63 kB
assets/saveMesh-BvPy4yhr.js (new) 4.76 kB 🔴 +4.76 kB 🔴 +1.52 kB 🔴 +1.35 kB
assets/saveMesh-Cov57cQV.js (removed) 4.76 kB 🟢 -4.76 kB 🟢 -1.52 kB 🟢 -1.34 kB
assets/WorkspacePanelContent-9Taxh5Dr.js (removed) 4.72 kB 🟢 -4.72 kB 🟢 -1.6 kB 🟢 -1.4 kB
assets/WorkspacePanelContent-FYYk8Tlm.js (new) 4.72 kB 🔴 +4.72 kB 🔴 +1.6 kB 🔴 +1.41 kB
assets/InviteMemberDialogContent-DJt-Fyzj.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.58 kB 🟢 -1.37 kB
assets/InviteMemberDialogContent-JDvlLzBx.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/ValueControlPopover-CowjTAXv.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/ValueControlPopover-H3tx7nXS.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.55 kB 🟢 -1.38 kB
assets/DeleteWorkspaceDialogContent-BuxKN9pi.js (new) 3.84 kB 🔴 +3.84 kB 🔴 +1.44 kB 🔴 +1.23 kB
assets/DeleteWorkspaceDialogContent-DShn75Qb.js (removed) 3.84 kB 🟢 -3.84 kB 🟢 -1.44 kB 🟢 -1.23 kB
assets/LeaveWorkspaceDialogContent-BnrqNhLx.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.38 kB 🔴 +1.2 kB
assets/LeaveWorkspaceDialogContent-C3syBNG9.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.38 kB 🟢 -1.2 kB
assets/RemoveMemberDialogContent-B0GTkexi.js (removed) 3.65 kB 🟢 -3.65 kB 🟢 -1.34 kB 🟢 -1.15 kB
assets/RemoveMemberDialogContent-SDcjph85.js (new) 3.65 kB 🔴 +3.65 kB 🔴 +1.34 kB 🔴 +1.15 kB
assets/RevokeInviteDialogContent-1eNx1huB.js (new) 3.56 kB 🔴 +3.56 kB 🔴 +1.35 kB 🔴 +1.17 kB
assets/RevokeInviteDialogContent-CEgKlxRq.js (removed) 3.56 kB 🟢 -3.56 kB 🟢 -1.35 kB 🟢 -1.17 kB
assets/InviteMemberUpsellDialogContent-C-8jxrDw.js (new) 3.44 kB 🔴 +3.44 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/InviteMemberUpsellDialogContent-CDPkAZlR.js (removed) 3.44 kB 🟢 -3.44 kB 🟢 -1.23 kB 🟢 -1.07 kB
assets/workspaceCheckoutTelemetry-C43hJl8x.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.52 kB 🔴 +1.33 kB
assets/workspaceCheckoutTelemetry-DWK-lUzj.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.52 kB 🟢 -1.32 kB
assets/Media3DTop-1WOOdYsc.js (new) 3.21 kB 🔴 +3.21 kB 🔴 +1.26 kB 🔴 +1.1 kB
assets/Media3DTop-BbE6cqIK.js (removed) 3.21 kB 🟢 -3.21 kB 🟢 -1.26 kB 🟢 -1.1 kB
assets/GlobalToast-BH0jdcB2.js (new) 3 kB 🔴 +3 kB 🔴 +1.22 kB 🔴 +1.08 kB
assets/GlobalToast-CR2qa7eP.js (removed) 3 kB 🟢 -3 kB 🟢 -1.22 kB 🟢 -1.04 kB
assets/load3dAdvanced-MmXpiUZg.js (new) 2.82 kB 🔴 +2.82 kB 🔴 +1.1 kB 🔴 +952 B
assets/load3dAdvanced-YgoR-83L.js (removed) 2.82 kB 🟢 -2.82 kB 🟢 -1.09 kB 🟢 -949 B
assets/SubscribeToRun-B0FgZO8g.js (new) 2.39 kB 🔴 +2.39 kB 🔴 +1.03 kB 🔴 +925 B
assets/SubscribeToRun-DlSMWMSM.js (removed) 2.39 kB 🟢 -2.39 kB 🟢 -1.03 kB 🟢 -926 B
assets/MediaAudioTop-B8hwnov7.js (removed) 1.62 kB 🟢 -1.62 kB 🟢 -805 B 🟢 -668 B
assets/MediaAudioTop-S3HfWdT9.js (new) 1.62 kB 🔴 +1.62 kB 🔴 +807 B 🔴 +665 B
assets/CloudRunButtonWrapper-C_dBt7Ez.js (new) 1.05 kB 🔴 +1.05 kB 🔴 +517 B 🔴 +472 B
assets/CloudRunButtonWrapper-DQclrAc3.js (removed) 1.05 kB 🟢 -1.05 kB 🟢 -513 B 🟢 -451 B
assets/cloudSessionCookie-D47cusYx.js (removed) 933 B 🟢 -933 B 🟢 -432 B 🟢 -378 B
assets/cloudSessionCookie-D6MDLvBK.js (new) 933 B 🔴 +933 B 🔴 +432 B 🔴 +378 B
assets/cloudBadges-CJtAaDSv.js (removed) 922 B 🟢 -922 B 🟢 -514 B 🟢 -438 B
assets/cloudBadges-CPaYNL4F.js (new) 922 B 🔴 +922 B 🔴 +517 B 🔴 +440 B
assets/Load3DAdvanced-B8lTdiNW.js (removed) 761 B 🟢 -761 B 🟢 -423 B 🟢 -360 B
assets/Load3DAdvanced-RP-_STPG.js (new) 761 B 🔴 +761 B 🔴 +423 B 🔴 +360 B
assets/nightlyBadges-BKY4qbLD.js (removed) 411 B 🟢 -411 B 🟢 -272 B 🟢 -259 B
assets/nightlyBadges-DFMlh5P2.js (new) 411 B 🔴 +411 B 🔴 +273 B 🔴 +270 B
assets/missingModelDownload-F3nXA-jG.js (new) 371 B 🔴 +371 B 🔴 +204 B 🔴 +174 B
assets/missingModelDownload-GstX-mR7.js (removed) 371 B 🟢 -371 B 🟢 -202 B 🟢 -173 B
assets/SubscriptionPanelContentWorkspace-BCs7a6iO.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -92 B
assets/SubscriptionPanelContentWorkspace-Dq5eOTOb.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +93 B
assets/Load3dViewerContent-CnzLIVL1.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -92 B
assets/Load3dViewerContent-DxFf15Vy.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +92 B
assets/Load3DAdvanced-B5foREcS.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -89 B
assets/Load3DAdvanced-BSiiILLV.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +82 B
assets/WidgetLegacy-BfzRI9SV.js (new) 117 B 🔴 +117 B 🔴 +106 B 🔴 +98 B
assets/WidgetLegacy-CQ3U62dc.js (removed) 117 B 🟢 -117 B 🟢 -106 B 🟢 -98 B
assets/workflowDraftStoreV2-BnPuIjpD.js (new) 112 B 🔴 +112 B 🔴 +101 B 🔴 +109 B
assets/workflowDraftStoreV2-CoanFGPi.js (removed) 112 B 🟢 -112 B 🟢 -101 B 🟢 -116 B
assets/Load3D-C0YFaAuu.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -87 B
assets/Load3D-DwKElhGr.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +79 B
assets/changeTracker-CG5UuNFA.js (new) 91 B 🔴 +91 B 🔴 +93 B 🔴 +87 B
assets/changeTracker-m_jCACOM.js (removed) 91 B 🟢 -91 B 🟢 -93 B 🟢 -84 B

Status: 70 added / 70 removed / 211 unchanged

⚡ Performance

⏳ Performance tests in progress…

@coderabbitai

coderabbitai Bot commented Aug 4, 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: d2a0f47e-ea68-4698-b354-7bde852c1a98

📥 Commits

Reviewing files that changed from the base of the PR and between 62550d9 and 59fbc49.

📒 Files selected for processing (1)
  • src/platform/workspace/stores/billingOperationStore.test.ts

📝 Walkthrough

Walkthrough

The billing operation store recognizes superseded subscription checkouts. It records these failures as stale_operation telemetry and suppresses error toasts. Tests verify subscription and downgrade failure behavior.

Changes

Billing failure handling

Layer / File(s) Summary
Superseded checkout handling
src/platform/workspace/stores/billingOperationStore.ts, src/platform/workspace/stores/billingOperationStore.test.ts
The store detects superseded checkout failures, records stale_operation telemetry for subscription and downgrade operations, suppresses error toasts, and tests the failed operation state and telemetry. The tests use createTestingPinia({ stubActions: false }).

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

Possibly related PRs

Suggested labels: released:cloud, cursor-review

Suggested reviewers: benceruleanlu, dante01yoon

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: suppressing errors for superseded billing checkouts.
Description check ✅ Passed The description explains the problem, implementation, scope, verification, and regression coverage; omitted template headings do not block review.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
End-To-End Regression Coverage For Fixes ✅ Passed The available commit subject uses no bug-fix signal, so the required failure condition is not met.
Adr Compliance For Entity/Litegraph Changes ✅ Passed The changed files are billing operation store files, not under the listed LiteGraph, ECS, or graph-entity paths; the ADR check does not apply.
✨ 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 fix/superseded-checkout-error-toast

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: 1

🤖 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/workspace/stores/billingOperationStore.test.ts`:
- Around line 441-465: Replace createPinia() with createTestingPinia({
stubActions: false }) in the billing operation store tests, while preserving
setActivePinia(...) so real store actions execute against the active testing
Pinia.
🪄 Autofix

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: 9cebec95-3f37-4241-a395-bd190744046f

📥 Commits

Reviewing files that changed from the base of the PR and between d2ed1f2 and 7a3310b.

📒 Files selected for processing (2)
  • src/platform/workspace/stores/billingOperationStore.test.ts
  • src/platform/workspace/stores/billingOperationStore.ts

Comment thread src/platform/workspace/stores/billingOperationStore.test.ts
@codecov

codecov Bot commented Aug 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@           Coverage Diff            @@
##             main   #14705    +/-   ##
========================================
  Coverage   78.28%   78.28%            
========================================
  Files        1790     1790            
  Lines      108911   108916     +5     
  Branches    29888    30771   +883     
========================================
+ Hits        85258    85265     +7     
+ Misses      23163    23161     -2     
  Partials      490      490            
Flag Coverage Δ
unit 70.84% <100.00%> (+<0.01%) ⬆️

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

Files with missing lines Coverage Δ
...platform/workspace/stores/billingOperationStore.ts 72.34% <100.00%> (+0.82%) ⬆️

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

@wei-hai wei-hai added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch backport Backporting a PR onto a release candidate core/1.48 labels Aug 4, 2026
@github-actions
github-actions Bot requested a review from benceruleanlu August 4, 2026 20:24
…test

Matches the documented convention in docs/testing/vitest-patterns.md.
All 48 tests in the file pass unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@dante01yoon dante01yoon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Found one telemetry inconsistency in the superseded downgrade path. The toast behavior itself is narrow and the regression test covers the primary subscription-operation event.

Comment thread src/platform/workspace/stores/billingOperationStore.ts Outdated
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 4, 2026
A superseded operation emits two failure events when it carries
downgrade-to-personal metadata. Only the generic one was reclassified, so
a replaced downgrade checkout kept reporting `unknown` and inflating the
unexplained-failure count this change exists to reduce.

Hoist the category and use it for both emissions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dosubot dosubot Bot added size:S This PR changes 10-29 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Aug 4, 2026
@wei-hai
wei-hai requested a review from dante01yoon August 4, 2026 20:33
@wei-hai wei-hai assigned dante01yoon and unassigned wei-hai and benceruleanlu Aug 4, 2026

@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: 1

🤖 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/workspace/stores/billingOperationStore.test.ts`:
- Around line 489-498: Update the billing failure telemetry assertions in the
relevant test to explicitly verify that the primary generic operation event uses
the stale_operation failure_category, while retaining the downgrade_to_personal
assertion and superseded-checkout failure coverage.
🪄 Autofix

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: 5851a72a-7590-4038-aca3-1b838368712d

📥 Commits

Reviewing files that changed from the base of the PR and between 28ace60 and 62550d9.

📒 Files selected for processing (2)
  • src/platform/workspace/stores/billingOperationStore.test.ts
  • src/platform/workspace/stores/billingOperationStore.ts

Comment thread src/platform/workspace/stores/billingOperationStore.test.ts
The test asserted only the downgrade emission plus a negative on
"unknown", so a primary event carrying some other wrong category still
passed. Assert it explicitly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@wei-hai
wei-hai enabled auto-merge August 4, 2026 20:51
@dante01yoon dante01yoon assigned wei-hai and unassigned dante01yoon Aug 4, 2026
@dante01yoon dante01yoon added core/1.49 Backport PRs for core 1.49 cloud/1.49 Backport PRs for cloud 1.49 labels Aug 4, 2026
@wei-hai
wei-hai added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit bcb351b Aug 4, 2026
87 of 88 checks passed
@wei-hai
wei-hai deleted the fix/superseded-checkout-error-toast branch August 4, 2026 21:08
@comfy-pr-bot

Copy link
Copy Markdown
Member

@wei-hai Successfully backported to #14709

@comfy-pr-bot

Copy link
Copy Markdown
Member

@wei-hai Successfully backported to #14710

@comfy-pr-bot

Copy link
Copy Markdown
Member

@wei-hai Successfully backported to #14711

@comfy-pr-bot

Copy link
Copy Markdown
Member

@wei-hai Successfully backported to #14712

@github-actions github-actions Bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Aug 4, 2026
comfy-pr-bot added a commit that referenced this pull request Aug 4, 2026
…ut is superseded (#14710)

Backport of #14705 to `cloud/1.48`

Automatically created by backport workflow.

Co-authored-by: Wei Hai <hai.vincent@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
comfy-pr-bot added a commit that referenced this pull request Aug 4, 2026
…t is superseded (#14709)

Backport of #14705 to `core/1.48`

Automatically created by backport workflow.

Co-authored-by: Wei Hai <hai.vincent@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
comfy-pr-bot added a commit that referenced this pull request Aug 4, 2026
…ut is superseded (#14712)

Backport of #14705 to `cloud/1.49`

Automatically created by backport workflow.

Co-authored-by: Wei Hai <hai.vincent@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
comfy-pr-bot added a commit that referenced this pull request Aug 4, 2026
…t is superseded (#14711)

Backport of #14705 to `core/1.49`

Automatically created by backport workflow.

Co-authored-by: Wei Hai <hai.vincent@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
claude Bot pushed a commit that referenced this pull request Aug 4, 2026
Resolves the MERGE_CONFLICT after a push to main. Two things needed
manual resolution beyond git's automatic merge:

- billingOperationStore.test.ts had a marked conflict: both branches
  added independent new tests at the same insertion point (this PR's
  topup/cancel poll-failure-category tests, and main's
  checkout-superseded tests from #14705). Kept all four.

- billingOperationStore.ts's handleFailure() auto-merged without
  conflict markers but was left with a duplicate `const
  failureCategory` declaration (main added superseded-checkout
  handling in the same spot this PR added categorizePollFailure()).
  Combined both: `stale_operation` for superseded checkouts, else
  categorizePollFailure() for provider_decline/api_rejected, with
  main's toast-suppression for superseded checkouts preserved.

- PricingTable.test.ts's own new test referenced the pre-rename mock
  variable name `mockIsActiveSubscription`; main renamed it to
  `mockCanAccessSubscriptionFeatures` (#11464). Mechanical rename fix.

Verified: pnpm typecheck and pnpm lint pass clean; targeted pnpm
vitest run across all 12 files touched by the merge (312 tests) pass.

Committed with --no-verify: husky's pre-commit hook (lint-staged)
sweeps the full merge diff and fails on a pre-existing, unrelated
oxlint error already on main (apps/website .../modelLaunchPages.test.ts,
untouched by this merge) — approved by task owner to bypass for this
merge commit.
@comfy-pr-bot comfy-pr-bot added the released:cloud PR has been released to cloud label Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Backporting a PR onto a release candidate cloud/1.49 Backport PRs for cloud 1.49 core/1.49 Backport PRs for core 1.49 released:cloud PR has been released to cloud size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants