Skip to content

GTM-93: add desktop login attribution callback#12983

Draft
benceruleanlu wants to merge 1 commit into
mainfrom
ben/gtm-93-login-browser-attribution-frontend
Draft

GTM-93: add desktop login attribution callback#12983
benceruleanlu wants to merge 1 commit into
mainfrom
ben/gtm-93-login-browser-attribution-frontend

Conversation

@benceruleanlu

@benceruleanlu benceruleanlu commented Jun 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Add Cloud login callback query handling for Desktop sign-in handoff.
  • Queue PostHog identify until the Cloud PostHog provider is initialized, so the browser-side comfy.org cookie can be stitched to the Firebase user.
  • Keep already-authenticated browser sessions on the login route long enough to complete the Desktop callback.

Links

Test plan

  • pnpm exec vitest run src/platform/cloud/onboarding/desktopLoginBridge.test.ts src/platform/telemetry/providers/cloud/posthogIdentity.test.ts src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts
  • pnpm typecheck
  • pnpm format:check
  • pnpm lint -- src/platform/cloud/onboarding/desktopLoginBridge.ts src/platform/cloud/onboarding/desktopLoginBridge.test.ts src/platform/telemetry/providers/cloud/posthogIdentity.ts src/platform/telemetry/providers/cloud/posthogIdentity.test.ts src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts src/platform/cloud/onboarding/composables/usePostAuthRedirect.ts src/platform/cloud/onboarding/onboardingCloudRoutes.ts src/platform/cloud/onboarding/CloudLoginView.vue

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

A new desktop login bridge module is added that validates loopback callback URLs in route query parameters and POSTs Firebase credentials to a local desktop application upon successful cloud authentication. This is wired into cloud route guards, the login view, and the post-auth redirect composable. A new PostHog identity queue module is introduced to support deferred user identification.

Changes

Desktop Login Bridge

Layer / File(s) Summary
PostHog identity queue module and provider integration
src/platform/telemetry/providers/cloud/posthogIdentity.ts, src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts, src/platform/telemetry/providers/cloud/posthogIdentity.test.ts
Introduces posthogIdentity.ts with a module-scoped PostHog client reference and a pending user-ID queue. PostHogTelemetryProvider now calls setPostHogIdentityClient on init and failure, and routes identify calls through identifyPostHogUser. Tests cover both deferred and immediate identification.
Desktop login bridge module and tests
src/platform/cloud/onboarding/desktopLoginBridge.ts, src/platform/cloud/onboarding/desktopLoginBridge.test.ts
Adds query-parameter constants, a loopback-only URL validator, exported helpers (hasDesktopLoginRequest, getDesktopLoginRequest), and the async completeDesktopLoginIfNeeded function that identifies the PostHog user, loads Firebase config, and POSTs credentials to the local callback URL. Tests cover valid/invalid URLs and the full completion POST payload.
Route guard: skip OAuth consent for desktop login
src/platform/cloud/onboarding/onboardingCloudRoutes.ts
Imports hasDesktopLoginRequest and extends beforeEnter on both cloud-login and cloud-signup routes so that already-authenticated users are not redirected through OAuth consent when a desktop login request is detected in the query.
Login view watcher and post-auth redirect integration
src/platform/cloud/onboarding/CloudLoginView.vue, src/platform/cloud/onboarding/composables/usePostAuthRedirect.ts
Adds a watch in CloudLoginView on authStore.isInitialized and authStore.currentUser to trigger onAuthSuccess() once when a desktop request is present. Extends usePostAuthRedirect.onAuthSuccess to call completeDesktopLoginIfNeeded, returning early on success or setting an error toast on failure.

Sequence Diagram(s)

sequenceDiagram
  rect rgba(173, 216, 230, 0.5)
    note over CloudLoginView,LoopbackCallback: Desktop Login Completion Flow
  end
  participant CloudLoginView
  participant usePostAuthRedirect
  participant desktopLoginBridge
  participant posthogIdentity
  participant LoopbackCallback

  CloudLoginView->>CloudLoginView: watch(authStore.isInitialized, authStore.currentUser)
  CloudLoginView->>usePostAuthRedirect: onAuthSuccess()
  usePostAuthRedirect->>desktopLoginBridge: completeDesktopLoginIfNeeded(query, currentUser)
  desktopLoginBridge->>posthogIdentity: identifyPostHogUser(user.uid)
  desktopLoginBridge->>desktopLoginBridge: getFirebaseConfig() → apiKey
  desktopLoginBridge->>LoopbackCallback: POST /callback { state, apiKey, user }
  alt success
    LoopbackCallback-->>desktopLoginBridge: 200 OK
    desktopLoginBridge-->>usePostAuthRedirect: true
    usePostAuthRedirect-->>CloudLoginView: return early (no further redirect)
  else failure
    LoopbackCallback-->>desktopLoginBridge: non-OK or missing apiKey
    desktopLoginBridge-->>usePostAuthRedirect: throws error
    usePostAuthRedirect-->>CloudLoginView: set authError + show error toast
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested labels

size:L, cloud/1.45, cloud/1.46

Suggested reviewers

  • deepme987
  • pythongosssss

Poem

🐇 Hop hop, the desktop knocks at the web door,
A loopback URL — no external host, no more!
Firebase keys in a POST, state snugly packed,
PostHog queues the identify, nothing gets slacked.
The watcher fires once, the login bridge complete —
One tiny rabbit kept your auth flow neat! 🍀

🚥 Pre-merge checks | ✅ 6 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title 'GTM-93: add desktop login attribution callback' clearly and specifically describes the main change: adding desktop login attribution callback functionality.
Description check ✅ Passed The PR description provides a clear summary, detailed explanation of changes, relevant links, and a comprehensive test plan, though it deviates from the template structure.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
End-To-End Regression Coverage For Fixes ✅ Passed PR commit subject "GTM-93: add desktop login attribution callback" uses feature language ("add"), not bug-fix language ("fix"/"fixes"/"fixing"/"bugfix"/"hotfix"). Check requires ALL conditions true...
Adr Compliance For Entity/Litegraph Changes ✅ Passed PR does not modify files under src/lib/litegraph/, src/ecs/, or graph entity-related paths; check not applicable.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ben/gtm-93-login-browser-attribution-frontend

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 06/19/2026, 02:06:52 AM UTC

Links

🎭 Playwright: ❌ 1669 passed, 1 failed · 1 flaky

❌ Failed Tests

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

📦 Bundle: 7.45 MB gzip 🔴 +2.26 kB

Details

Summary

  • Raw size: 31.3 MB baseline 31.3 MB — 🔴 +4.86 kB
  • Gzip: 7.45 MB baseline 7.44 MB — 🔴 +2.26 kB
  • Brotli: 5.1 MB baseline 5.1 MB — 🔴 +1.31 kB
  • Bundles: 277 current • 274 baseline • 270 added / 267 removed

Category Glance
User & Accounts 🔴 +2.98 kB (22.9 kB) · Panels & Settings 🔴 +1.41 kB (524 kB) · Vendor & Third-Party 🔴 +1.06 kB (15.3 MB) · Utilities & Hooks 🟢 -980 B (3.31 MB) · App Entry Points 🟢 -634 B (45.2 kB) · Views & Navigation 🔴 +536 B (95.8 kB) · + 5 more

App Entry Points — 45.2 kB (baseline 45.8 kB) • 🟢 -634 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Cvrc2l2i.js (removed) 45.8 kB 🟢 -45.8 kB 🟢 -13.5 kB 🟢 -11.7 kB
assets/index-BieUO5Ff.js (new) 45.2 kB 🔴 +45.2 kB 🔴 +13.2 kB 🔴 +11.4 kB

Status: 1 added / 1 removed

Graph Workspace — 1.25 MB (baseline 1.25 MB) • 🔴 +47 B

Graph editor runtime, canvas, workflow orchestration

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

Status: 1 added / 1 removed

Views & Navigation — 95.8 kB (baseline 95.3 kB) • 🔴 +536 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-BgDhfQIK.js (new) 19.5 kB 🔴 +19.5 kB 🔴 +5.06 kB 🔴 +4.5 kB
assets/CloudSurveyView-CDKQLyPw.js (removed) 19.5 kB 🟢 -19.5 kB 🟢 -5.05 kB 🟢 -4.48 kB
assets/OAuthConsentView-BIq0LaWS.js (removed) 15 kB 🟢 -15 kB 🟢 -4.1 kB 🟢 -3.57 kB
assets/OAuthConsentView-I8mcX49R.js (new) 15 kB 🔴 +15 kB 🔴 +4.1 kB 🔴 +3.56 kB
assets/CloudLoginView-P5HG4xTa.js (new) 11.9 kB 🔴 +11.9 kB 🔴 +3.22 kB 🔴 +2.81 kB
assets/CloudLoginView-D3k6rKDV.js (removed) 11.4 kB 🟢 -11.4 kB 🟢 -3.06 kB 🟢 -2.69 kB
assets/CloudSignupView-CAT5WwHp.js (removed) 9.7 kB 🟢 -9.7 kB 🟢 -2.71 kB 🟢 -2.39 kB
assets/CloudSignupView-Bd3pg2AE.js (new) 9.7 kB 🔴 +9.7 kB 🔴 +2.71 kB 🔴 +2.38 kB
assets/CloudLayoutView-B3xIhFIN.js (new) 9.36 kB 🔴 +9.36 kB 🔴 +2.34 kB 🔴 +2.03 kB
assets/CloudLayoutView-CA3pKmPk.js (removed) 9.36 kB 🟢 -9.36 kB 🟢 -2.34 kB 🟢 -2.03 kB
assets/UserCheckView-D1JADxP3.js (removed) 8.8 kB 🟢 -8.8 kB 🟢 -2.22 kB 🟢 -1.93 kB
assets/UserCheckView-ZVhtNHg0.js (new) 8.8 kB 🔴 +8.8 kB 🔴 +2.22 kB 🔴 +1.93 kB
assets/UserSelectView-Czo1Rj0t.js (removed) 6 kB 🟢 -6 kB 🟢 -2.15 kB 🟢 -1.88 kB
assets/UserSelectView-LlcPE_w1.js (new) 6 kB 🔴 +6 kB 🔴 +2.15 kB 🔴 +1.89 kB
assets/CloudForgotPasswordView-BavmHnyu.js (new) 5.15 kB 🔴 +5.15 kB 🔴 +1.75 kB 🔴 +1.53 kB
assets/CloudForgotPasswordView-BVZ8SEVK.js (removed) 5.15 kB 🟢 -5.15 kB 🟢 -1.75 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-BWbOKZo2.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/CloudAuthTimeoutView-D54kOn2l.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/CloudSubscriptionRedirectView-B7x8VxPL.js (removed) 4.3 kB 🟢 -4.3 kB 🟢 -1.57 kB 🟢 -1.39 kB
assets/CloudSubscriptionRedirectView-BmbkF4X3.js (new) 4.3 kB 🔴 +4.3 kB 🔴 +1.57 kB 🔴 +1.39 kB
assets/CloudSorryContactSupportView--ijdm55k.js (new) 1.21 kB 🔴 +1.21 kB 🔴 +603 B 🔴 +521 B
assets/CloudSorryContactSupportView-BmJqwJ4U.js (removed) 1.21 kB 🟢 -1.21 kB 🟢 -605 B 🟢 -522 B
assets/layout-_uPFgCvt.js (new) 447 B 🔴 +447 B 🔴 +283 B 🔴 +231 B
assets/layout-MgZOfljX.js (removed) 447 B 🟢 -447 B 🟢 -283 B 🟢 -232 B

Status: 12 added / 12 removed

Panels & Settings — 524 kB (baseline 523 kB) • 🔴 +1.41 kB

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-D_GncMet.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.96 kB 🔴 +8.82 kB
assets/KeybindingPanel-DBBwOQ9M.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.96 kB 🟢 -8.81 kB
assets/settings-BsDM50zq.js (removed) 39.8 kB 🟢 -39.8 kB 🟢 -9.73 kB 🟢 -7.99 kB
assets/settings-DAmmfWEY.js (new) 39.8 kB 🔴 +39.8 kB 🔴 +9.73 kB 🔴 +7.99 kB
assets/settings-BNnif5mb.js (new) 35.4 kB 🔴 +35.4 kB 🔴 +8.66 kB 🔴 +7.29 kB
assets/settings-Dw3R5okD.js (removed) 35.4 kB 🟢 -35.4 kB 🟢 -8.66 kB 🟢 -7.29 kB
assets/settings-BKpynRMG.js (removed) 33.5 kB 🟢 -33.5 kB 🟢 -8.48 kB 🟢 -6.97 kB
assets/settings-CBv4XKl9.js (new) 33.5 kB 🔴 +33.5 kB 🔴 +8.48 kB 🔴 +6.9 kB
assets/settings-CJaySy7-.js (removed) 31.5 kB 🟢 -31.5 kB 🟢 -8.78 kB 🟢 -7.31 kB
assets/settings-CRCmk-08.js (new) 31.5 kB 🔴 +31.5 kB 🔴 +8.78 kB 🔴 +7.31 kB
assets/settings-CflGTK7V.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +8.41 kB 🔴 +7.38 kB
assets/settings-DvsQTZyd.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -8.41 kB 🟢 -7.38 kB
assets/settings-8aHyuwop.js (removed) 29.7 kB 🟢 -29.7 kB 🟢 -8.07 kB 🟢 -6.88 kB
assets/settings-DQYOaBqK.js (new) 29.7 kB 🔴 +29.7 kB 🔴 +8.07 kB 🔴 +6.88 kB
assets/settings-BU2_SeyT.js (new) 29.6 kB 🔴 +29.6 kB 🔴 +8.31 kB 🔴 +7.28 kB
assets/settings-sru-j5h5.js (removed) 29.6 kB 🟢 -29.6 kB 🟢 -8.31 kB 🟢 -7.26 kB
assets/settings-CsRKPh_M.js (removed) 28.8 kB 🟢 -28.8 kB 🟢 -7.99 kB 🟢 -6.96 kB
assets/settings-dDbTaqaB.js (new) 28.8 kB 🔴 +28.8 kB 🔴 +7.99 kB 🔴 +6.96 kB
assets/settings-BhutlzjA.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -8.44 kB 🟢 -7.03 kB
assets/settings-CrFlEfdc.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +8.44 kB 🔴 +7.02 kB
assets/settings-igapGpGx.js (new) 27.2 kB 🔴 +27.2 kB 🔴 +7.75 kB 🔴 +6.45 kB
assets/settings-SBB4ueng.js (removed) 27.2 kB 🟢 -27.2 kB 🟢 -7.75 kB 🟢 -6.44 kB
assets/settings-Cr3UwXFU.js (removed) 25.2 kB 🟢 -25.2 kB 🟢 -8.2 kB 🟢 -6.6 kB
assets/settings-Mv71xbHZ.js (new) 25.2 kB 🔴 +25.2 kB 🔴 +8.2 kB 🔴 +6.6 kB
assets/settings-CnT3oo49.js (removed) 24.6 kB 🟢 -24.6 kB 🟢 -8.01 kB 🟢 -6.27 kB
assets/settings-Crav2tSq.js (new) 24.6 kB 🔴 +24.6 kB 🔴 +8.01 kB 🔴 +6.26 kB
assets/SecretsPanel-BQMN12wR.js (removed) 24.2 kB 🟢 -24.2 kB 🟢 -5.77 kB 🟢 -5.07 kB
assets/SecretsPanel-x1U38N4g.js (new) 24.2 kB 🔴 +24.2 kB 🔴 +5.77 kB 🔴 +5.07 kB
assets/LegacyCreditsPanel-5J9_bz-q.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5.52 kB 🟢 -4.85 kB
assets/LegacyCreditsPanel-CuvueCBu.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5.52 kB 🔴 +4.85 kB
assets/SubscriptionPanel-CQOkwl0j.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +5 kB 🔴 +4.36 kB
assets/SubscriptionPanel-C9Bvv0s3.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.98 kB 🟢 -4.36 kB
assets/AboutPanel-BiH7GPSD.js (new) 11.7 kB 🔴 +11.7 kB 🔴 +3.22 kB 🔴 +2.9 kB
assets/AboutPanel-D8uf1ADg.js (removed) 11.7 kB 🟢 -11.7 kB 🟢 -3.23 kB 🟢 -2.9 kB
assets/ExtensionPanel-D2jDL7wB.js (removed) 9.03 kB 🟢 -9.03 kB 🟢 -2.49 kB 🟢 -2.2 kB
assets/ExtensionPanel-DbOdFhJ8.js (new) 9.03 kB 🔴 +9.03 kB 🔴 +2.49 kB 🔴 +2.2 kB
assets/settings-BMsHiZv0.js (removed) 7.07 kB 🟢 -7.07 kB 🟢 -1.86 kB 🟢 -1.59 kB
assets/settings-DpzN0Lgl.js (new) 7.07 kB 🔴 +7.07 kB 🔴 +1.86 kB 🔴 +1.58 kB
assets/ServerConfigPanel-BsaVBae3.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +1.98 kB 🔴 +1.77 kB
assets/ServerConfigPanel-ZhiGX8aX.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -1.98 kB 🟢 -1.76 kB
assets/UserPanel-D0GHzQC3.js (new) 5.78 kB 🔴 +5.78 kB 🔴 +1.82 kB 🔴 +1.58 kB
assets/UserPanel-mpDHz8L9.js (removed) 5.78 kB 🟢 -5.78 kB 🟢 -1.82 kB 🟢 -1.58 kB
assets/config-D7rQudX6.js (removed) 2.14 kB 🟢 -2.14 kB 🟢 -1.04 kB 🟢 -843 B
assets/config-DhiS_IVl.js (new) 2.14 kB 🔴 +2.14 kB 🔴 +1.04 kB 🔴 +840 B
assets/refreshRemoteConfig-CmweBmbe.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -695 B 🟢 -594 B
assets/refreshRemoteConfig-CnCSXIrZ.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +692 B 🔴 +590 B
assets/remoteConfig-Ci_Nn5zB.js (new) 1.38 kB 🔴 +1.38 kB 🔴 +689 B 🔴 +573 B
assets/cloudRemoteConfig-BQ-Db94f.js (new) 990 B 🔴 +990 B 🔴 +543 B 🔴 +459 B
assets/cloudRemoteConfig-lSX46w_P.js (removed) 990 B 🟢 -990 B 🟢 -541 B 🟢 -463 B

Status: 25 added / 24 removed

User & Accounts — 22.9 kB (baseline 19.9 kB) • 🔴 +2.98 kB

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/PasswordFields-BAPbMymp.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.42 kB 🟢 -1.25 kB
assets/PasswordFields-d4SCQt9H.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.42 kB 🔴 +1.25 kB
assets/usePostAuthRedirect-CVJNnNrl.js (new) 3.9 kB 🔴 +3.9 kB 🔴 +1.42 kB 🔴 +1.25 kB
assets/auth-Bj2zHkyc.js (removed) 3.69 kB 🟢 -3.69 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/auth-mFxyvGtF.js (new) 3.69 kB 🔴 +3.69 kB 🔴 +1.3 kB 🔴 +1.14 kB
assets/usePostAuthRedirect-DU0Ux6Zz.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.28 kB 🟢 -1.11 kB
assets/SignUpForm-BxgFYweb.js (new) 3.19 kB 🔴 +3.19 kB 🔴 +1.29 kB 🔴 +1.16 kB
assets/SignUpForm-Fc41HVGh.js (removed) 3.19 kB 🟢 -3.19 kB 🟢 -1.29 kB 🟢 -1.15 kB
assets/desktopLoginBridge-5AmkX28I.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.06 kB 🔴 +913 B
assets/UpdatePasswordContent-Bxlra6j7.js (new) 1.91 kB 🔴 +1.91 kB 🔴 +878 B 🔴 +767 B
assets/UpdatePasswordContent-Wajo55_D.js (removed) 1.91 kB 🟢 -1.91 kB 🟢 -877 B 🟢 -770 B
assets/WorkspaceProfilePic-B4GKVByy.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -860 B 🟢 -749 B
assets/WorkspaceProfilePic-SDgnKhgL.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +860 B 🔴 +748 B
assets/oauthState-BCY4VkxE.js (removed) 1.21 kB 🟢 -1.21 kB 🟢 -511 B 🟢 -432 B
assets/oauthState-CZ8eooTR.js (new) 1.21 kB 🔴 +1.21 kB 🔴 +509 B 🔴 +446 B
assets/authStore-BbJBphGQ.js (new) 130 B 🔴 +130 B 🔴 +109 B 🔴 +105 B
assets/authStore-Dl7ZyKkP.js (removed) 130 B 🟢 -130 B 🟢 -109 B 🟢 -101 B
assets/auth-D6cSXAZS.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -79 B
assets/auth-DSeQzN0w.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +82 B

Status: 10 added / 9 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyHubPublishDialog-CAmMy6TG.js (removed) 86 kB 🟢 -86 kB 🟢 -18.6 kB 🟢 -15.9 kB
assets/ComfyHubPublishDialog-J43JKLEc.js (new) 86 kB 🔴 +86 kB 🔴 +18.6 kB 🔴 +15.9 kB
assets/useShareDialog-Bqb6EySo.js (removed) 23.4 kB 🟢 -23.4 kB 🟢 -5.55 kB 🟢 -4.91 kB
assets/useShareDialog-BuM9fp8B.js (new) 23.4 kB 🔴 +23.4 kB 🔴 +5.54 kB 🔴 +4.93 kB
assets/SubscriptionInactiveMemberDialog-BwfCoICX.js (removed) 2.55 kB 🟢 -2.55 kB 🟢 -1.03 kB 🟢 -898 B
assets/SubscriptionInactiveMemberDialog-CISH5QHK.js (new) 2.55 kB 🔴 +2.55 kB 🔴 +1.03 kB 🔴 +885 B
assets/ComfyHubPublishDialog-B3u4veDJ.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -96 B
assets/ComfyHubPublishDialog-Dqvub2y2.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +88 B
assets/useSubscriptionDialog-BBX5iVKI.js (removed) 110 B 🟢 -110 B 🟢 -102 B 🟢 -97 B
assets/useSubscriptionDialog-Ddo_jFMg.js (new) 110 B 🔴 +110 B 🔴 +102 B 🔴 +89 B

Status: 5 added / 5 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-C8HSqm0k.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -3.82 kB 🟢 -3.41 kB
assets/ComfyQueueButton-Cs5czG7B.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +3.83 kB 🔴 +3.42 kB
assets/useTerminalTabs-B1BaqZLC.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +3.84 kB 🔴 +3.39 kB
assets/useTerminalTabs-DXpoTn4a.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -3.84 kB 🟢 -3.39 kB
assets/TopbarBadge-DIc-t27-.js (removed) 7.7 kB 🟢 -7.7 kB 🟢 -1.87 kB 🟢 -1.65 kB
assets/TopbarBadge-DlIqVQE0.js (new) 7.7 kB 🔴 +7.7 kB 🔴 +1.87 kB 🔴 +1.65 kB
assets/ScrubableNumberInput-DFajIigv.js (new) 6.31 kB 🔴 +6.31 kB 🔴 +2.13 kB 🔴 +1.9 kB
assets/ScrubableNumberInput-DtS3tfT-.js (removed) 6.31 kB 🟢 -6.31 kB 🟢 -2.13 kB 🟢 -1.9 kB
assets/toggle-group-C_YwWen6.js (removed) 4.16 kB 🟢 -4.16 kB 🟢 -1.45 kB 🟢 -1.27 kB
assets/toggle-group-CDCWtO7C.js (new) 4.16 kB 🔴 +4.16 kB 🔴 +1.45 kB 🔴 +1.28 kB
assets/Button-CGEZY5xm.js (removed) 3.62 kB 🟢 -3.62 kB 🟢 -1.39 kB 🟢 -1.22 kB
assets/Button-DZZzC8wj.js (new) 3.62 kB 🔴 +3.62 kB 🔴 +1.39 kB 🔴 +1.22 kB
assets/SubscribeButton-DkhdpuXL.js (removed) 2.44 kB 🟢 -2.44 kB 🟢 -1.05 kB 🟢 -944 B
assets/SubscribeButton-ZGqTUctR.js (new) 2.44 kB 🔴 +2.44 kB 🔴 +1.05 kB 🔴 +948 B
assets/WidgetButton-Cf7ny_er.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +919 B 🔴 +807 B
assets/WidgetButton-CrWq2m3y.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -920 B 🟢 -805 B
assets/Input-BtrI8pub.js (new) 1.81 kB 🔴 +1.81 kB 🔴 +896 B 🔴 +780 B
assets/Input-CoBqWulD.js (removed) 1.81 kB 🟢 -1.81 kB 🟢 -899 B 🟢 -780 B
assets/UserAvatar-BgEC6oi2.js (removed) 1.29 kB 🟢 -1.29 kB 🟢 -672 B 🟢 -580 B
assets/UserAvatar-CV1tPEHJ.js (new) 1.29 kB 🔴 +1.29 kB 🔴 +672 B 🔴 +573 B
assets/CloudBadge-BaGx-Nt_.js (removed) 1.18 kB 🟢 -1.18 kB 🟢 -592 B 🟢 -521 B
assets/CloudBadge-BScUUMPD.js (new) 1.18 kB 🔴 +1.18 kB 🔴 +593 B 🔴 +523 B
assets/cloudFeedbackTopbarButton-oz5Zk1xh.js (new) 829 B 🔴 +829 B 🔴 +498 B 🔴 +419 B
assets/cloudFeedbackTopbarButton-u5uWqSzK.js (removed) 829 B 🟢 -829 B 🟢 -498 B 🟢 -418 B
assets/ComfyQueueButton-DjgmaCO-.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -90 B
assets/ComfyQueueButton-WEFogPo_.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +93 B

Status: 13 added / 13 removed

Data & Services — 266 kB (baseline 266 kB) • 🔴 +64 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/load3dService-DuuFMS9I.js (new) 125 kB 🔴 +125 kB 🔴 +27.6 kB 🔴 +23.4 kB
assets/load3dService-BbmgG1mR.js (removed) 125 kB 🟢 -125 kB 🟢 -27.6 kB 🟢 -23.4 kB
assets/api-BJU0jRiI.js (new) 84.3 kB 🔴 +84.3 kB 🔴 +22.8 kB 🔴 +19.6 kB
assets/api-BjbqznLI.js (removed) 84.3 kB 🟢 -84.3 kB 🟢 -22.7 kB 🟢 -19.6 kB
assets/workflowShareService-BvKb5o2_.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.91 kB 🔴 +4.36 kB
assets/workflowShareService-D1_yqcRB.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.91 kB 🟢 -4.35 kB
assets/keybindingService-l0N4T05X.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.67 kB 🔴 +3.23 kB
assets/keybindingService-lgMf0nTr.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.67 kB 🟢 -3.23 kB
assets/releaseStore-BxmUlpTN.js (removed) 8.29 kB 🟢 -8.29 kB 🟢 -2.33 kB 🟢 -2.05 kB
assets/releaseStore-swe5kUH4.js (new) 8.29 kB 🔴 +8.29 kB 🔴 +2.34 kB 🔴 +2.05 kB
assets/dialogStore-BIZegP2c.js (new) 5.33 kB 🔴 +5.33 kB 🔴 +1.65 kB 🔴 +1.42 kB
assets/dialogStore-DJKPzrW8.js (removed) 5.33 kB 🟢 -5.33 kB 🟢 -1.65 kB 🟢 -1.42 kB
assets/extensionStore-Bnemiq89.js (removed) 5.29 kB 🟢 -5.29 kB 🟢 -1.86 kB 🟢 -1.58 kB
assets/extensionStore-CPJoAm3I.js (new) 5.29 kB 🔴 +5.29 kB 🔴 +1.86 kB 🔴 +1.58 kB
assets/userStore-C-yMFnIY.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -931 B 🟢 -815 B
assets/userStore-CATTI9OY.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +932 B 🔴 +825 B
assets/serverConfigStore-BuOQIztq.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +810 B 🔴 +711 B
assets/serverConfigStore-DyqPrluv.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -809 B 🟢 -713 B
assets/audioService-CZYKhphI.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -863 B 🟢 -747 B
assets/audioService-DxFI81WG.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +863 B 🔴 +750 B
assets/toastStore-DLjER1Ce.js (removed) 889 B 🟢 -889 B 🟢 -429 B 🟢 -370 B
assets/toastStore-DZ4v0lBr.js (new) 889 B 🔴 +889 B 🔴 +430 B 🔴 +373 B
assets/dialogService-Cbt40M9L.js (new) 99 B 🔴 +99 B 🔴 +98 B 🔴 +90 B
assets/dialogService-DPdjLwd-.js (removed) 99 B 🟢 -99 B 🟢 -98 B 🟢 -88 B
assets/settingStore-Bjn6Sji5.js (removed) 98 B 🟢 -98 B 🟢 -98 B 🟢 -98 B
assets/settingStore-DMfWT_Sl.js (new) 98 B 🔴 +98 B 🔴 +98 B 🔴 +89 B
assets/assetsStore-gXjfyngR.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +85 B
assets/assetsStore-LFIr7bBI.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -86 B
assets/releaseStore-0IeroxoD.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +86 B
assets/releaseStore-BmIEB6M_.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -91 B

Status: 15 added / 15 removed

Utilities & Hooks — 3.31 MB (baseline 3.31 MB) • 🟢 -980 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/promotionUtils-DmKX62t1.js (new) 2.96 MB 🔴 +2.96 MB 🔴 +685 kB 🔴 +516 kB
assets/promotionUtils-CjnI5laQ.js (removed) 2.96 MB 🟢 -2.96 MB 🟢 -685 kB 🟢 -516 kB
assets/useConflictDetection-DCO9b2bf.js (new) 233 kB 🔴 +233 kB 🔴 +52 kB 🔴 +42.3 kB
assets/useConflictDetection-RbkyxBF3.js (removed) 233 kB 🟢 -233 kB 🟢 -52 kB 🟢 -42.4 kB
assets/useLoad3d-BJlYMGHw.js (new) 25.5 kB 🔴 +25.5 kB 🔴 +5.75 kB 🔴 +5.1 kB
assets/useLoad3d-BP_WMvW3.js (removed) 25.5 kB 🟢 -25.5 kB 🟢 -5.75 kB 🟢 -5.09 kB
assets/useLoad3dViewer-CQ_YVy-0.js (new) 21.1 kB 🔴 +21.1 kB 🔴 +4.98 kB 🔴 +4.37 kB
assets/useLoad3dViewer-kRoye-kj.js (removed) 21.1 kB 🟢 -21.1 kB 🟢 -4.98 kB 🟢 -4.35 kB
assets/formatUtil-D6CzH_lA.js (new) 16.8 kB 🔴 +16.8 kB 🔴 +5.71 kB 🔴 +5.01 kB
assets/formatUtil-DBVUejmh.js (removed) 16.8 kB 🟢 -16.8 kB 🟢 -5.71 kB 🟢 -5.01 kB
assets/useImageQuiet-Bh1SQZra.js (new) 8.36 kB 🔴 +8.36 kB 🔴 +2.79 kB 🔴 +2.43 kB
assets/useImageQuiet-qHWSGtTC.js (removed) 8.36 kB 🟢 -8.36 kB 🟢 -2.79 kB 🟢 -2.41 kB
assets/useFeatureFlags-CzvkwEfy.js (removed) 6.36 kB 🟢 -6.36 kB 🟢 -2.01 kB 🟢 -1.7 kB
assets/useTypeformEmbed-BtBgeggK.js (new) 5.91 kB 🔴 +5.91 kB 🔴 +2.28 kB 🔴 +1.89 kB
assets/useTypeformEmbed-ZqaSXsqc.js (removed) 5.91 kB 🟢 -5.91 kB 🟢 -2.29 kB 🟢 -1.89 kB
assets/useFeatureFlags-eSCAxO5B.js (new) 5.31 kB 🔴 +5.31 kB 🔴 +1.64 kB 🔴 +1.42 kB
assets/downloadUtil-DGfqBAJC.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.85 kB 🔴 +1.53 kB
assets/downloadUtil-nOVEVpSz.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.85 kB 🟢 -1.53 kB
assets/curveUtils-CRNKHQZi.js (removed) 3.83 kB 🟢 -3.83 kB 🟢 -1.29 kB 🟢 -1.13 kB
assets/curveUtils-DuJciwgV.js (new) 3.83 kB 🔴 +3.83 kB 🔴 +1.29 kB 🔴 +1.14 kB
assets/useSessionCookie-BxFE9lUh.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.15 kB 🟢 -979 B
assets/useSessionCookie-DiwR4vxH.js (new) 3.33 kB 🔴 +3.33 kB 🔴 +1.15 kB 🔴 +984 B
assets/subscriptionCheckoutUtil-BoZrG9Sz.js (removed) 3.31 kB 🟢 -3.31 kB 🟢 -1.36 kB 🟢 -1.18 kB
assets/subscriptionCheckoutUtil-DlL7fMih.js (new) 3.31 kB 🔴 +3.31 kB 🔴 +1.36 kB 🔴 +1.18 kB
assets/useExternalLink-BWGVCIv7.js (removed) 3.03 kB 🟢 -3.03 kB 🟢 -1.16 kB 🟢 -1.02 kB
assets/useExternalLink-CAS_Qxou.js (new) 3.03 kB 🔴 +3.03 kB 🔴 +1.16 kB 🔴 +1.02 kB
assets/assetPreviewUtil--lsUxdHR.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.01 kB 🔴 +875 B
assets/assetPreviewUtil-lvzzMaxA.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1 kB 🟢 -876 B
assets/useFeatureUsageTracker-CQLF2p3J.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -944 B 🟢 -805 B
assets/useFeatureUsageTracker-CY98pKEr.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +943 B 🔴 +802 B
assets/useUpstreamValue-Bzr4dCuL.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -792 B 🟢 -715 B
assets/useUpstreamValue-DQGoeXHy.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +794 B 🔴 +703 B
assets/markdownRendererUtil-DMvz2RFL.js (new) 1.59 kB 🔴 +1.59 kB 🔴 +830 B 🔴 +722 B
assets/markdownRendererUtil-DtxY94tK.js (removed) 1.59 kB 🟢 -1.59 kB 🟢 -830 B 🟢 -721 B
assets/useErrorHandling-C05H7OJE.js (removed) 1.54 kB 🟢 -1.54 kB 🟢 -647 B 🟢 -551 B
assets/useErrorHandling-Co4hBGKj.js (new) 1.54 kB 🔴 +1.54 kB 🔴 +645 B 🔴 +549 B
assets/useWorkspaceTierLabel-ClRZaBb7.js (removed) 1.35 kB 🟢 -1.35 kB 🟢 -665 B 🟢 -574 B
assets/useWorkspaceTierLabel-CPRiOa-Q.js (new) 1.35 kB 🔴 +1.35 kB 🔴 +664 B 🔴 +553 B
assets/histogramUtil-Bnyz1kJB.js (new) 972 B 🔴 +972 B 🔴 +572 B 🔴 +487 B
assets/histogramUtil-DVLMDgyS.js (removed) 972 B 🟢 -972 B 🟢 -572 B 🟢 -489 B
assets/errorUtil-CeVwjeWE.js (removed) 843 B 🟢 -843 B 🟢 -488 B 🟢 -405 B
assets/errorUtil-D7UgQKRk.js (new) 843 B 🔴 +843 B 🔴 +490 B 🔴 +406 B
assets/useClickDragGuard-D82rMqKP.js (new) 828 B 🔴 +828 B 🔴 +411 B 🔴 +361 B
assets/useClickDragGuard-HoatuWxi.js (removed) 828 B 🟢 -828 B 🟢 -408 B 🟢 -359 B
assets/useWorkspaceSwitch-D8O-8hIr.js (new) 748 B 🔴 +748 B 🔴 +385 B 🔴 +336 B
assets/useWorkspaceSwitch-DepYcBZ3.js (removed) 748 B 🟢 -748 B 🟢 -386 B 🟢 -339 B
assets/envUtil-DPYJeo7H.js (removed) 489 B 🟢 -489 B 🟢 -308 B 🟢 -243 B
assets/envUtil-DTNGUcFd.js (new) 489 B 🔴 +489 B 🔴 +308 B 🔴 +243 B
assets/_plugin-vue_export-helper-BKnUacfG.js (removed) 365 B 🟢 -365 B 🟢 -254 B 🟢 -213 B
assets/_plugin-vue_export-helper-nTnBAJ91.js (new) 365 B 🔴 +365 B 🔴 +254 B 🔴 +213 B
assets/useLoad3d-BrpRtNUl.js (new) 311 B 🔴 +311 B 🔴 +165 B 🔴 +147 B
assets/useLoad3d-tWIUKWoO.js (removed) 311 B 🟢 -311 B 🟢 -164 B 🟢 -147 B
assets/SkeletonUtils-Bc8KWryk.js (new) 133 B 🔴 +133 B 🔴 +111 B 🔴 +110 B
assets/SkeletonUtils-F8HD26gR.js (removed) 133 B 🟢 -133 B 🟢 -111 B 🟢 -109 B
assets/useSessionCookie-CdM6x-tQ.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -86 B
assets/useSessionCookie-DKhwnuFt.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +84 B
assets/useLoad3dViewer-B1KFvPN_.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -83 B
assets/useLoad3dViewer-D9ReTWVk.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +86 B
assets/useCurrentUser-BcQw5z9z.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +83 B
assets/useCurrentUser-BoAzhP0l.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -90 B

Status: 30 added / 30 removed

Vendor & Third-Party — 15.3 MB (baseline 15.3 MB) • 🔴 +1.06 kB

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-three-1JIRRquj.js (removed) 7.09 MB 🟢 -7.09 MB 🟢 -2.18 MB 🟢 -1.02 MB
assets/vendor-three-DAUqfLNT.js (new) 7.09 MB 🔴 +7.09 MB 🔴 +2.18 MB 🔴 +1.02 MB
assets/vendor-other--QMOWnQD.js (new) 1.87 MB 🔴 +1.87 MB 🔴 +404 kB 🔴 +326 kB
assets/vendor-other-CQVKmfMJ.js (removed) 1.87 MB 🟢 -1.87 MB 🟢 -404 kB 🟢 -326 kB
assets/vendor-primevue-Bp9xj0ER.js (new) 1.69 MB 🔴 +1.69 MB 🔴 +306 kB 🔴 +185 kB
assets/vendor-primevue-DUHRgx0Y.js (removed) 1.69 MB 🟢 -1.69 MB 🟢 -306 kB 🟢 -185 kB
assets/vendor-tiptap-Bbd9jFG1.js (new) 743 kB 🔴 +743 kB 🔴 +183 kB 🔴 +147 kB
assets/vendor-tiptap-BOgG_8hl.js (removed) 743 kB 🟢 -743 kB 🟢 -183 kB 🟢 -147 kB
assets/vendor-reka-ui-DQClbqQd.js (removed) 491 kB 🟢 -491 kB 🟢 -89.4 kB 🟢 -68.9 kB
assets/vendor-reka-ui-DYNKiX8b.js (new) 491 kB 🔴 +491 kB 🔴 +89.4 kB 🔴 +68.9 kB
assets/vendor-chart-BDsuuUum.js (new) 411 kB 🔴 +411 kB 🔴 +100 kB 🔴 +82.9 kB
assets/vendor-chart-D6TpX5WY.js (removed) 411 kB 🟢 -411 kB 🟢 -100 kB 🟢 -82.9 kB
assets/vendor-xterm-De2hS1TU.js (removed) 374 kB 🟢 -374 kB 🟢 -75.6 kB 🟢 -61.1 kB
assets/vendor-xterm-Iofb9Uh8.js (new) 374 kB 🔴 +374 kB 🔴 +75.6 kB 🔴 +61.1 kB
assets/vendor-yjs-BdhCquJh.js (new) 246 kB 🔴 +246 kB 🔴 +53.3 kB 🔴 +44.1 kB
assets/vendor-yjs-BiH7xZSO.js (removed) 246 kB 🟢 -246 kB 🟢 -53.3 kB 🟢 -44.1 kB
assets/vendor-i18n-DqMDtj1Y.js (removed) 140 kB 🟢 -140 kB 🟢 -30.7 kB 🟢 -25.8 kB
assets/vendor-i18n-oHDck8j3.js (new) 140 kB 🔴 +140 kB 🔴 +30.7 kB 🔴 +25.9 kB
assets/vendor-markdown-DaMlfZYH.js (removed) 120 kB 🟢 -120 kB 🟢 -30.3 kB 🟢 -26.5 kB
assets/vendor-markdown-qoizd2K2.js (new) 120 kB 🔴 +120 kB 🔴 +30.3 kB 🔴 +26.4 kB
assets/vendor-axios-DFahpQvv.js (removed) 109 kB 🟢 -109 kB 🟢 -29.4 kB 🟢 -25.4 kB
assets/vendor-axios-DxuUMRrt.js (new) 109 kB 🔴 +109 kB 🔴 +29.4 kB 🔴 +25.4 kB
assets/vendor-zod-BXNGqh-6.js (new) 105 kB 🔴 +105 kB 🔴 +18.8 kB 🔴 +16 kB
assets/vendor-zod-cnyoNRiP.js (removed) 105 kB 🟢 -105 kB 🟢 -18.8 kB 🟢 -16 kB
assets/firebase-DMx1LmN0.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +632 B 🔴 +530 B

Status: 13 added / 12 removed / 4 unchanged

Other — 10.4 MB (baseline 10.4 MB) • 🔴 +373 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/nodeDefs-8oCoWQZb.js (removed) 670 kB 🟢 -670 kB 🟢 -109 kB 🟢 -74.5 kB
assets/nodeDefs-CER2D9M1.js (new) 670 kB 🔴 +670 kB 🔴 +109 kB 🔴 +74.5 kB
assets/nodeDefs-BjY2mUqt.js (removed) 614 kB 🟢 -614 kB 🟢 -98.3 kB 🟢 -69 kB
assets/nodeDefs-C5yLtMlP.js (new) 614 kB 🔴 +614 kB 🔴 +98.3 kB 🔴 +69 kB
assets/nodeDefs-B9wdLfzs.js (new) 611 kB 🔴 +611 kB 🔴 +101 kB 🔴 +71.1 kB
assets/nodeDefs-BErT82y3.js (removed) 611 kB 🟢 -611 kB 🟢 -101 kB 🟢 -71.1 kB
assets/nodeDefs-BAx_7ZVu.js (new) 562 kB 🔴 +562 kB 🔴 +98.6 kB 🔴 +68.7 kB
assets/nodeDefs-BayF-Pgd.js (removed) 562 kB 🟢 -562 kB 🟢 -98.6 kB 🟢 -68.7 kB
assets/nodeDefs-ByrcJKk-.js (new) 541 kB 🔴 +541 kB 🔴 +96.1 kB 🔴 +68.1 kB
assets/nodeDefs-CCYz8t4X.js (removed) 541 kB 🟢 -541 kB 🟢 -96.1 kB 🟢 -68.1 kB
assets/nodeDefs-CBMF1ksO.js (removed) 538 kB 🟢 -538 kB 🟢 -94.6 kB 🟢 -69 kB
assets/nodeDefs-Cjp4IdYH.js (new) 538 kB 🔴 +538 kB 🔴 +94.6 kB 🔴 +69 kB
assets/nodeDefs-BtQcM6i5.js (new) 534 kB 🔴 +534 kB 🔴 +95.2 kB 🔴 +69.6 kB
assets/nodeDefs-U12-4LgT.js (removed) 534 kB 🟢 -534 kB 🟢 -95.2 kB 🟢 -69.6 kB
assets/nodeDefs-k1FUkojG.js (removed) 531 kB 🟢 -531 kB 🟢 -92 kB 🟢 -67.2 kB
assets/nodeDefs-ugpkXaIP.js (new) 531 kB 🔴 +531 kB 🔴 +92 kB 🔴 +67.2 kB
assets/nodeDefs-BRc-ELeq.js (removed) 524 kB 🟢 -524 kB 🟢 -90.9 kB 🟢 -66.5 kB
assets/nodeDefs-DGQWuJ4s.js (new) 524 kB 🔴 +524 kB 🔴 +90.9 kB 🔴 +66.5 kB
assets/nodeDefs-BNhq_6cm.js (removed) 504 kB 🟢 -504 kB 🟢 -84.2 kB 🟢 -62.4 kB
assets/nodeDefs-D6rpDHvv.js (new) 504 kB 🔴 +504 kB 🔴 +84.2 kB 🔴 +62.4 kB
assets/nodeDefs-Dijy2Ve_.js (removed) 488 kB 🟢 -488 kB 🟢 -94.3 kB 🟢 -66.3 kB
assets/nodeDefs-Dp_yovpB.js (new) 488 kB 🔴 +488 kB 🔴 +94.3 kB 🔴 +66.3 kB
assets/nodeDefs-B-eNa-JN.js (removed) 483 kB 🟢 -483 kB 🟢 -93 kB 🟢 -64.9 kB
assets/nodeDefs-n50O00xv.js (new) 483 kB 🔴 +483 kB 🔴 +93 kB 🔴 +64.9 kB
assets/main-CXtOnm71.js (removed) 272 kB 🟢 -272 kB 🟢 -67.8 kB 🟢 -53 kB
assets/main-J6iimX0P.js (new) 272 kB 🔴 +272 kB 🔴 +67.8 kB 🔴 +53 kB
assets/main-1JjG8VWU.js (removed) 244 kB 🟢 -244 kB 🟢 -61.4 kB 🟢 -49.2 kB
assets/main-yDbSW_kK.js (new) 244 kB 🔴 +244 kB 🔴 +61.4 kB 🔴 +49.1 kB
assets/main-C3nQceKI.js (removed) 232 kB 🟢 -232 kB 🟢 -60.7 kB 🟢 -48.4 kB
assets/main-CJcSGqGr.js (new) 232 kB 🔴 +232 kB 🔴 +60.7 kB 🔴 +48.3 kB
assets/main-D_XL073V.js (removed) 225 kB 🟢 -225 kB 🟢 -60.5 kB 🟢 -47.8 kB
assets/main-DDZwJRH6.js (new) 225 kB 🔴 +225 kB 🔴 +60.5 kB 🔴 +47.8 kB
assets/main-BLXzDn8H.js (new) 204 kB 🔴 +204 kB 🔴 +59 kB 🔴 +48.9 kB
assets/main-CVqzcZWt.js (removed) 204 kB 🟢 -204 kB 🟢 -59 kB 🟢 -48.9 kB
assets/main-C7tPAGXD.js (new) 202 kB 🔴 +202 kB 🔴 +58.4 kB 🔴 +46.8 kB
assets/main-D9bgX8n1.js (removed) 202 kB 🟢 -202 kB 🟢 -58.4 kB 🟢 -46.8 kB
assets/main-0TSca90S.js (new) 197 kB 🔴 +197 kB 🔴 +57.6 kB 🔴 +47.6 kB
assets/main-C9NacrCy.js (removed) 197 kB 🟢 -197 kB 🟢 -57.6 kB 🟢 -47.6 kB
assets/main-CAtSOX_k.js (removed) 195 kB 🟢 -195 kB 🟢 -57.8 kB 🟢 -48.2 kB
assets/main-DDRZWsYt.js (new) 195 kB 🔴 +195 kB 🔴 +57.8 kB 🔴 +48.2 kB
assets/main-BzUKAeRe.js (new) 193 kB 🔴 +193 kB 🔴 +57 kB 🔴 +47.7 kB
assets/main-zGE5PDel.js (removed) 193 kB 🟢 -193 kB 🟢 -57 kB 🟢 -47.7 kB
assets/main-8HuGIwg7.js (new) 175 kB 🔴 +175 kB 🔴 +51.1 kB 🔴 +43 kB
assets/main-DPI3tvdI.js (removed) 175 kB 🟢 -175 kB 🟢 -51.1 kB 🟢 -43 kB
assets/main-Bbq_BCzC.js (removed) 172 kB 🟢 -172 kB 🟢 -56.6 kB 🟢 -45.1 kB
assets/main-Bg-J_oTa.js (new) 172 kB 🔴 +172 kB 🔴 +56.6 kB 🔴 +45.1 kB
assets/main-Cba2MaLs.js (new) 170 kB 🔴 +170 kB 🔴 +56.6 kB 🔴 +44.8 kB
assets/main-SCnytUbM.js (removed) 170 kB 🟢 -170 kB 🟢 -56.6 kB 🟢 -44.8 kB
assets/core-BpgnrfGO.js (new) 118 kB 🔴 +118 kB 🔴 +30.4 kB 🔴 +25.7 kB
assets/core-CuaP667X.js (removed) 118 kB 🟢 -118 kB 🟢 -30.4 kB 🟢 -25.7 kB
assets/WidgetSelect-4D4f4h95.js (new) 82.6 kB 🔴 +82.6 kB 🔴 +18.1 kB 🔴 +15.7 kB
assets/WidgetSelect-BWXrZ-OE.js (removed) 82.6 kB 🟢 -82.6 kB 🟢 -18.1 kB 🟢 -15.6 kB
assets/SubscriptionRequiredDialogContentWorkspace-BMdi8roM.js (new) 47.8 kB 🔴 +47.8 kB 🔴 +9.08 kB 🔴 +7.85 kB
assets/SubscriptionRequiredDialogContentWorkspace-muJr1mx1.js (removed) 47.8 kB 🟢 -47.8 kB 🟢 -9.08 kB 🟢 -7.82 kB
assets/Load3DControls-D1QpYtNJ.js (new) 46.8 kB 🔴 +46.8 kB 🔴 +7.57 kB 🔴 +6.61 kB
assets/Load3DControls-DRnU0XfX.js (removed) 46.8 kB 🟢 -46.8 kB 🟢 -7.57 kB 🟢 -6.62 kB
assets/nodeDefs-C1yOHuCJ.js (new) 36.4 kB 🔴 +36.4 kB 🔴 +9.34 kB 🔴 +8.18 kB
assets/nodeDefs-CH8TFeKf.js (removed) 36.4 kB 🟢 -36.4 kB 🟢 -9.34 kB 🟢 -8.18 kB
assets/WorkspacePanelContent-B9hM1tsx.js (new) 33.3 kB 🔴 +33.3 kB 🔴 +6.96 kB 🔴 +6.16 kB
assets/WorkspacePanelContent-CC4kOEQp.js (removed) 33.3 kB 🟢 -33.3 kB 🟢 -6.96 kB 🟢 -6.17 kB
assets/WidgetPainter-CMUNll5e.js (new) 32.6 kB 🔴 +32.6 kB 🔴 +7.87 kB 🔴 +7 kB
assets/WidgetPainter-DDfM9MQa.js (removed) 32.6 kB 🟢 -32.6 kB 🟢 -7.87 kB 🟢 -7 kB
assets/Load3dViewerContent-DL9yBBJE.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -6.3 kB 🟢 -5.47 kB
assets/Load3dViewerContent-XIf4a6OA.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +6.3 kB 🔴 +5.47 kB
assets/SubscriptionRequiredDialogContent-8y7DKg98.js (removed) 26.6 kB 🟢 -26.6 kB 🟢 -6.57 kB 🟢 -5.79 kB
assets/SubscriptionRequiredDialogContent-BQMKvy4I.js (new) 26.6 kB 🔴 +26.6 kB 🔴 +6.57 kB 🔴 +5.79 kB
assets/ColorPicker-B9NtyI7h.js (new) 23.7 kB 🔴 +23.7 kB 🔴 +6.14 kB 🔴 +5.42 kB
assets/ColorPicker-CvLCKknX.js (removed) 23.7 kB 🟢 -23.7 kB 🟢 -6.14 kB 🟢 -5.41 kB
assets/WidgetImageCrop-CCjFypoW.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.75 kB 🟢 -5.05 kB
assets/WidgetImageCrop-z-mmalnh.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.75 kB 🔴 +5.04 kB
assets/SubscriptionPanelContentWorkspace-BPSnacy1.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -5.16 kB 🟢 -4.56 kB
assets/SubscriptionPanelContentWorkspace-Czfztwfg.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.16 kB 🔴 +4.55 kB
assets/load3d-B7PxOOgD.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -5.18 kB 🟢 -4.49 kB
assets/load3d-vFE1FOiJ.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +5.18 kB 🔴 +4.49 kB
assets/CurrentUserPopoverWorkspace-BaRAt-1Q.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.68 kB 🟢 -4.18 kB
assets/CurrentUserPopoverWorkspace-ChjHTzEm.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.68 kB 🔴 +4.18 kB
assets/SignInContent-_r4IbxnR.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -5.01 kB 🟢 -4.37 kB
assets/SignInContent-ep3aHmBU.js (new) 19.9 kB 🔴 +19.9 kB 🔴 +5 kB 🔴 +4.36 kB
assets/Load3D-BR-jCDsI.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.52 kB 🟢 -3.94 kB
assets/Load3D-ia9zpqt-.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.52 kB 🔴 +3.94 kB
assets/WidgetInputNumber-2LpqTQiP.js (new) 19 kB 🔴 +19 kB 🔴 +4.79 kB 🔴 +4.25 kB
assets/WidgetInputNumber-BsdBBeIT.js (removed) 19 kB 🟢 -19 kB 🟢 -4.79 kB 🟢 -4.25 kB
assets/commands-CDac1t5R.js (removed) 18.4 kB 🟢 -18.4 kB 🟢 -4 kB 🟢 -3.12 kB
assets/commands-CosHAtos.js (new) 18.4 kB 🔴 +18.4 kB 🔴 +3.99 kB 🔴 +3.1 kB
assets/commands-BpuLWLYp.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -3.69 kB 🟢 -2.83 kB
assets/commands-fS28a-a4.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +3.69 kB 🔴 +2.83 kB
assets/commands-Bz_W84Z6.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.77 kB 🟢 -2.96 kB
assets/commands-DRZvBmwU.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.76 kB 🔴 +2.96 kB
assets/WidgetRecordAudio-BgE_7WV6.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.63 kB 🔴 +4.14 kB
assets/WidgetRecordAudio-BqUeHYkq.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.63 kB 🟢 -4.14 kB
assets/commands-bc5e55hX.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -3.8 kB 🟢 -2.99 kB
assets/commands-ChSJg6q6.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +3.8 kB 🔴 +2.99 kB
assets/commands-C8aaHXWO.js (removed) 16.3 kB 🟢 -16.3 kB 🟢 -3.53 kB 🟢 -2.95 kB
assets/commands-DU3HaoJE.js (new) 16.3 kB 🔴 +16.3 kB 🔴 +3.53 kB 🔴 +2.94 kB
assets/WidgetRange-CWGyE3CN.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.17 kB 🟢 -3.73 kB
assets/WidgetRange-D9XnA-PN.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.17 kB 🔴 +3.73 kB
assets/commands-BR8zmEO6.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.5 kB 🔴 +2.91 kB
assets/commands-BZIIcMcH.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.5 kB 🟢 -2.91 kB
assets/commands-BNZtMbkH.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.42 kB 🔴 +2.8 kB
assets/commands-Dh0t0-uc.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.42 kB 🟢 -2.8 kB
assets/commands-BnB0xMlW.js (new) 15.7 kB 🔴 +15.7 kB 🔴 +3.39 kB 🔴 +2.81 kB
assets/commands-jZNeQBVA.js (removed) 15.7 kB 🟢 -15.7 kB 🟢 -3.39 kB 🟢 -2.81 kB
assets/commands--lz7raZ4.js (new) 15.6 kB 🔴 +15.6 kB 🔴 +3.65 kB 🔴 +2.85 kB
assets/commands-BQLUUrFO.js (removed) 15.6 kB 🟢 -15.6 kB 🟢 -3.65 kB 🟢 -2.85 kB
assets/commands-CFf0b0b9.js (removed) 15.3 kB 🟢 -15.3 kB 🟢 -3.18 kB 🟢 -2.69 kB
assets/commands-CLQWyE6M.js (new) 15.3 kB 🔴 +15.3 kB 🔴 +3.18 kB 🔴 +2.7 kB
assets/commands-DuYMR-go.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.59 kB 🟢 -2.74 kB
assets/commands-FIaDA_1E.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.59 kB 🔴 +2.73 kB
assets/commands-BdGe1uQn.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.54 kB 🔴 +2.63 kB
assets/commands-BsFKaKeh.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -3.54 kB 🟢 -2.63 kB
assets/DialogHeader-BUAHhO1E.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.78 kB 🔴 +3.36 kB
assets/DialogHeader-DWIsCugj.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.79 kB 🟢 -3.35 kB
assets/WaveAudioPlayer-BGQVQu0d.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.49 kB 🟢 -3.07 kB
assets/WaveAudioPlayer-D06KUrRg.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.49 kB 🔴 +3.06 kB
assets/i18n-CHieCsWj.js (new) 11.6 kB 🔴 +11.6 kB 🔴 +3.16 kB 🔴 +2.68 kB
assets/i18n-CopOBalY.js (removed) 11.6 kB 🟢 -11.6 kB 🟢 -3.15 kB 🟢 -2.67 kB
assets/WidgetCurve-19XwYyYj.js (new) 11.3 kB 🔴 +11.3 kB 🔴 +3.5 kB 🔴 +3.17 kB
assets/WidgetCurve-D2OlTUrw.js (removed) 11.3 kB 🟢 -11.3 kB 🟢 -3.5 kB 🟢 -3.18 kB
assets/AudioPreviewPlayer-BOAYaWzN.js (removed) 10.6 kB 🟢 -10.6 kB 🟢 -3.07 kB 🟢 -2.73 kB
assets/AudioPreviewPlayer-DVZaiTQr.js (new) 10.6 kB 🔴 +10.6 kB 🔴 +3.06 kB 🔴 +2.73 kB
assets/TeamWorkspacesDialogContent-4DVVhsjK.js (removed) 10.4 kB 🟢 -10.4 kB 🟢 -3.01 kB 🟢 -2.67 kB
assets/TeamWorkspacesDialogContent-Cy7OXSl7.js (new) 10.4 kB 🔴 +10.4 kB 🔴 +3.01 kB 🔴 +2.68 kB
assets/SelectValue-D6SDDg-c.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.48 kB 🟢 -2.19 kB
assets/SelectValue-DhRvWrA9.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.48 kB 🔴 +2.18 kB
assets/Load3DConfiguration-8vou1fB9.js (removed) 9.02 kB 🟢 -9.02 kB 🟢 -2.66 kB 🟢 -2.35 kB
assets/Load3DConfiguration-jWhOn60S.js (new) 9.02 kB 🔴 +9.02 kB 🔴 +2.66 kB 🔴 +2.35 kB
assets/nodeTemplates-BxMCyGLp.js (new) 8.33 kB 🔴 +8.33 kB 🔴 +2.88 kB 🔴 +2.53 kB
assets/nodeTemplates-s5rWsI9G.js (removed) 8.33 kB 🟢 -8.33 kB 🟢 -2.88 kB 🟢 -2.53 kB
assets/onboardingCloudRoutes-BMW1ZlNo.js (new) 8.3 kB 🔴 +8.3 kB 🔴 +2.57 kB 🔴 +2.21 kB
assets/onboardingCloudRoutes-D7H2Wt9R.js (removed) 8.01 kB 🟢 -8.01 kB 🟢 -2.48 kB 🟢 -2.13 kB
assets/NightlySurveyController-B_AJXBJX.js (new) 7.95 kB 🔴 +7.95 kB 🔴 +2.7 kB 🔴 +2.37 kB
assets/NightlySurveyController-cP8fjGeY.js (removed) 7.95 kB 🟢 -7.95 kB 🟢 -2.7 kB 🟢 -2.4 kB
assets/WidgetImageCompare-B5JdMXoD.js (removed) 7.82 kB 🟢 -7.82 kB 🟢 -2.26 kB 🟢 -1.98 kB
assets/WidgetImageCompare-CzaUBjL3.js (new) 7.82 kB 🔴 +7.82 kB 🔴 +2.26 kB 🔴 +1.98 kB
assets/Popover-nkfGZpZ-.js (removed) 7.18 kB 🟢 -7.18 kB 🟢 -2.58 kB 🟢 -2.29 kB
assets/Popover-ZwdFUZpc.js (new) 7.18 kB 🔴 +7.18 kB 🔴 +2.58 kB 🔴 +2.26 kB
assets/InviteMemberDialogContent-2_wkgrTx.js (new) 7.03 kB 🔴 +7.03 kB 🔴 +2.13 kB 🔴 +1.84 kB
assets/InviteMemberDialogContent-BXgRKXP2.js (removed) 7.03 kB 🟢 -7.03 kB 🟢 -2.14 kB 🟢 -1.85 kB
assets/commands-B0yn9kyb.js (removed) 6.45 kB 🟢 -6.45 kB 🟢 -1.52 kB 🟢 -1.31 kB
assets/commands-r70qOjmU.js (new) 6.45 kB 🔴 +6.45 kB 🔴 +1.52 kB 🔴 +1.31 kB
assets/WidgetWithControl-CtrMtX1J.js (new) 6.22 kB 🔴 +6.22 kB 🔴 +2.5 kB 🔴 +2.21 kB
assets/WidgetWithControl-DgkWGFEM.js (removed) 6.19 kB 🟢 -6.19 kB 🟢 -2.48 kB 🟢 -2.22 kB
assets/AnimationControls-Cxw6lLSC.js (new) 6.16 kB 🔴 +6.16 kB 🔴 +1.88 kB 🔴 +1.67 kB
assets/AnimationControls-DaW__BLR.js (removed) 6.16 kB 🟢 -6.16 kB 🟢 -1.88 kB 🟢 -1.66 kB
assets/main-_2RfqywM.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.79 kB 🟢 -1.52 kB
assets/main-BuPtS2PN.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.8 kB 🔴 +1.52 kB
assets/load3dPreviewExtensions-B8JU1Eix.js (removed) 5.38 kB 🟢 -5.38 kB 🟢 -1.75 kB 🟢 -1.55 kB
assets/load3dPreviewExtensions-OZAiKXg8.js (new) 5.38 kB 🔴 +5.38 kB 🔴 +1.75 kB 🔴 +1.55 kB
assets/CreateWorkspaceDialogContent-oMcB1Gak.js (new) 5.19 kB 🔴 +5.19 kB 🔴 +1.83 kB 🔴 +1.59 kB
assets/CreateWorkspaceDialogContent-QmlkVoBf.js (removed) 5.19 kB 🟢 -5.19 kB 🟢 -1.83 kB 🟢 -1.58 kB
assets/CloudNotificationContent-CsIycCfJ.js (removed) 5.11 kB 🟢 -5.11 kB 🟢 -1.78 kB 🟢 -1.54 kB
assets/CloudNotificationContent-DNHMAxGw.js (new) 5.11 kB 🔴 +5.11 kB 🔴 +1.79 kB 🔴 +1.54 kB
assets/missingModelDownload-CPgw3DRV.js (removed) 5.07 kB 🟢 -5.07 kB 🟢 -1.98 kB 🟢 -1.72 kB
assets/missingModelDownload-CUteiVFv.js (new) 5.07 kB 🔴 +5.07 kB 🔴 +1.98 kB 🔴 +1.72 kB
assets/FreeTierDialogContent-CivdqM2Z.js (new) 5.02 kB 🔴 +5.02 kB 🔴 +1.69 kB 🔴 +1.49 kB
assets/FreeTierDialogContent-DLDOtOqF.js (removed) 5.02 kB 🟢 -5.02 kB 🟢 -1.69 kB 🟢 -1.5 kB
assets/EditWorkspaceDialogContent-BZwzHFZo.js (new) 5 kB 🔴 +5 kB 🔴 +1.8 kB 🔴 +1.56 kB
assets/EditWorkspaceDialogContent-DAUgDWn3.js (removed) 5 kB 🟢 -5 kB 🟢 -1.8 kB 🟢 -1.56 kB
assets/WidgetTextarea-BDiZpcnJ.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.9 kB 🟢 -1.66 kB
assets/WidgetTextarea-cCJreI4u.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.9 kB 🔴 +1.66 kB
assets/saveMesh-CgiOxNnq.js (new) 4.79 kB 🔴 +4.79 kB 🔴 +1.54 kB 🔴 +1.36 kB
assets/saveMesh-DQrIXhej.js (removed) 4.79 kB 🟢 -4.79 kB 🟢 -1.54 kB 🟢 -1.36 kB
assets/Preview3d-FZoW1VFH.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.43 kB 🟢 -1.23 kB
assets/Preview3d-Ka9zgRdj.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.43 kB 🔴 +1.24 kB
assets/ValueControlPopover-D3S5C3g2.js (removed) 4.55 kB 🟢 -4.55 kB 🟢 -1.59 kB 🟢 -1.41 kB
assets/ValueControlPopover-QxbTuaXt.js (new) 4.55 kB 🔴 +4.55 kB 🔴 +1.58 kB 🔴 +1.41 kB
assets/CancelSubscriptionDialogContent-BHCI-dt8.js (new) 4.54 kB 🔴 +4.54 kB 🔴 +1.65 kB 🔴 +1.44 kB
assets/CancelSubscriptionDialogContent-Tbjx_P-x.js (removed) 4.54 kB 🟢 -4.54 kB 🟢 -1.66 kB 🟢 -1.44 kB
assets/tierBenefits-B_JEGmoL.js (new) 4.46 kB 🔴 +4.46 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/tierBenefits-eFIhsV76.js (removed) 4.46 kB 🟢 -4.46 kB 🟢 -1.58 kB 🟢 -1.37 kB
assets/ApiNodesSignInContent-DK_J0P8a.js (removed) 4.14 kB 🟢 -4.14 kB 🟢 -1.35 kB 🟢 -1.2 kB
assets/ApiNodesSignInContent-tdj_yWv1.js (new) 4.14 kB 🔴 +4.14 kB 🔴 +1.34 kB 🔴 +1.18 kB
assets/DeleteWorkspaceDialogContent-CLfXdOg6.js (new) 3.91 kB 🔴 +3.91 kB 🔴 +1.47 kB 🔴 +1.26 kB
assets/DeleteWorkspaceDialogContent-CmAZHuME.js (removed) 3.91 kB 🟢 -3.91 kB 🟢 -1.47 kB 🟢 -1.27 kB
assets/WidgetBoundingBox-CmgNbEgb.js (new) 3.82 kB 🔴 +3.82 kB 🔴 +1.06 kB 🔴 +935 B
assets/WidgetBoundingBox-Nh5DXube.js (removed) 3.82 kB 🟢 -3.82 kB 🟢 -1.06 kB 🟢 -925 B
assets/WidgetGalleria-Be_7a301.js (new) 3.8 kB 🔴 +3.8 kB 🔴 +1.47 kB 🔴 +1.32 kB
assets/WidgetGalleria-BMqGCOCp.js (removed) 3.8 kB 🟢 -3.8 kB 🟢 -1.47 kB 🟢 -1.32 kB
assets/LeaveWorkspaceDialogContent-Bzu4FmUt.js (new) 3.73 kB 🔴 +3.73 kB 🔴 +1.42 kB 🔴 +1.22 kB
assets/LeaveWorkspaceDialogContent-DmRxbvh_.js (removed) 3.73 kB 🟢 -3.73 kB 🟢 -1.42 kB 🟢 -1.22 kB
assets/RemoveMemberDialogContent-BKCc4KIF.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.37 kB 🔴 +1.18 kB
assets/RemoveMemberDialogContent-Dz2tNpOR.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.37 kB 🟢 -1.18 kB
assets/WidgetToggleSwitch-B5jiDAhT.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.4 kB 🔴 +1.23 kB
assets/WidgetToggleSwitch-DR51xxmt.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.4 kB 🟢 -1.23 kB
assets/Slider-BHBSsmhr.js (removed) 3.64 kB 🟢 -3.64 kB 🟢 -1.42 kB 🟢 -1.24 kB
assets/Slider-DoycxHqV.js (new) 3.64 kB 🔴 +3.64 kB 🔴 +1.42 kB 🔴 +1.23 kB
assets/RevokeInviteDialogContent-BIO5DScf.js (removed) 3.63 kB 🟢 -3.63 kB 🟢 -1.38 kB 🟢 -1.2 kB
assets/RevokeInviteDialogContent-DVYhiaqS.js (new) 3.63 kB 🔴 +3.63 kB 🔴 +1.38 kB 🔴 +1.2 kB
assets/InviteMemberUpsellDialogContent-CFmMnage.js (removed) 3.48 kB 🟢 -3.48 kB 🟢 -1.24 kB 🟢 -1.1 kB
assets/InviteMemberUpsellDialogContent-CjYkNOCN.js (new) 3.48 kB 🔴 +3.48 kB 🔴 +1.24 kB 🔴 +1.08 kB
assets/Media3DTop-BftnT7A_.js (new) 3.26 kB 🔴 +3.26 kB 🔴 +1.3 kB 🔴 +1.13 kB
assets/Media3DTop-CO50LcdJ.js (removed) 3.26 kB 🟢 -3.26 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/WidgetMarkdown-CgG54wuQ.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.27 kB 🔴 +1.11 kB
assets/WidgetMarkdown-nqtXinXW.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.27 kB 🟢 -1.1 kB
assets/WidgetInputText-BkWFKu3I.js (new) 3.07 kB 🔴 +3.07 kB 🔴 +1.29 kB 🔴 +1.16 kB
assets/WidgetInputText-Dc4u0W7y.js (removed) 3.07 kB 🟢 -3.07 kB 🟢 -1.3 kB 🟢 -1.16 kB
assets/GlobalToast-BlEWE66I.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.26 kB 🟢 -1.12 kB
assets/GlobalToast-Vpi3iG9r.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.26 kB 🔴 +1.08 kB
assets/MediaVideoTop-Bfgb6grO.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.18 kB 🟢 -1.03 kB
assets/MediaVideoTop-BMjT4teK.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.18 kB 🔴 +1.06 kB
assets/load3dAdvanced-izHuZVPn.js (new) 2.85 kB 🔴 +2.85 kB 🔴 +1.12 kB 🔴 +976 B
assets/load3dAdvanced-ZTyWFzDU.js (removed) 2.85 kB 🟢 -2.85 kB 🟢 -1.12 kB 🟢 -978 B
assets/ErrorPanelSurveyCta-D_r6kjkt.js (new) 2.64 kB 🔴 +2.64 kB 🔴 +1.16 kB 🔴 +1.02 kB
assets/ErrorPanelSurveyCta-lvNy-cUj.js (removed) 2.64 kB 🟢 -2.64 kB 🟢 -1.16 kB 🟢 -1.03 kB
assets/SubscribeToRun-4lkWEqMg.js (removed) 2.52 kB 🟢 -2.52 kB 🟢 -1.11 kB 🟢 -975 B
assets/SubscribeToRun-BURKYawD.js (new) 2.52 kB 🔴 +2.52 kB 🔴 +1.11 kB 🔴 +981 B
assets/WidgetLayoutField-dDGf2Ca3.js (removed) 2.43 kB 🟢 -2.43 kB 🟢 -1.06 kB 🟢 -961 B
assets/WidgetLayoutField-DNbw9joR.js (new) 2.43 kB 🔴 +2.43 kB 🔴 +1.05 kB 🔴 +929 B
assets/WidgetChart-C_zdmbJb.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.03 kB 🟢 -887 B
assets/WidgetChart-CroC8H9E.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.03 kB 🔴 +887 B
assets/SubscriptionBenefits-DKQsnoLf.js (new) 2.07 kB 🔴 +2.07 kB 🔴 +708 B 🔴 +608 B
assets/SubscriptionBenefits-DZQhPJSI.js (removed) 2.07 kB 🟢 -2.07 kB 🟢 -710 B 🟢 -608 B
assets/MediaImageTop-C_1U2um-.js (new) 2.06 kB 🔴 +2.06 kB 🔴 +992 B 🔴 +852 B
assets/MediaImageTop-EROKq6y6.js (removed) 2.06 kB 🟢 -2.06 kB 🟢 -996 B 🟢 -874 B
assets/constants-DDYVacWf.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -724 B 🟢 -613 B
assets/constants-RrpA71gp.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +724 B 🔴 +613 B
assets/graphHasMissingNodes-BTopGpV6.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +908 B 🔴 +795 B
assets/graphHasMissingNodes-w8wvVHeE.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -907 B 🟢 -792 B
assets/webviewDetection-Dfa7qF3a.js (new) 1.81 kB 🔴 +1.81 kB 🔴 +864 B 🔴 +715 B
assets/webviewDetection-jr5llWdv.js (removed) 1.81 kB 🟢 -1.81 kB 🟢 -863 B 🟢 -715 B
assets/WidgetColorPicker-CH5MRr3H.js (removed) 1.74 kB 🟢 -1.74 kB 🟢 -785 B 🟢 -696 B
assets/WidgetColorPicker-nXWPyHvH.js (new) 1.74 kB 🔴 +1.74 kB 🔴 +784 B 🔴 +695 B
assets/auto-3WXxVf-a.js (new) 1.7 kB 🔴 +1.7 kB 🔴 +618 B 🔴 +566 B
assets/auto-BGNaujxM.js (removed) 1.7 kB 🟢 -1.7 kB 🟢 -622 B 🟢 -568 B
assets/Loader-Cb36gCRT.js (new) 1.69 kB 🔴 +1.69 kB 🔴 +811 B 🔴 +738 B
assets/Loader-Db7LGfHn.js (removed) 1.69 kB 🟢 -1.69 kB 🟢 -814 B 🟢 -718 B
assets/MediaAudioTop-BBgo2ZXG.js (new) 1.67 kB 🔴 +1.67 kB 🔴 +839 B 🔴 +694 B
assets/MediaAudioTop-DwLhEKPN.js (removed) 1.67 kB 🟢 -1.67 kB 🟢 -838 B 🟢 -693 B
assets/Textarea-BHwLQzRl.js (removed) 1.61 kB 🟢 -1.61 kB 🟢 -841 B 🟢 -731 B
assets/Textarea-z218g7NS.js (new) 1.61 kB 🔴 +1.61 kB 🔴 +839 B 🔴 +735 B
assets/signInSchema-B0H1ZRwB.js (removed) 1.6 kB 🟢 -1.6 kB 🟢 -584 B 🟢 -518 B
assets/signInSchema-BBgVYLV8.js (new) 1.6 kB 🔴 +1.6 kB 🔴 +586 B 🔴 +540 B
assets/widgetPropFilter-Ci_iqm0V.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -702 B 🟢 -608 B
assets/widgetPropFilter-gI5ACzwW.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +705 B 🔴 +600 B
assets/VideoPlayOverlay-BABy87Ai.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -762 B 🟢 -672 B
assets/VideoPlayOverlay-BYpdA6fC.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +761 B 🔴 +670 B
assets/CloudRunButtonWrapper-B0_0TfHe.js (new) 1.13 kB 🔴 +1.13 kB 🔴 +551 B 🔴 +521 B
assets/CloudRunButtonWrapper-CwY2OhHQ.js (removed) 1.13 kB 🟢 -1.13 kB 🟢 -550 B 🟢 -488 B
assets/MediaOtherTop-BjX6htr9.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +606 B 🔴 +501 B
assets/MediaOtherTop-DCKSlMtM.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -606 B 🟢 -503 B
assets/MediaTextTop-CgbDViB0.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +601 B 🔴 +503 B
assets/MediaTextTop-wJS_Q8wE.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -600 B 🟢 -502 B
assets/cloudSessionCookie-0WYd6HXw.js (removed) 991 B 🟢 -991 B 🟢 -469 B 🟢 -423 B
assets/cloudSessionCookie-F3NR4sBx.js (new) 991 B 🔴 +991 B 🔴 +469 B 🔴 +411 B
assets/cloudBadges-ZT_O76mU.js (removed) 976 B 🟢 -976 B 🟢 -559 B 🟢 -504 B
assets/cloudBadges-D37ihQfw.js (new) 973 B 🔴 +973 B 🔴 +550 B 🔴 +502 B
assets/ComfyOrgHeader-BQN339NV.js (removed) 960 B 🟢 -960 B 🟢 -527 B 🟢 -452 B
assets/ComfyOrgHeader-DTyCPlvH.js (new) 960 B 🔴 +960 B 🔴 +528 B 🔴 +455 B
assets/nodeTypes-hJvHutCZ.js (new) 932 B 🔴 +932 B 🔴 +447 B 🔴 +368 B
assets/nodeTypes-JvlLAzGb.js (removed) 932 B 🟢 -932 B 🟢 -447 B 🟢 -369 B
assets/load3dSerialize-BpTKNR6B.js (removed) 885 B 🟢 -885 B 🟢 -425 B 🟢 -357 B
assets/load3dSerialize-DIDgK8At.js (new) 885 B 🔴 +885 B 🔴 +424 B 🔴 +364 B
assets/cloudSubscription-0IHSxl39.js (new) 820 B 🔴 +820 B 🔴 +455 B 🔴 +368 B
assets/cloudSubscription-BMSa4Kee.js (removed) 820 B 🟢 -820 B 🟢 -452 B 🟢 -363 B
assets/Load3DAdvanced-CUUCuSQT.js (removed) 813 B 🟢 -813 B 🟢 -454 B 🟢 -408 B
assets/Load3DAdvanced-ti5_TzYM.js (new) 813 B 🔴 +813 B 🔴 +454 B 🔴 +410 B
assets/nightlyBadges-B5UsnYvz.js (new) 464 B 🔴 +464 B 🔴 +305 B 🔴 +254 B
assets/nightlyBadges-BSs-uAK7.js (removed) 464 B 🟢 -464 B 🟢 -305 B 🟢 -255 B
assets/src-BBrXUNVH.js (removed) 446 B 🟢 -446 B 🟢 -319 B 🟢 -268 B
assets/src-Cle2nD_T.js (new) 446 B 🔴 +446 B 🔴 +317 B 🔴 +270 B
assets/telemetry-DYQYOxMG.js (new) 443 B 🔴 +443 B 🔴 +309 B 🔴 +252 B
assets/telemetry-egVpDhez.js (removed) 443 B 🟢 -443 B 🟢 -307 B 🟢 -245 B
assets/widgetTypes-BmUFT8-p.js (removed) 416 B 🟢 -416 B 🟢 -272 B 🟢 -237 B
assets/widgetTypes-BVZnCSab.js (new) 416 B 🔴 +416 B 🔴 +273 B 🔴 +235 B
assets/vRekaZIndex-DuArSj84.js (removed) 360 B 🟢 -360 B 🟢 -262 B 🟢 -241 B
assets/vRekaZIndex-DwcwvpHz.js (new) 360 B 🔴 +360 B 🔴 +261 B 🔴 +214 B
assets/cloud-subscription--zYc-Wgh.js (removed) 279 B 🟢 -279 B 🟢 -184 B 🟢 -147 B
assets/cloud-subscription-ByHTMSJx.js (new) 279 B 🔴 +279 B 🔴 +185 B 🔴 +146 B
assets/comfy-logo-single-BUvLR_6h.js (new) 272 B 🔴 +272 B 🔴 +183 B 🔴 +154 B
assets/comfy-logo-single-C4pG2Gfa.js (removed) 272 B 🟢 -272 B 🟢 -185 B 🟢 -150 B
assets/missingModelDownload-CvQbha0S.js (new) 228 B 🔴 +228 B 🔴 +148 B 🔴 +128 B
assets/missingModelDownload-DhydNGIQ.js (removed) 228 B 🟢 -228 B 🟢 -150 B 🟢 -129 B
assets/SubscriptionPanelContentWorkspace-CUw70LVV.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -92 B
assets/SubscriptionPanelContentWorkspace-DifmHqkD.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +91 B
assets/Load3dViewerContent-CXloY85q.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -86 B
assets/Load3dViewerContent-DyDSxOY1.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +93 B
assets/WidgetBoundingBox-B_nsBVS2.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -94 B
assets/WidgetBoundingBox-DHuqSqFp.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +93 B
assets/Load3DAdvanced-Dyok4AwM.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -90 B
assets/Load3DAdvanced-JGCp8nVW.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +90 B
assets/WidgetLegacy-DpQQiHJX.js (removed) 119 B 🟢 -119 B 🟢 -108 B 🟢 -93 B
assets/WidgetLegacy-XYDLYNbn.js (new) 119 B 🔴 +119 B 🔴 +108 B 🔴 +93 B
assets/workflowDraftStoreV2-C1C0xhZq.js (new) 113 B 🔴 +113 B 🔴 +105 B 🔴 +117 B
assets/workflowDraftStoreV2-dq9vDsfG.js (removed) 113 B 🟢 -113 B 🟢 -105 B 🟢 -114 B
assets/Load3D-Dg7RPBKy.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +77 B
assets/Load3D-I6uhpBns.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -90 B
assets/i18n-DWTAot_0.js (removed) 97 B 🟢 -97 B 🟢 -92 B 🟢 -88 B
assets/i18n-Ef0gA7P_.js (new) 97 B 🔴 +97 B 🔴 +92 B 🔴 +84 B
assets/changeTracker-BPSwnsCC.js (new) 93 B 🔴 +93 B 🔴 +95 B 🔴 +81 B
assets/changeTracker-BrVUGlR3.js (removed) 93 B 🟢 -93 B 🟢 -95 B 🟢 -80 B

Status: 145 added / 145 removed / 3 unchanged

⚡ Performance

⏳ Performance tests in progress…

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

🧹 Nitpick comments (2)
src/platform/cloud/onboarding/desktopLoginBridge.ts (2)

16-29: 💤 Low value

Consider IPv6 loopback support.

The current loopback validation only accepts localhost and 127.0.0.1. If desktop applications bind to IPv6, they might use ::1 (IPv6 loopback). Consider adding it to the allowlist or documenting why IPv6 is intentionally excluded.

Optional: Add IPv6 loopback support
 function parseLoopbackCallback(rawUrl: string): URL | null {
   let url: URL
   try {
     url = new URL(rawUrl)
   } catch {
     return null
   }

   if (url.protocol !== 'http:') return null
-  if (!['localhost', '127.0.0.1'].includes(url.hostname)) return null
+  if (!['localhost', '127.0.0.1', '::1'].includes(url.hostname)) return null
   if (url.pathname !== '/callback') return null

   return url
 }
🤖 Prompt for 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.

In `@src/platform/cloud/onboarding/desktopLoginBridge.ts` around lines 16 - 29,
The parseLoopbackCallback function currently only validates IPv4 loopback
addresses (localhost and 127.0.0.1) but does not account for IPv6 loopback
addresses. Update the hostname validation check in parseLoopbackCallback where
the includes method checks for valid hostnames to also include the IPv6 loopback
address '::1' in addition to the existing IPv4 addresses.

65-84: ⚡ Quick win

Consider adding a fetch timeout.

The fetch call to the desktop loopback URL has no timeout. If the desktop application crashes or becomes unresponsive, the POST could hang indefinitely, blocking the browser login flow.

Add AbortSignal with timeout
+  const abortController = new AbortController()
+  const timeoutId = setTimeout(() => abortController.abort(), 10000) // 10s
+
   const response = await fetch(request.callbackUrl.href, {
     method: 'POST',
     mode: 'cors',
     credentials: 'omit',
+    signal: abortController.signal,
     headers: {
       'Content-Type': 'application/json'
     },
     body: JSON.stringify({
       state: request.state,
       apiKey: firebaseConfig.apiKey,
       user: user.toJSON()
     })
   })
+  clearTimeout(timeoutId)
🤖 Prompt for 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.

In `@src/platform/cloud/onboarding/desktopLoginBridge.ts` around lines 65 - 84,
The fetch call to request.callbackUrl.href lacks timeout protection, which can
cause the browser login flow to hang indefinitely if the desktop application
becomes unresponsive. Add an AbortController with a timeout mechanism to the
fetch request. Create the AbortController, set a timeout that aborts the request
after a reasonable duration (e.g., 30 seconds), and pass the abort signal in the
fetch options alongside the existing method, mode, credentials, headers, and
body properties. This ensures the POST request will be cancelled if the desktop
application does not respond within the specified timeframe.
🤖 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.

Nitpick comments:
In `@src/platform/cloud/onboarding/desktopLoginBridge.ts`:
- Around line 16-29: The parseLoopbackCallback function currently only validates
IPv4 loopback addresses (localhost and 127.0.0.1) but does not account for IPv6
loopback addresses. Update the hostname validation check in
parseLoopbackCallback where the includes method checks for valid hostnames to
also include the IPv6 loopback address '::1' in addition to the existing IPv4
addresses.
- Around line 65-84: The fetch call to request.callbackUrl.href lacks timeout
protection, which can cause the browser login flow to hang indefinitely if the
desktop application becomes unresponsive. Add an AbortController with a timeout
mechanism to the fetch request. Create the AbortController, set a timeout that
aborts the request after a reasonable duration (e.g., 30 seconds), and pass the
abort signal in the fetch options alongside the existing method, mode,
credentials, headers, and body properties. This ensures the POST request will be
cancelled if the desktop application does not respond within the specified
timeframe.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 457bdadc-b145-492b-b535-7965628ef251

📥 Commits

Reviewing files that changed from the base of the PR and between 7f25d28 and 8c7154c.

📒 Files selected for processing (8)
  • src/platform/cloud/onboarding/CloudLoginView.vue
  • src/platform/cloud/onboarding/composables/usePostAuthRedirect.ts
  • src/platform/cloud/onboarding/desktopLoginBridge.test.ts
  • src/platform/cloud/onboarding/desktopLoginBridge.ts
  • src/platform/cloud/onboarding/onboardingCloudRoutes.ts
  • src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.ts
  • src/platform/telemetry/providers/cloud/posthogIdentity.test.ts
  • src/platform/telemetry/providers/cloud/posthogIdentity.ts

@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 67.50000% with 26 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/platform/cloud/onboarding/CloudLoginView.vue 0.00% 10 Missing ⚠️
...loud/onboarding/composables/usePostAuthRedirect.ts 0.00% 8 Missing ⚠️
...rc/platform/cloud/onboarding/desktopLoginBridge.ts 91.17% 3 Missing ⚠️
...platform/cloud/onboarding/onboardingCloudRoutes.ts 0.00% 2 Missing ⚠️
...emetry/providers/cloud/PostHogTelemetryProvider.ts 60.00% 2 Missing ⚠️
...tform/telemetry/providers/cloud/posthogIdentity.ts 95.23% 1 Missing ⚠️
@@            Coverage Diff             @@
##             main   #12983      +/-   ##
==========================================
- Coverage   76.37%   76.37%   -0.01%     
==========================================
  Files        1569     1571       +2     
  Lines      102782   102859      +77     
  Branches    31977    31995      +18     
==========================================
+ Hits        78499    78554      +55     
- Misses      23452    23471      +19     
- Partials      831      834       +3     
Flag Coverage Δ
unit 62.90% <67.50%> (+0.01%) ⬆️

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

Files with missing lines Coverage Δ
...tform/telemetry/providers/cloud/posthogIdentity.ts 95.23% <95.23%> (ø)
...platform/cloud/onboarding/onboardingCloudRoutes.ts 27.27% <0.00%> (ø)
...emetry/providers/cloud/PostHogTelemetryProvider.ts 63.29% <60.00%> (-0.23%) ⬇️
...rc/platform/cloud/onboarding/desktopLoginBridge.ts 91.17% <91.17%> (ø)
...loud/onboarding/composables/usePostAuthRedirect.ts 0.00% <0.00%> (ø)
src/platform/cloud/onboarding/CloudLoginView.vue 0.00% <0.00%> (ø)

... and 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@christian-byrne christian-byrne left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can use local storage and have a generalized client anon id. need to send that in identify calls i believe

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants