Skip to content

GTM-93: add desktop login attribution callback#12983

Closed
benceruleanlu wants to merge 7 commits into
mainfrom
ben/gtm-93-login-browser-attribution-frontend
Closed

GTM-93: add desktop login attribution callback#12983
benceruleanlu wants to merge 7 commits 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

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds desktop login request handling, PostHog identity queuing, route guard changes, and setup-time completion hooks in cloud login and signup views.

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
Adds a module-scoped PostHog identity client and pending-ID queue, wires the telemetry provider to set and clear that client, and adds tests for deferred and immediate identification.
Desktop login bridge module and tests
src/platform/cloud/onboarding/desktopLoginBridge.ts, src/platform/cloud/onboarding/desktopLoginBridge.test.ts
Adds loopback callback validation, desktop login query parsing, and the completion POST flow that sends state, Firebase config, and user data to the local callback URL. Tests cover valid requests, rejected requests, and payload submission.
Route guard and post-auth redirect
src/platform/cloud/onboarding/onboardingCloudRoutes.ts, src/platform/cloud/onboarding/composables/usePostAuthRedirect.ts
Skips OAuth consent for desktop login requests in both onboarding routes and extends post-auth success handling to complete the desktop login before redirect logic continues.
Login/signup completion composable and views
src/platform/cloud/onboarding/composables/useDesktopLoginCompletion.ts, src/platform/cloud/onboarding/composables/useDesktopLoginCompletion.test.ts, src/platform/cloud/onboarding/CloudLoginView.vue, src/platform/cloud/onboarding/CloudSignupView.vue
Adds a shared composable that waits for auth initialization, deduplicates concurrent completions, and triggers the post-auth success handler for existing sessions; both cloud login views call it during setup, with tests covering request and user-state combinations.

Possibly related PRs

  • Comfy-Org/ComfyUI_frontend#12647: Touches the same PostHog identity path in PostHogTelemetryProvider.ts, which now routes user identification through the new identity helper.

Suggested reviewers

  • christian-byrne
  • pythongosssss

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 I hop through loopback paths so bright,
Queued identities leap into sight.
With auth and routes aligned just so,
The desktop bridge begins to flow.

🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description misses the required Changes section and Review Focus, so it does not follow the repository template. Reformat the PR description to match the template and add the Changes section plus Review Focus; include Screenshots if applicable.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and matches the main change: adding a desktop login attribution callback.
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 PASS: The PR title uses "add," not bug-fix language, so the E2E-regression requirement doesn’t apply even though no browser_tests file changed.
Adr Compliance For Entity/Litegraph Changes ✅ Passed No changed files are under src/lib/litegraph/, src/ecs/, or graph-entity paths, so the ADR check is not applicable.

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

✨ Finishing Touches
🧪 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.

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 06/24/2026, 09:01:09 AM UTC

Links

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

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

📦 Bundle: 7.5 MB gzip 🔴 +2.5 kB

Details

Summary

  • Raw size: 31.6 MB baseline 31.6 MB — 🔴 +6.35 kB
  • Gzip: 7.5 MB baseline 7.5 MB — 🔴 +2.5 kB
  • Brotli: 5.14 MB baseline 5.14 MB — 🔴 +2.71 kB
  • Bundles: 285 current • 283 baseline • 277 added / 275 removed

Category Glance
User & Accounts 🔴 +5.22 kB (25.1 kB) · Vendor & Third-Party 🔴 +1.06 kB (15.3 MB) · App Entry Points 🟢 -715 B (46 kB) · Views & Navigation 🔴 +568 B (95.7 kB) · Other 🔴 +226 B (10.6 MB) · Utilities & Hooks ⚪ 0 B (3.33 MB) · + 5 more

App Entry Points — 46 kB (baseline 46.7 kB) • 🟢 -715 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-VWCnkbQg.js (removed) 46.7 kB 🟢 -46.7 kB 🟢 -13.7 kB 🟢 -11.9 kB
assets/index-BFnGGvGc.js (new) 46 kB 🔴 +46 kB 🔴 +13.4 kB 🔴 +11.6 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

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

Status: 1 added / 1 removed

Views & Navigation — 95.7 kB (baseline 95.2 kB) • 🔴 +568 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-BQvepXD-.js (new) 19.4 kB 🔴 +19.4 kB 🔴 +5.03 kB 🔴 +4.46 kB
assets/CloudSurveyView-CqmDHh03.js (removed) 19.4 kB 🟢 -19.4 kB 🟢 -5.03 kB 🟢 -4.46 kB
assets/OAuthConsentView-B3Hybimz.js (removed) 15 kB 🟢 -15 kB 🟢 -4.09 kB 🟢 -3.57 kB
assets/OAuthConsentView-BMHxaDme.js (new) 15 kB 🔴 +15 kB 🔴 +4.09 kB 🔴 +3.57 kB
assets/CloudLoginView-agfBfo9v.js (new) 11.7 kB 🔴 +11.7 kB 🔴 +3.16 kB 🔴 +2.76 kB
assets/CloudLoginView-55UKcePU.js (removed) 11.4 kB 🟢 -11.4 kB 🟢 -3.06 kB 🟢 -2.69 kB
assets/CloudSignupView-_QFZuUfX.js (new) 9.92 kB 🔴 +9.92 kB 🔴 +2.78 kB 🔴 +2.43 kB
assets/CloudSignupView-Bd5qljKG.js (removed) 9.63 kB 🟢 -9.63 kB 🟢 -2.68 kB 🟢 -2.35 kB
assets/CloudLayoutView-C7yYq71h.js (removed) 9.36 kB 🟢 -9.36 kB 🟢 -2.34 kB 🟢 -2.02 kB
assets/CloudLayoutView-etfjHjVn.js (new) 9.36 kB 🔴 +9.36 kB 🔴 +2.34 kB 🔴 +2.02 kB
assets/UserCheckView-BRyVBY12.js (removed) 8.8 kB 🟢 -8.8 kB 🟢 -2.22 kB 🟢 -1.93 kB
assets/UserCheckView-CM6wam-e.js (new) 8.8 kB 🔴 +8.8 kB 🔴 +2.22 kB 🔴 +1.93 kB
assets/UserSelectView-BJYwn6EE.js (removed) 6 kB 🟢 -6 kB 🟢 -2.15 kB 🟢 -1.89 kB
assets/UserSelectView-DtiWJpF0.js (new) 6 kB 🔴 +6 kB 🔴 +2.15 kB 🔴 +1.88 kB
assets/CloudForgotPasswordView-bTl6Weo6.js (new) 5.15 kB 🔴 +5.15 kB 🔴 +1.76 kB 🔴 +1.53 kB
assets/CloudForgotPasswordView-Drr2Guxy.js (removed) 5.15 kB 🟢 -5.15 kB 🟢 -1.75 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-CsBYGcqt.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/CloudAuthTimeoutView-DSAg3uYb.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/CloudSubscriptionRedirectView-BPLps891.js (new) 4.3 kB 🔴 +4.3 kB 🔴 +1.57 kB 🔴 +1.38 kB
assets/CloudSubscriptionRedirectView-f00RBpZE.js (removed) 4.3 kB 🟢 -4.3 kB 🟢 -1.57 kB 🟢 -1.38 kB
assets/CloudSorryContactSupportView-B3vTw23P.js (removed) 1.21 kB 🟢 -1.21 kB 🟢 -604 B 🟢 -524 B
assets/CloudSorryContactSupportView-DQRHUKH7.js (new) 1.21 kB 🔴 +1.21 kB 🔴 +606 B 🔴 +525 B
assets/layout-CLnTLIKa.js (new) 447 B 🔴 +447 B 🔴 +283 B 🔴 +230 B
assets/layout-CrOE3U9r.js (removed) 447 B 🟢 -447 B 🟢 -285 B 🟢 -230 B

Status: 12 added / 12 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/KeybindingPanel-8Iz7KYVc.js (new) 49.4 kB 🔴 +49.4 kB 🔴 +9.97 kB 🔴 +8.82 kB
assets/KeybindingPanel-BJri_ni1.js (removed) 49.4 kB 🟢 -49.4 kB 🟢 -9.96 kB 🟢 -8.82 kB
assets/settings-CBsM2Dkl.js (removed) 39.8 kB 🟢 -39.8 kB 🟢 -9.73 kB 🟢 -7.99 kB
assets/settings-DFs89aQQ.js (new) 39.8 kB 🔴 +39.8 kB 🔴 +9.73 kB 🔴 +7.99 kB
assets/settings-Bm-66T6m.js (new) 35.4 kB 🔴 +35.4 kB 🔴 +8.66 kB 🔴 +7.32 kB
assets/settings-D3mTYOrG.js (removed) 35.4 kB 🟢 -35.4 kB 🟢 -8.66 kB 🟢 -7.32 kB
assets/settings-CdbidiXa.js (new) 33.5 kB 🔴 +33.5 kB 🔴 +8.48 kB 🔴 +6.96 kB
assets/settings-DGJrjMuH.js (removed) 33.5 kB 🟢 -33.5 kB 🟢 -8.48 kB 🟢 -6.91 kB
assets/settings-Byr3mCi1.js (removed) 31.5 kB 🟢 -31.5 kB 🟢 -8.78 kB 🟢 -7.31 kB
assets/settings-Cat1x4PM.js (new) 31.5 kB 🔴 +31.5 kB 🔴 +8.78 kB 🔴 +7.31 kB
assets/settings-DdnNSf7I.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -8.41 kB 🟢 -7.38 kB
assets/settings-DVbAbOlt.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +8.41 kB 🔴 +7.33 kB
assets/settings-CJ0p36bd.js (removed) 29.7 kB 🟢 -29.7 kB 🟢 -8.07 kB 🟢 -6.88 kB
assets/settings-D373-POZ.js (new) 29.7 kB 🔴 +29.7 kB 🔴 +8.07 kB 🔴 +6.87 kB
assets/settings-DBEn01ZR.js (new) 29.6 kB 🔴 +29.6 kB 🔴 +8.31 kB 🔴 +7.25 kB
assets/settings-DKUpMmiC.js (removed) 29.6 kB 🟢 -29.6 kB 🟢 -8.31 kB 🟢 -7.25 kB
assets/settings-BGDkdR36.js (new) 28.8 kB 🔴 +28.8 kB 🔴 +7.99 kB 🔴 +6.96 kB
assets/settings-DUxDQEc4.js (removed) 28.8 kB 🟢 -28.8 kB 🟢 -7.99 kB 🟢 -6.96 kB
assets/settings-BdvkPT-w.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +8.44 kB 🔴 +7.02 kB
assets/settings-BpOIHf7d.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -8.44 kB 🟢 -7.03 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-DDGk6PVZ.js (removed) 25.2 kB 🟢 -25.2 kB 🟢 -8.2 kB 🟢 -6.61 kB
assets/settings-IiWLV2Qp.js (new) 25.2 kB 🔴 +25.2 kB 🔴 +8.2 kB 🔴 +6.6 kB
assets/settings-CJSjiXDJ.js (removed) 24.6 kB 🟢 -24.6 kB 🟢 -8.02 kB 🟢 -6.27 kB
assets/settings-Dym14cXW.js (new) 24.6 kB 🔴 +24.6 kB 🔴 +8.02 kB 🔴 +6.28 kB
assets/SecretsPanel-DTyFW-59.js (new) 24.2 kB 🔴 +24.2 kB 🔴 +5.76 kB 🔴 +5.06 kB
assets/SecretsPanel-LvHByAbF.js (removed) 24.2 kB 🟢 -24.2 kB 🟢 -5.76 kB 🟢 -5.06 kB
assets/LegacyCreditsPanel-DncRGj1z.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.7 kB 🟢 -5.02 kB
assets/LegacyCreditsPanel-KG89p7SC.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.7 kB 🔴 +5.03 kB
assets/SubscriptionPanel-_RQf1B9M.js (removed) 19.2 kB 🟢 -19.2 kB 🟢 -5.04 kB 🟢 -4.4 kB
assets/SubscriptionPanel-CEIcaj4H.js (new) 19.2 kB 🔴 +19.2 kB 🔴 +5.04 kB 🔴 +4.39 kB
assets/AboutPanel-1jre6ZIp.js (new) 11.7 kB 🔴 +11.7 kB 🔴 +3.22 kB 🔴 +2.89 kB
assets/AboutPanel-Cs6O_DhF.js (removed) 11.7 kB 🟢 -11.7 kB 🟢 -3.22 kB 🟢 -2.89 kB
assets/ExtensionPanel-B8iailce.js (new) 9.03 kB 🔴 +9.03 kB 🔴 +2.49 kB 🔴 +2.2 kB
assets/ExtensionPanel-CDOXTFmf.js (removed) 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-Cy8Y3Dy9.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +1.98 kB 🔴 +1.76 kB
assets/ServerConfigPanel-Qe7udrbZ.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -1.97 kB 🟢 -1.76 kB
assets/UserPanel-BQ7-Q-Vo.js (removed) 5.78 kB 🟢 -5.78 kB 🟢 -1.82 kB 🟢 -1.58 kB
assets/UserPanel-DdkvKMIM.js (new) 5.78 kB 🔴 +5.78 kB 🔴 +1.82 kB 🔴 +1.58 kB
assets/refreshRemoteConfig-9PqRJlSE.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.06 kB 🟢 -946 B
assets/refreshRemoteConfig-D3UT-d9D.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.06 kB 🔴 +940 B
assets/config-BecdI7Zw.js (removed) 2.14 kB 🟢 -2.14 kB 🟢 -1.04 kB 🟢 -842 B
assets/config-CPCh0QWo.js (new) 2.14 kB 🔴 +2.14 kB 🔴 +1.04 kB 🔴 +840 B
assets/cloudRemoteConfig-D9tAmjxY.js (new) 990 B 🔴 +990 B 🔴 +542 B 🔴 +461 B
assets/cloudRemoteConfig-DJLUSB1t.js (removed) 990 B 🟢 -990 B 🟢 -542 B 🟢 -467 B
assets/refreshRemoteConfig-BupulMQZ.js (removed) 110 B 🟢 -110 B 🟢 -89 B 🟢 -83 B
assets/refreshRemoteConfig-DsvhWW-i.js (new) 110 B 🔴 +110 B 🔴 +89 B 🔴 +83 B

Status: 25 added / 25 removed / 1 unchanged

User & Accounts — 25.1 kB (baseline 19.9 kB) • 🔴 +5.22 kB

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/usePostAuthRedirect-BWCln_aK.js (new) 5.56 kB 🔴 +5.56 kB 🔴 +1.85 kB 🔴 +1.63 kB
assets/PasswordFields-C2n1RWi5.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.42 kB 🟢 -1.26 kB
assets/PasswordFields-LOEr4oKX.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.42 kB 🔴 +1.25 kB
assets/auth-Blnu72O2.js (new) 3.69 kB 🔴 +3.69 kB 🔴 +1.3 kB 🔴 +1.14 kB
assets/auth-CPHTMHMP.js (removed) 3.69 kB 🟢 -3.69 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/usePostAuthRedirect-KAZ1sWvg.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.28 kB 🟢 -1.11 kB
assets/SignUpForm-B0dB38PZ.js (new) 3.19 kB 🔴 +3.19 kB 🔴 +1.29 kB 🔴 +1.15 kB
assets/SignUpForm-DH3j-pM_.js (removed) 3.19 kB 🟢 -3.19 kB 🟢 -1.28 kB 🟢 -1.15 kB
assets/desktopLoginBridge-CATmrDIz.js (new) 2.99 kB 🔴 +2.99 kB 🔴 +1.25 kB 🔴 +1.09 kB
assets/UpdatePasswordContent-BLBNwoAS.js (new) 1.92 kB 🔴 +1.92 kB 🔴 +878 B 🔴 +771 B
assets/UpdatePasswordContent-FHbF5hqL.js (removed) 1.92 kB 🟢 -1.92 kB 🟢 -877 B 🟢 -766 B
assets/WorkspaceProfilePic-BmU1OymQ.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +860 B 🔴 +778 B
assets/WorkspaceProfilePic-DDsoCbaS.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -859 B 🟢 -778 B
assets/oauthState-C4xKJsu-.js (removed) 1.21 kB 🟢 -1.21 kB 🟢 -511 B 🟢 -448 B
assets/oauthState-Dj9LUcog.js (new) 1.21 kB 🔴 +1.21 kB 🔴 +510 B 🔴 +446 B
assets/authStore-CIfzV-ka.js (new) 130 B 🔴 +130 B 🔴 +109 B 🔴 +108 B
assets/authStore-DxMeukmW.js (removed) 130 B 🟢 -130 B 🟢 -109 B 🟢 -119 B
assets/auth-BZBe4kIg.js (removed) 105 B 🟢 -105 B 🟢 -96 B 🟢 -80 B
assets/auth-CLVDSbGS.js (new) 105 B 🔴 +105 B 🔴 +96 B 🔴 +87 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-C1d9UMaa.js (removed) 86 kB 🟢 -86 kB 🟢 -18.6 kB 🟢 -15.9 kB
assets/ComfyHubPublishDialog-nrr9HcsV.js (new) 86 kB 🔴 +86 kB 🔴 +18.6 kB 🔴 +15.9 kB
assets/useShareDialog-CrCrJ0yZ.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.53 kB 🟢 -4.9 kB
assets/useShareDialog-DDrNEWn6.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.53 kB 🔴 +4.91 kB
assets/SubscriptionInactiveMemberDialog-B0D_5STv.js (new) 2.55 kB 🔴 +2.55 kB 🔴 +1.03 kB 🔴 +883 B
assets/SubscriptionInactiveMemberDialog-JLpNQuhP.js (removed) 2.55 kB 🟢 -2.55 kB 🟢 -1.03 kB 🟢 -883 B
assets/ComfyHubPublishDialog-C-pMJCUN.js (new) 143 B 🔴 +143 B 🔴 +105 B 🔴 +88 B
assets/ComfyHubPublishDialog-Df6lUij-.js (removed) 143 B 🟢 -143 B 🟢 -105 B 🟢 -89 B
assets/useSubscriptionDialog-BwOd-doq.js (removed) 110 B 🟢 -110 B 🟢 -102 B 🟢 -88 B
assets/useSubscriptionDialog-D0u4uhx-.js (new) 110 B 🔴 +110 B 🔴 +102 B 🔴 +88 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-A8d9wjSF.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +3.83 kB 🔴 +3.42 kB
assets/ComfyQueueButton-CEzIi65F.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -3.83 kB 🟢 -3.42 kB
assets/useTerminalTabs-CE65DJGv.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -3.84 kB 🟢 -3.38 kB
assets/useTerminalTabs-DMNpAE4j.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +3.83 kB 🔴 +3.39 kB
assets/TopbarBadge-C_Bhurdw.js (new) 7.7 kB 🔴 +7.7 kB 🔴 +1.86 kB 🔴 +1.64 kB
assets/TopbarBadge-CoJC4INC.js (removed) 7.7 kB 🟢 -7.7 kB 🟢 -1.87 kB 🟢 -1.65 kB
assets/ScrubableNumberInput-B36TQdhj.js (new) 6.31 kB 🔴 +6.31 kB 🔴 +2.13 kB 🔴 +1.9 kB
assets/ScrubableNumberInput-c2wzHTug.js (removed) 6.31 kB 🟢 -6.31 kB 🟢 -2.13 kB 🟢 -1.89 kB
assets/toggle-group-Cpm1nbJP.js (removed) 4.16 kB 🟢 -4.16 kB 🟢 -1.45 kB 🟢 -1.27 kB
assets/toggle-group-qnvqMJc5.js (new) 4.16 kB 🔴 +4.16 kB 🔴 +1.44 kB 🔴 +1.27 kB
assets/Button-Clh3ubVK.js (removed) 3.62 kB 🟢 -3.62 kB 🟢 -1.39 kB 🟢 -1.22 kB
assets/Button-DUuLvImd.js (new) 3.62 kB 🔴 +3.62 kB 🔴 +1.39 kB 🔴 +1.22 kB
assets/SubscribeButton-D5iPZlk2.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.05 kB 🟢 -928 B
assets/SubscribeButton-pL9M-Am8.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.05 kB 🔴 +946 B
assets/WidgetButton-Bg8DKZLc.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -920 B 🟢 -808 B
assets/WidgetButton-C5fhNagH.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +919 B 🔴 +807 B
assets/Input-ClAdfZgg.js (removed) 1.81 kB 🟢 -1.81 kB 🟢 -897 B 🟢 -777 B
assets/Input-Dw7rG_pG.js (new) 1.81 kB 🔴 +1.81 kB 🔴 +897 B 🔴 +779 B
assets/UserAvatar-BUKhjU-m.js (new) 1.29 kB 🔴 +1.29 kB 🔴 +669 B 🔴 +581 B
assets/UserAvatar-DUqy_xFX.js (removed) 1.29 kB 🟢 -1.29 kB 🟢 -671 B 🟢 -581 B
assets/CloudBadge-B6AJtKXj.js (new) 1.18 kB 🔴 +1.18 kB 🔴 +592 B 🔴 +518 B
assets/CloudBadge-DWBBSLPx.js (removed) 1.18 kB 🟢 -1.18 kB 🟢 -594 B 🟢 -524 B
assets/cloudFeedbackTopbarButton-BgcrVgpP.js (removed) 829 B 🟢 -829 B 🟢 -495 B 🟢 -447 B
assets/cloudFeedbackTopbarButton-CUaoZv8C.js (new) 829 B 🔴 +829 B 🔴 +499 B 🔴 +421 B
assets/ComfyQueueButton-BLNQ2VMm.js (new) 128 B 🔴 +128 B 🔴 +99 B 🔴 +89 B
assets/ComfyQueueButton-DHNnlWzI.js (removed) 128 B 🟢 -128 B 🟢 -99 B 🟢 -90 B

Status: 13 added / 13 removed

Data & Services — 271 kB (baseline 271 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/load3dService-DcU6JHcR.js (new) 127 kB 🔴 +127 kB 🔴 +27.9 kB 🔴 +23.6 kB
assets/load3dService-DyHdqxUS.js (removed) 127 kB 🟢 -127 kB 🟢 -27.9 kB 🟢 -23.6 kB
assets/api-BcCmno3R.js (removed) 87.2 kB 🟢 -87.2 kB 🟢 -23.6 kB 🟢 -20.3 kB
assets/api-CN8cmoAN.js (new) 87.2 kB 🔴 +87.2 kB 🔴 +23.6 kB 🔴 +20.3 kB
assets/workflowShareService-_pCvlDnZ.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.91 kB 🔴 +4.35 kB
assets/workflowShareService-5B5CIO-G.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.91 kB 🟢 -4.34 kB
assets/keybindingService-BTLcKVUh.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.67 kB 🟢 -3.23 kB
assets/keybindingService-DGJLH9dI.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.67 kB 🔴 +3.23 kB
assets/releaseStore-B7z6BwPw.js (new) 8.29 kB 🔴 +8.29 kB 🔴 +2.33 kB 🔴 +2.04 kB
assets/releaseStore-CoKiUp1r.js (removed) 8.29 kB 🟢 -8.29 kB 🟢 -2.33 kB 🟢 -2.04 kB
assets/dialogStore-CLnAkAYT.js (new) 5.36 kB 🔴 +5.36 kB 🔴 +1.66 kB 🔴 +1.43 kB
assets/dialogStore-CPZcFhTY.js (removed) 5.36 kB 🟢 -5.36 kB 🟢 -1.67 kB 🟢 -1.43 kB
assets/extensionStore-6xjH1nL_.js (new) 5.29 kB 🔴 +5.29 kB 🔴 +1.86 kB 🔴 +1.58 kB
assets/extensionStore-fdwswrIF.js (removed) 5.29 kB 🟢 -5.29 kB 🟢 -1.86 kB 🟢 -1.57 kB
assets/userStore-CTYwRrjB.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +930 B 🔴 +824 B
assets/userStore-DjCxQCQ5.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -930 B 🟢 -815 B
assets/serverConfigStore-7lqR-DZr.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -810 B 🟢 -704 B
assets/serverConfigStore-D9hYwbm4.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +812 B 🔴 +707 B
assets/audioService-BiBYVMBu.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -861 B 🟢 -748 B
assets/audioService-or8YD1Y_.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +859 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-Bk837YhB.js (new) 100 B 🔴 +100 B 🔴 +99 B 🔴 +96 B
assets/dialogService-XpSOm1rK.js (removed) 100 B 🟢 -100 B 🟢 -99 B 🟢 -94 B
assets/settingStore-CfsrgNMe.js (removed) 98 B 🟢 -98 B 🟢 -98 B 🟢 -93 B
assets/settingStore-DoZOaUxf.js (new) 98 B 🔴 +98 B 🔴 +98 B 🔴 +90 B
assets/assetsStore-0crP3JRA.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +88 B
assets/assetsStore-DHDOoPqu.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -100 B
assets/releaseStore-BgCb5DNQ.js (removed) 95 B 🟢 -95 B 🟢 -86 B 🟢 -85 B
assets/releaseStore-BGWrgD72.js (new) 95 B 🔴 +95 B 🔴 +86 B 🔴 +88 B
assets/api-Dshno-FY.js (new) 62 B 🔴 +62 B 🔴 +74 B 🔴 +66 B
assets/api-ZzNFKQyi.js (removed) 62 B 🟢 -62 B 🟢 -74 B 🟢 -66 B

Status: 16 added / 16 removed

Utilities & Hooks — 3.33 MB (baseline 3.33 MB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/promotionUtils-C7QV7XJM.js (new) 2.98 MB 🔴 +2.98 MB 🔴 +689 kB 🔴 +519 kB
assets/promotionUtils-CFzofg77.js (removed) 2.98 MB 🟢 -2.98 MB 🟢 -689 kB 🟢 -519 kB
assets/useConflictDetection-DosfzbWt.js (new) 234 kB 🔴 +234 kB 🔴 +52.3 kB 🔴 +42.6 kB
assets/useConflictDetection-ZSOoTRfX.js (removed) 234 kB 🟢 -234 kB 🟢 -52.3 kB 🟢 -42.6 kB
assets/useLoad3d-JpFnd1MR.js (new) 25.5 kB 🔴 +25.5 kB 🔴 +5.76 kB 🔴 +5.09 kB
assets/useLoad3d-JZH8Gs0z.js (removed) 25.5 kB 🟢 -25.5 kB 🟢 -5.75 kB 🟢 -5.09 kB
assets/useLoad3dViewer-C-PEeM9a.js (new) 21.1 kB 🔴 +21.1 kB 🔴 +4.98 kB 🔴 +4.37 kB
assets/useLoad3dViewer-Comaijwd.js (removed) 21.1 kB 🟢 -21.1 kB 🟢 -4.97 kB 🟢 -4.36 kB
assets/formatUtil-BAUeFFaa.js (new) 16.8 kB 🔴 +16.8 kB 🔴 +5.71 kB 🔴 +5.01 kB
assets/formatUtil-CUd-62bL.js (removed) 16.8 kB 🟢 -16.8 kB 🟢 -5.71 kB 🟢 -5 kB
assets/useImageQuiet-BU_z_zsB.js (removed) 10.4 kB 🟢 -10.4 kB 🟢 -3.5 kB 🟢 -3.01 kB
assets/useImageQuiet-r7NVFOPm.js (new) 10.4 kB 🔴 +10.4 kB 🔴 +3.5 kB 🔴 +3.01 kB
assets/useTypeformEmbed-DjF5PW2m.js (removed) 5.91 kB 🟢 -5.91 kB 🟢 -2.29 kB 🟢 -1.89 kB
assets/useTypeformEmbed-li0CZFZo.js (new) 5.91 kB 🔴 +5.91 kB 🔴 +2.28 kB 🔴 +1.89 kB
assets/useFeatureFlags-BPu2s6vO.js (removed) 5.37 kB 🟢 -5.37 kB 🟢 -1.65 kB 🟢 -1.41 kB
assets/useFeatureFlags-DUKoJDIU.js (new) 5.37 kB 🔴 +5.37 kB 🔴 +1.66 kB 🔴 +1.41 kB
assets/downloadUtil-BGLVLSh8.js (removed) 4.68 kB 🟢 -4.68 kB 🟢 -1.85 kB 🟢 -1.53 kB
assets/downloadUtil-Cm7KuiCq.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.85 kB 🔴 +1.54 kB
assets/curveUtils-B7Poc3MF.js (removed) 3.83 kB 🟢 -3.83 kB 🟢 -1.29 kB 🟢 -1.14 kB
assets/curveUtils-DmJVEByo.js (new) 3.83 kB 🔴 +3.83 kB 🔴 +1.29 kB 🔴 +1.13 kB
assets/useSessionCookie-B5fBhbWN.js (new) 3.33 kB 🔴 +3.33 kB 🔴 +1.15 kB 🔴 +982 B
assets/useSessionCookie-BdAYdKkX.js (removed) 3.33 kB 🟢 -3.33 kB 🟢 -1.15 kB 🟢 -978 B
assets/subscriptionCheckoutUtil-D2e7ud69.js (removed) 3.31 kB 🟢 -3.31 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/subscriptionCheckoutUtil-DmszelkI.js (new) 3.31 kB 🔴 +3.31 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/useExternalLink-CyHJFLQ5.js (removed) 3.03 kB 🟢 -3.03 kB 🟢 -1.16 kB 🟢 -1.03 kB
assets/useExternalLink-D0R7UPUH.js (new) 3.03 kB 🔴 +3.03 kB 🔴 +1.16 kB 🔴 +1.02 kB
assets/useDowngradeToPersonal-AdyQW19A.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.17 kB 🟢 -1.04 kB
assets/useDowngradeToPersonal-Hw53lEJG.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.17 kB 🔴 +1.03 kB
assets/assetPreviewUtil-BSSGnNmV.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.01 kB 🔴 +880 B
assets/assetPreviewUtil-oYd8VKoQ.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.01 kB 🟢 -877 B
assets/useFeatureUsageTracker-BO1SA7g6.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -943 B 🟢 -799 B
assets/useFeatureUsageTracker-Cg8yixp4.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +942 B 🔴 +800 B
assets/useUpstreamValue-4IT_7GTU.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -794 B 🟢 -715 B
assets/useUpstreamValue-BQgRd0jE.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +793 B 🔴 +711 B
assets/markdownRendererUtil-CROlfEQz.js (new) 1.59 kB 🔴 +1.59 kB 🔴 +829 B 🔴 +719 B
assets/markdownRendererUtil-Dzsxzqnm.js (removed) 1.59 kB 🟢 -1.59 kB 🟢 -829 B 🟢 -717 B
assets/useErrorHandling-BEzxyhja.js (removed) 1.54 kB 🟢 -1.54 kB 🟢 -645 B 🟢 -550 B
assets/useErrorHandling-BqqvVqTz.js (new) 1.54 kB 🔴 +1.54 kB 🔴 +648 B 🔴 +552 B
assets/useWorkspaceTierLabel-CI6-pcKw.js (removed) 1.35 kB 🟢 -1.35 kB 🟢 -663 B 🟢 -554 B
assets/useWorkspaceTierLabel-DROh4Lwv.js (new) 1.35 kB 🔴 +1.35 kB 🔴 +664 B 🔴 +556 B
assets/histogramUtil--seGyzo8.js (new) 972 B 🔴 +972 B 🔴 +568 B 🔴 +486 B
assets/histogramUtil-hHqn18wc.js (removed) 972 B 🟢 -972 B 🟢 -571 B 🟢 -487 B
assets/errorUtil-By9y4A86.js (removed) 843 B 🟢 -843 B 🟢 -491 B 🟢 -405 B
assets/errorUtil-C90qTYVW.js (new) 843 B 🔴 +843 B 🔴 +491 B 🔴 +406 B
assets/useClickDragGuard-B8eeI11k.js (removed) 828 B 🟢 -828 B 🟢 -407 B 🟢 -359 B
assets/useClickDragGuard-CfspUCtJ.js (new) 828 B 🔴 +828 B 🔴 +406 B 🔴 +360 B
assets/useWorkspaceSwitch-Cmr9KZgH.js (removed) 748 B 🟢 -748 B 🟢 -386 B 🟢 -338 B
assets/useWorkspaceSwitch-DhWNb767.js (new) 748 B 🔴 +748 B 🔴 +386 B 🔴 +335 B
assets/envUtil-DuwwiMU-.js (new) 489 B 🔴 +489 B 🔴 +306 B 🔴 +244 B
assets/envUtil-Ggl08UdX.js (removed) 489 B 🟢 -489 B 🟢 -308 B 🟢 -273 B
assets/_plugin-vue_export-helper-B1NqRUKi.js (removed) 365 B 🟢 -365 B 🟢 -254 B 🟢 -213 B
assets/_plugin-vue_export-helper-jYljiRRq.js (new) 365 B 🔴 +365 B 🔴 +254 B 🔴 +213 B
assets/useLoad3d-CYBmS65l.js (removed) 311 B 🟢 -311 B 🟢 -166 B 🟢 -147 B
assets/useLoad3d-DTlekiVB.js (new) 311 B 🔴 +311 B 🔴 +163 B 🔴 +147 B
assets/SkeletonUtils-BVa2Oj9q.js (new) 133 B 🔴 +133 B 🔴 +111 B 🔴 +109 B
assets/SkeletonUtils-DAL1G5p1.js (removed) 133 B 🟢 -133 B 🟢 -111 B 🟢 -113 B
assets/useSessionCookie-B_Az8jcU.js (new) 101 B 🔴 +101 B 🔴 +86 B 🔴 +83 B
assets/useSessionCookie-DwOGIOc9.js (removed) 101 B 🟢 -101 B 🟢 -86 B 🟢 -82 B
assets/useLoad3dViewer-B9sh0cvz.js (new) 98 B 🔴 +98 B 🔴 +85 B 🔴 +83 B
assets/useLoad3dViewer-C6OYxBmV.js (removed) 98 B 🟢 -98 B 🟢 -85 B 🟢 -83 B
assets/useCurrentUser-C74v2CNH.js (new) 96 B 🔴 +96 B 🔴 +97 B 🔴 +83 B
assets/useCurrentUser-CwHPnvv6.js (removed) 96 B 🟢 -96 B 🟢 -97 B 🟢 -82 B

Status: 31 added / 31 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-CoaP_izC.js (new) 7.09 MB 🔴 +7.09 MB 🔴 +2.18 MB 🔴 +1.02 MB
assets/vendor-three-CTbL97FU.js (removed) 7.09 MB 🟢 -7.09 MB 🟢 -2.18 MB 🟢 -1.02 MB
assets/vendor-other-C-x_ns4E.js (new) 1.87 MB 🔴 +1.87 MB 🔴 +404 kB 🔴 +326 kB
assets/vendor-other-DY5Mh2Gq.js (removed) 1.87 MB 🟢 -1.87 MB 🟢 -404 kB 🟢 -326 kB
assets/vendor-primevue-BAj-7_Dq.js (removed) 1.69 MB 🟢 -1.69 MB 🟢 -303 kB 🟢 -185 kB
assets/vendor-primevue-CNEl_p5e.js (new) 1.69 MB 🔴 +1.69 MB 🔴 +303 kB 🔴 +185 kB
assets/vendor-tiptap-DjKIshpA.js (new) 743 kB 🔴 +743 kB 🔴 +183 kB 🔴 +147 kB
assets/vendor-tiptap-UhOf-O7H.js (removed) 743 kB 🟢 -743 kB 🟢 -183 kB 🟢 -147 kB
assets/vendor-reka-ui-BY9yru9-.js (new) 491 kB 🔴 +491 kB 🔴 +89.4 kB 🔴 +68.9 kB
assets/vendor-reka-ui-DAEtqwgZ.js (removed) 491 kB 🟢 -491 kB 🟢 -89.4 kB 🟢 -68.9 kB
assets/vendor-chart-CGZoBoNh.js (new) 411 kB 🔴 +411 kB 🔴 +100 kB 🔴 +82.9 kB
assets/vendor-chart-CvfSl3bU.js (removed) 411 kB 🟢 -411 kB 🟢 -100 kB 🟢 -82.9 kB
assets/vendor-xterm-Bc40oeL7.js (new) 374 kB 🔴 +374 kB 🔴 +75.6 kB 🔴 +61.1 kB
assets/vendor-xterm-Nt1_Zp-S.js (removed) 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-BlZF6NEv.js (new) 140 kB 🔴 +140 kB 🔴 +30.7 kB 🔴 +25.8 kB
assets/vendor-i18n-DGTdevDy.js (removed) 140 kB 🟢 -140 kB 🟢 -30.7 kB 🟢 -25.8 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-FUKDQu_B.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +632 B 🔴 +530 B

Status: 13 added / 12 removed / 4 unchanged

Other — 10.6 MB (baseline 10.6 MB) • 🔴 +226 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/nodeDefs-D9-7ajjp.js (removed) 686 kB 🟢 -686 kB 🟢 -111 kB 🟢 -75.9 kB
assets/nodeDefs-U8C0FDXC.js (new) 686 kB 🔴 +686 kB 🔴 +111 kB 🔴 +75.9 kB
assets/nodeDefs-B2ddsXS_.js (removed) 628 kB 🟢 -628 kB 🟢 -101 kB 🟢 -70.2 kB
assets/nodeDefs-DSJisjgG.js (new) 628 kB 🔴 +628 kB 🔴 +101 kB 🔴 +70.2 kB
assets/nodeDefs-CnEyRxn1.js (removed) 625 kB 🟢 -625 kB 🟢 -103 kB 🟢 -72.3 kB
assets/nodeDefs-JSqGm2K9.js (new) 625 kB 🔴 +625 kB 🔴 +103 kB 🔴 +72.3 kB
assets/nodeDefs-Cm0NrtpB.js (removed) 574 kB 🟢 -574 kB 🟢 -101 kB 🟢 -70 kB
assets/nodeDefs-VDUevTeX.js (new) 574 kB 🔴 +574 kB 🔴 +101 kB 🔴 +70 kB
assets/nodeDefs-Dhs__87u.js (removed) 554 kB 🟢 -554 kB 🟢 -98.4 kB 🟢 -69.2 kB
assets/nodeDefs-roi5lnuf.js (new) 554 kB 🔴 +554 kB 🔴 +98.4 kB 🔴 +69.2 kB
assets/nodeDefs-B0tccjjk.js (removed) 550 kB 🟢 -550 kB 🟢 -96.8 kB 🟢 -70.3 kB
assets/nodeDefs-BzDJFLAz.js (new) 550 kB 🔴 +550 kB 🔴 +96.8 kB 🔴 +70.3 kB
assets/nodeDefs-BjseM7rw.js (new) 546 kB 🔴 +546 kB 🔴 +97.4 kB 🔴 +70.8 kB
assets/nodeDefs-r99Gabdx.js (removed) 546 kB 🟢 -546 kB 🟢 -97.4 kB 🟢 -70.8 kB
assets/nodeDefs-B-bP0XPi.js (new) 543 kB 🔴 +543 kB 🔴 +94.2 kB 🔴 +68.5 kB
assets/nodeDefs-BtOIJFM5.js (removed) 543 kB 🟢 -543 kB 🟢 -94.2 kB 🟢 -68.4 kB
assets/nodeDefs-CVamB5YL.js (new) 536 kB 🔴 +536 kB 🔴 +93.2 kB 🔴 +67.7 kB
assets/nodeDefs-DYR3XHZL.js (removed) 536 kB 🟢 -536 kB 🟢 -93.2 kB 🟢 -67.7 kB
assets/nodeDefs-CDqOHcTh.js (new) 515 kB 🔴 +515 kB 🔴 +86.4 kB 🔴 +63.5 kB
assets/nodeDefs-Ksdf1VS0.js (removed) 515 kB 🟢 -515 kB 🟢 -86.4 kB 🟢 -63.5 kB
assets/nodeDefs-BHhKpbph.js (removed) 499 kB 🟢 -499 kB 🟢 -96.6 kB 🟢 -67.6 kB
assets/nodeDefs-CPakgc_N.js (new) 499 kB 🔴 +499 kB 🔴 +96.6 kB 🔴 +67.6 kB
assets/nodeDefs-db1JhR2Q.js (new) 494 kB 🔴 +494 kB 🔴 +95.1 kB 🔴 +66.1 kB
assets/nodeDefs-DH09qqh5.js (removed) 494 kB 🟢 -494 kB 🟢 -95.1 kB 🟢 -66.1 kB
assets/main-B1hTRcJE.js (new) 272 kB 🔴 +272 kB 🔴 +67.8 kB 🔴 +53 kB
assets/main-Cxk5ST4U.js (removed) 272 kB 🟢 -272 kB 🟢 -67.8 kB 🟢 -53 kB
assets/main-CVfmoY3e.js (removed) 244 kB 🟢 -244 kB 🟢 -61.4 kB 🟢 -49.2 kB
assets/main-D1S319h0.js (new) 244 kB 🔴 +244 kB 🔴 +61.4 kB 🔴 +49.2 kB
assets/main-BJSU2U09.js (new) 232 kB 🔴 +232 kB 🔴 +60.8 kB 🔴 +48.4 kB
assets/main-COMgadOR.js (removed) 232 kB 🟢 -232 kB 🟢 -60.8 kB 🟢 -48.4 kB
assets/main-BhgtoNwb.js (removed) 225 kB 🟢 -225 kB 🟢 -60.5 kB 🟢 -47.8 kB
assets/main-XBz32jzO.js (new) 225 kB 🔴 +225 kB 🔴 +60.5 kB 🔴 +47.8 kB
assets/main-CMltGg2m.js (removed) 204 kB 🟢 -204 kB 🟢 -59 kB 🟢 -49 kB
assets/main-DtQm5E-X.js (new) 204 kB 🔴 +204 kB 🔴 +59 kB 🔴 +49 kB
assets/main-BcBfLa1R.js (removed) 202 kB 🟢 -202 kB 🟢 -58.5 kB 🟢 -46.9 kB
assets/main-CQNUPrR7.js (new) 202 kB 🔴 +202 kB 🔴 +58.5 kB 🔴 +46.9 kB
assets/main-CteL24p2.js (removed) 197 kB 🟢 -197 kB 🟢 -57.6 kB 🟢 -47.6 kB
assets/main-DNCjGgiX.js (new) 197 kB 🔴 +197 kB 🔴 +57.6 kB 🔴 +47.6 kB
assets/main-B2JI5nvq.js (new) 195 kB 🔴 +195 kB 🔴 +57.9 kB 🔴 +48.2 kB
assets/main-CB19XS1u.js (removed) 195 kB 🟢 -195 kB 🟢 -57.9 kB 🟢 -48.2 kB
assets/main-DgfyaGWR.js (removed) 194 kB 🟢 -194 kB 🟢 -57 kB 🟢 -47.7 kB
assets/main-DqNDWlrB.js (new) 194 kB 🔴 +194 kB 🔴 +57 kB 🔴 +47.7 kB
assets/main-BlNGfxhX.js (removed) 179 kB 🟢 -179 kB 🟢 -52.4 kB 🟢 -44.1 kB
assets/main-DVv5GqZx.js (new) 179 kB 🔴 +179 kB 🔴 +52.4 kB 🔴 +44.1 kB
assets/main-0jptbowe.js (new) 172 kB 🔴 +172 kB 🔴 +56.7 kB 🔴 +45.1 kB
assets/main-BsD6ZhgR.js (removed) 172 kB 🟢 -172 kB 🟢 -56.7 kB 🟢 -45.1 kB
assets/main-7_zZ16Xo.js (new) 170 kB 🔴 +170 kB 🔴 +56.6 kB 🔴 +44.9 kB
assets/main-DLKacLO4.js (removed) 170 kB 🟢 -170 kB 🟢 -56.6 kB 🟢 -44.9 kB
assets/core-DENEbZ1D.js (removed) 118 kB 🟢 -118 kB 🟢 -30.4 kB 🟢 -25.7 kB
assets/core-ZtflQTuA.js (new) 118 kB 🔴 +118 kB 🔴 +30.4 kB 🔴 +25.7 kB
assets/WidgetSelect-DTQSPji3.js (removed) 83.9 kB 🟢 -83.9 kB 🟢 -18.3 kB 🟢 -15.8 kB
assets/WidgetSelect-jOZ6lX0I.js (new) 83.9 kB 🔴 +83.9 kB 🔴 +18.3 kB 🔴 +15.9 kB
assets/Load3DControls-DkooqkkJ.js (removed) 46.8 kB 🟢 -46.8 kB 🟢 -7.57 kB 🟢 -6.61 kB
assets/Load3DControls-DpZNlnai.js (new) 46.8 kB 🔴 +46.8 kB 🔴 +7.57 kB 🔴 +6.62 kB
assets/SubscriptionRequiredDialogContentUnified-CnTcSkyI.js (removed) 40.9 kB 🟢 -40.9 kB 🟢 -9.46 kB 🟢 -8.23 kB
assets/SubscriptionRequiredDialogContentUnified-DZL3nLN_.js (new) 40.9 kB 🔴 +40.9 kB 🔴 +9.46 kB 🔴 +8.22 kB
assets/nodeDefs-CA2FRs4a.js (new) 36.9 kB 🔴 +36.9 kB 🔴 +9.46 kB 🔴 +8.23 kB
assets/nodeDefs-CaiMvYTp.js (removed) 36.9 kB 🟢 -36.9 kB 🟢 -9.46 kB 🟢 -8.23 kB
assets/WorkspacePanelContent-B27QMBni.js (new) 33.4 kB 🔴 +33.4 kB 🔴 +7 kB 🔴 +6.21 kB
assets/WorkspacePanelContent-DFfj2UCW.js (removed) 33.4 kB 🟢 -33.4 kB 🟢 -7 kB 🟢 -6.2 kB
assets/WidgetPainter-D_vr6f1L.js (removed) 32.7 kB 🟢 -32.7 kB 🟢 -7.9 kB 🟢 -7.01 kB
assets/WidgetPainter-DURs3UUf.js (new) 32.7 kB 🔴 +32.7 kB 🔴 +7.9 kB 🔴 +7 kB
assets/SubscriptionTransitionPreviewWorkspace-BZf5Xk6i.js (removed) 31.4 kB 🟢 -31.4 kB 🟢 -5.91 kB 🟢 -5.12 kB
assets/SubscriptionTransitionPreviewWorkspace-C_wed1Wg.js (new) 31.4 kB 🔴 +31.4 kB 🔴 +5.91 kB 🔴 +5.14 kB
assets/Load3dViewerContent-BbR8BY6g.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -6.3 kB 🟢 -5.47 kB
assets/Load3dViewerContent-BNUU0QI3.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +6.31 kB 🔴 +5.47 kB
assets/SubscriptionRequiredDialogContent-BpSqIIw-.js (removed) 26.6 kB 🟢 -26.6 kB 🟢 -6.57 kB 🟢 -5.8 kB
assets/SubscriptionRequiredDialogContent-DBeygVpP.js (new) 26.6 kB 🔴 +26.6 kB 🔴 +6.57 kB 🔴 +5.82 kB
assets/initHostTelemetry-CDc5H4Yb.js (removed) 25 kB 🟢 -25 kB 🟢 -6.17 kB 🟢 -5.13 kB
assets/initHostTelemetry-U-SNEwmD.js (new) 25 kB 🔴 +25 kB 🔴 +6.17 kB 🔴 +5.13 kB
assets/SubscriptionRequiredDialogContentWorkspace-CKQSBX50.js (new) 24.3 kB 🔴 +24.3 kB 🔴 +5.59 kB 🔴 +4.96 kB
assets/SubscriptionRequiredDialogContentWorkspace-DzFxMuda.js (removed) 24.3 kB 🟢 -24.3 kB 🟢 -5.58 kB 🟢 -4.91 kB
assets/ColorPicker-Bme_g0C8.js (new) 23.7 kB 🔴 +23.7 kB 🔴 +6.14 kB 🔴 +5.41 kB
assets/ColorPicker-DBA2Cjxg.js (removed) 23.7 kB 🟢 -23.7 kB 🟢 -6.14 kB 🟢 -5.42 kB
assets/WidgetImageCrop-BDe6OUdR.js (new) 23.3 kB 🔴 +23.3 kB 🔴 +5.75 kB 🔴 +5.06 kB
assets/WidgetImageCrop-D7rrfxT-.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.75 kB 🟢 -5.05 kB
assets/SubscriptionPanelContentWorkspace-BbJaMKRL.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +5.2 kB 🔴 +4.58 kB
assets/SubscriptionPanelContentWorkspace-Ds6G3-oA.js (removed) 22.3 kB 🟢 -22.3 kB 🟢 -5.2 kB 🟢 -4.59 kB
assets/load3d-Bgj-BS0h.js (removed) 21.2 kB 🟢 -21.2 kB 🟢 -5.18 kB 🟢 -4.5 kB
assets/load3d-Cc2WUkAF.js (new) 21.2 kB 🔴 +21.2 kB 🔴 +5.18 kB 🔴 +4.5 kB
assets/CurrentUserPopoverWorkspace-Bbypi93P.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +4.71 kB 🔴 +4.21 kB
assets/CurrentUserPopoverWorkspace-DPUxy8xy.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -4.71 kB 🟢 -4.21 kB
assets/SignInContent-Bdu-hh0B.js (new) 19.9 kB 🔴 +19.9 kB 🔴 +5 kB 🔴 +4.37 kB
assets/SignInContent-y4-TUab5.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -5 kB 🟢 -4.36 kB
assets/Load3D-BMproN3w.js (new) 19.1 kB 🔴 +19.1 kB 🔴 +4.51 kB 🔴 +3.94 kB
assets/Load3D-C4vSHfLY.js (removed) 19.1 kB 🟢 -19.1 kB 🟢 -4.52 kB 🟢 -3.94 kB
assets/WidgetInputNumber-BbltSJig.js (removed) 19 kB 🟢 -19 kB 🟢 -4.79 kB 🟢 -4.25 kB
assets/WidgetInputNumber-Caqzq2tj.js (new) 19 kB 🔴 +19 kB 🔴 +4.79 kB 🔴 +4.25 kB
assets/commands-B5OWIP07.js (new) 18.4 kB 🔴 +18.4 kB 🔴 +4 kB 🔴 +3.12 kB
assets/commands-Bdtoflfa.js (removed) 18.4 kB 🟢 -18.4 kB 🟢 -4 kB 🟢 -3.1 kB
assets/commands-D8rw30qv.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +3.69 kB 🔴 +2.83 kB
assets/commands-DKZY3HHo.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -3.69 kB 🟢 -2.83 kB
assets/commands-CkU576N4.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.77 kB 🟢 -2.96 kB
assets/commands-CROe-VxF.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.76 kB 🔴 +2.96 kB
assets/WidgetRecordAudio-Ca_jBs9Z.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +4.63 kB 🔴 +4.13 kB
assets/WidgetRecordAudio-CqJKLzl7.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -4.63 kB 🟢 -4.14 kB
assets/commands-Bh7GXs8W.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -3.8 kB 🟢 -2.99 kB
assets/commands-JLCUpsmb.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +3.79 kB 🔴 +2.99 kB
assets/commands-C9wqJpv2.js (new) 16.3 kB 🔴 +16.3 kB 🔴 +3.53 kB 🔴 +2.94 kB
assets/commands-DEdFP3nV.js (removed) 16.3 kB 🟢 -16.3 kB 🟢 -3.53 kB 🟢 -2.94 kB
assets/WidgetRange-BVNMfB6R.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.17 kB 🔴 +3.72 kB
assets/WidgetRange-eqjq7jud.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.17 kB 🟢 -3.73 kB
assets/commands-Chc9Dcue.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.5 kB 🔴 +2.91 kB
assets/commands-DFkk7GSw.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.5 kB 🟢 -2.91 kB
assets/commands-BlOUPdce.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.42 kB 🔴 +2.78 kB
assets/commands-DWN6PUv3.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.42 kB 🟢 -2.8 kB
assets/commands-CcmbODwY.js (new) 15.7 kB 🔴 +15.7 kB 🔴 +3.39 kB 🔴 +2.81 kB
assets/commands-j_zQkaQ7.js (removed) 15.7 kB 🟢 -15.7 kB 🟢 -3.39 kB 🟢 -2.81 kB
assets/commands-DJRpIyM8.js (new) 15.6 kB 🔴 +15.6 kB 🔴 +3.65 kB 🔴 +2.85 kB
assets/commands-Dlgqq4kN.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-tyxfNCfU.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.59 kB 🔴 +2.74 kB
assets/commands-XkTl1Gda.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.59 kB 🟢 -2.74 kB
assets/commands-BbShCDWe.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.54 kB 🔴 +2.63 kB
assets/commands-CGfPfGOt.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -3.54 kB 🟢 -2.63 kB
assets/DialogHeader-DbuOAFpK.js (removed) 13.9 kB 🟢 -13.9 kB 🟢 -3.79 kB 🟢 -3.36 kB
assets/DialogHeader-DUa_Cbdh.js (new) 13.9 kB 🔴 +13.9 kB 🔴 +3.79 kB 🔴 +3.35 kB
assets/WaveAudioPlayer-7D75NsAb.js (removed) 12.8 kB 🟢 -12.8 kB 🟢 -3.48 kB 🟢 -3.05 kB
assets/WaveAudioPlayer-BAE4SVyC.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.48 kB 🔴 +3.05 kB
assets/i18n-Bw5OqVFy.js (new) 11.7 kB 🔴 +11.7 kB 🔴 +3.17 kB 🔴 +2.66 kB
assets/i18n-S_keuC2E.js (removed) 11.7 kB 🟢 -11.7 kB 🟢 -3.16 kB 🟢 -2.66 kB
assets/WidgetCurve-B9inK-Um.js (removed) 11.3 kB 🟢 -11.3 kB 🟢 -3.51 kB 🟢 -3.19 kB
assets/WidgetCurve-DIVu7-13.js (new) 11.3 kB 🔴 +11.3 kB 🔴 +3.5 kB 🔴 +3.18 kB
assets/AudioPreviewPlayer-B2Gpfb0H.js (new) 10.6 kB 🔴 +10.6 kB 🔴 +3.06 kB 🔴 +2.73 kB
assets/AudioPreviewPlayer-CkDc9Jmm.js (removed) 10.6 kB 🟢 -10.6 kB 🟢 -3.07 kB 🟢 -2.73 kB
assets/TeamWorkspacesDialogContent-Byhi2Snu.js (new) 10.4 kB 🔴 +10.4 kB 🔴 +3.01 kB 🔴 +2.68 kB
assets/TeamWorkspacesDialogContent-jGw-zE_D.js (removed) 10.4 kB 🟢 -10.4 kB 🟢 -3.01 kB 🟢 -2.68 kB
assets/SelectValue-Bjj6ChpS.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.48 kB 🟢 -2.18 kB
assets/SelectValue-YZrgJj5b.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.48 kB 🔴 +2.18 kB
assets/Load3DConfiguration-B2LkoiRJ.js (removed) 9.02 kB 🟢 -9.02 kB 🟢 -2.66 kB 🟢 -2.35 kB
assets/Load3DConfiguration-DLTcT921.js (new) 9.02 kB 🔴 +9.02 kB 🔴 +2.67 kB 🔴 +2.35 kB
assets/onboardingCloudRoutes-2rX_1i3W.js (new) 8.43 kB 🔴 +8.43 kB 🔴 +2.61 kB 🔴 +2.24 kB
assets/nodeTemplates-BJhf5Ci6.js (removed) 8.33 kB 🟢 -8.33 kB 🟢 -2.88 kB 🟢 -2.54 kB
assets/nodeTemplates-CtnPkJTk.js (new) 8.33 kB 🔴 +8.33 kB 🔴 +2.88 kB 🔴 +2.54 kB
assets/onboardingCloudRoutes-BsRw4i6J.js (removed) 8.2 kB 🟢 -8.2 kB 🟢 -2.54 kB 🟢 -2.18 kB
assets/NightlySurveyController-CGB1qm96.js (removed) 7.95 kB 🟢 -7.95 kB 🟢 -2.7 kB 🟢 -2.38 kB
assets/NightlySurveyController-DgTsELC5.js (new) 7.95 kB 🔴 +7.95 kB 🔴 +2.7 kB 🔴 +2.38 kB
assets/WidgetImageCompare-D_1n4cp1.js (new) 7.82 kB 🔴 +7.82 kB 🔴 +2.25 kB 🔴 +1.97 kB
assets/WidgetImageCompare-DwCZkwte.js (removed) 7.82 kB 🟢 -7.82 kB 🟢 -2.25 kB 🟢 -1.98 kB
assets/Popover-BVQqe4LM.js (new) 7.18 kB 🔴 +7.18 kB 🔴 +2.58 kB 🔴 +2.27 kB
assets/Popover-DRMi0gva.js (removed) 7.18 kB 🟢 -7.18 kB 🟢 -2.58 kB 🟢 -2.26 kB
assets/InviteMemberDialogContent-BTqUd0qU.js (removed) 7.03 kB 🟢 -7.03 kB 🟢 -2.14 kB 🟢 -1.85 kB
assets/InviteMemberDialogContent-CACDlV7Q.js (new) 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-CG7NxXMJ.js (removed) 6.3 kB 🟢 -6.3 kB 🟢 -2.54 kB 🟢 -2.25 kB
assets/WidgetWithControl-CsvyNGNU.js (new) 6.3 kB 🔴 +6.3 kB 🔴 +2.54 kB 🔴 +2.25 kB
assets/AnimationControls-CK8PVUaB.js (removed) 6.16 kB 🟢 -6.16 kB 🟢 -1.88 kB 🟢 -1.67 kB
assets/AnimationControls-DDbHbFIU.js (new) 6.16 kB 🔴 +6.16 kB 🔴 +1.88 kB 🔴 +1.66 kB
assets/main-CDqR3fIR.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.79 kB 🟢 -1.52 kB
assets/main-D9EWinJO.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.8 kB 🔴 +1.52 kB
assets/load3dPreviewExtensions-BwazY-JR.js (new) 5.38 kB 🔴 +5.38 kB 🔴 +1.75 kB 🔴 +1.55 kB
assets/load3dPreviewExtensions-DyzBztDX.js (removed) 5.38 kB 🟢 -5.38 kB 🟢 -1.75 kB 🟢 -1.55 kB
assets/CreateWorkspaceDialogContent-CEsofAFz.js (removed) 5.19 kB 🟢 -5.19 kB 🟢 -1.83 kB 🟢 -1.59 kB
assets/CreateWorkspaceDialogContent-CXcAKxEw.js (new) 5.19 kB 🔴 +5.19 kB 🔴 +1.83 kB 🔴 +1.59 kB
assets/CloudNotificationContent-BI93gujk.js (new) 5.11 kB 🔴 +5.11 kB 🔴 +1.79 kB 🔴 +1.54 kB
assets/CloudNotificationContent-BLdrw1DP.js (removed) 5.11 kB 🟢 -5.11 kB 🟢 -1.79 kB 🟢 -1.54 kB
assets/missingModelDownload-b9c_ZgIf.js (new) 5.07 kB 🔴 +5.07 kB 🔴 +1.98 kB 🔴 +1.72 kB
assets/missingModelDownload-UtX91qQa.js (removed) 5.07 kB 🟢 -5.07 kB 🟢 -1.98 kB 🟢 -1.72 kB
assets/FreeTierDialogContent-9Wjokt6b.js (new) 5.02 kB 🔴 +5.02 kB 🔴 +1.69 kB 🔴 +1.49 kB
assets/FreeTierDialogContent-DYb_hKsR.js (removed) 5.02 kB 🟢 -5.02 kB 🟢 -1.69 kB 🟢 -1.49 kB
assets/EditWorkspaceDialogContent-BxWS0JhZ.js (removed) 5 kB 🟢 -5 kB 🟢 -1.8 kB 🟢 -1.56 kB
assets/EditWorkspaceDialogContent-HGAobO_1.js (new) 5 kB 🔴 +5 kB 🔴 +1.8 kB 🔴 +1.56 kB
assets/WidgetTextarea-3jm7CxDD.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.89 kB 🟢 -1.66 kB
assets/WidgetTextarea-B_NexvDS.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.89 kB 🔴 +1.67 kB
assets/DowngradeRemoveMembersDialogContent-DO_G9stg.js (removed) 4.83 kB 🟢 -4.83 kB 🟢 -1.7 kB 🟢 -1.47 kB
assets/DowngradeRemoveMembersDialogContent-ik9OojwJ.js (new) 4.83 kB 🔴 +4.83 kB 🔴 +1.7 kB 🔴 +1.47 kB
assets/saveMesh-Dc1RqL2y.js (new) 4.79 kB 🔴 +4.79 kB 🔴 +1.54 kB 🔴 +1.36 kB
assets/saveMesh-DCpECKgm.js (removed) 4.79 kB 🟢 -4.79 kB 🟢 -1.54 kB 🟢 -1.37 kB
assets/Preview3d-BFTo3suM.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.43 kB 🔴 +1.23 kB
assets/Preview3d-C8Zz89a_.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.43 kB 🟢 -1.24 kB
assets/ValueControlPopover-Ce0j11-G.js (new) 4.55 kB 🔴 +4.55 kB 🔴 +1.59 kB 🔴 +1.41 kB
assets/ValueControlPopover-CmJBL6yM.js (removed) 4.55 kB 🟢 -4.55 kB 🟢 -1.59 kB 🟢 -1.42 kB
assets/CancelSubscriptionDialogContent-BBlh_pwt.js (new) 4.54 kB 🔴 +4.54 kB 🔴 +1.65 kB 🔴 +1.44 kB
assets/CancelSubscriptionDialogContent-BimUuU6p.js (removed) 4.54 kB 🟢 -4.54 kB 🟢 -1.65 kB 🟢 -1.44 kB
assets/tierBenefits-BvfLkdLm.js (new) 4.39 kB 🔴 +4.39 kB 🔴 +1.56 kB 🔴 +1.34 kB
assets/tierBenefits-xyNKwqzl.js (removed) 4.39 kB 🟢 -4.39 kB 🟢 -1.56 kB 🟢 -1.34 kB
assets/ApiNodesSignInContent-1y4PDLHy.js (removed) 4.14 kB 🟢 -4.14 kB 🟢 -1.34 kB 🟢 -1.17 kB
assets/ApiNodesSignInContent-CbLmVWM6.js (new) 4.14 kB 🔴 +4.14 kB 🔴 +1.34 kB 🔴 +1.18 kB
assets/Slider-BAwVqlw_.js (removed) 3.92 kB 🟢 -3.92 kB 🟢 -1.45 kB 🟢 -1.25 kB
assets/Slider-wNPAEOFc.js (new) 3.92 kB 🔴 +3.92 kB 🔴 +1.45 kB 🔴 +1.25 kB
assets/DeleteWorkspaceDialogContent-C9YfpNWb.js (removed) 3.91 kB 🟢 -3.91 kB 🟢 -1.48 kB 🟢 -1.27 kB
assets/DeleteWorkspaceDialogContent-TV0_yCev.js (new) 3.91 kB 🔴 +3.91 kB 🔴 +1.47 kB 🔴 +1.27 kB
assets/WidgetBoundingBox-OIDdlbkh.js (removed) 3.82 kB 🟢 -3.82 kB 🟢 -1.06 kB 🟢 -925 B
assets/WidgetBoundingBox-VXmxJUmC.js (new) 3.82 kB 🔴 +3.82 kB 🔴 +1.06 kB 🔴 +941 B
assets/WidgetGalleria-C1TM2T1E.js (removed) 3.8 kB 🟢 -3.8 kB 🟢 -1.48 kB 🟢 -1.32 kB
assets/WidgetGalleria-Dl7TbXuG.js (new) 3.8 kB 🔴 +3.8 kB 🔴 +1.48 kB 🔴 +1.32 kB
assets/LeaveWorkspaceDialogContent-BhJ82RMr.js (new) 3.73 kB 🔴 +3.73 kB 🔴 +1.42 kB 🔴 +1.22 kB
assets/LeaveWorkspaceDialogContent-DnjrYFx5.js (removed) 3.73 kB 🟢 -3.73 kB 🟢 -1.42 kB 🟢 -1.22 kB
assets/RemoveMemberDialogContent-BbHFWWqC.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.38 kB 🟢 -1.19 kB
assets/RemoveMemberDialogContent-C5LhEFV2.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.37 kB 🔴 +1.19 kB
assets/WidgetToggleSwitch-C0KbyQxT.js (removed) 3.67 kB 🟢 -3.67 kB 🟢 -1.39 kB 🟢 -1.23 kB
assets/WidgetToggleSwitch-DCTCiWfC.js (new) 3.67 kB 🔴 +3.67 kB 🔴 +1.4 kB 🔴 +1.23 kB
assets/RevokeInviteDialogContent-BaKuCB_A.js (removed) 3.63 kB 🟢 -3.63 kB 🟢 -1.38 kB 🟢 -1.21 kB
assets/RevokeInviteDialogContent-BtsSyHLX.js (new) 3.63 kB 🔴 +3.63 kB 🔴 +1.38 kB 🔴 +1.2 kB
assets/InviteMemberUpsellDialogContent-BKdDunZU.js (removed) 3.56 kB 🟢 -3.56 kB 🟢 -1.26 kB 🟢 -1.12 kB
assets/InviteMemberUpsellDialogContent-DjGl-AoN.js (new) 3.56 kB 🔴 +3.56 kB 🔴 +1.26 kB 🔴 +1.09 kB
assets/Media3DTop-C4-Xtl1g.js (new) 3.26 kB 🔴 +3.26 kB 🔴 +1.3 kB 🔴 +1.13 kB
assets/Media3DTop-Zhb5ITVa.js (removed) 3.26 kB 🟢 -3.26 kB 🟢 -1.3 kB 🟢 -1.13 kB
assets/WidgetMarkdown-CjGSrCyz.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.27 kB 🟢 -1.11 kB
assets/WidgetMarkdown-DZjwEqWT.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.27 kB 🔴 +1.11 kB
assets/WidgetInputText-C-SCFxJS.js (new) 3.07 kB 🔴 +3.07 kB 🔴 +1.29 kB 🔴 +1.16 kB
assets/WidgetInputText-KtS3Njl2.js (removed) 3.07 kB 🟢 -3.07 kB 🟢 -1.29 kB 🟢 -1.16 kB
assets/GlobalToast-CHvYZLRY.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.26 kB 🔴 +1.08 kB
assets/GlobalToast-rLo2TmYJ.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.26 kB 🟢 -1.08 kB
assets/MediaVideoTop-Cv8ZmqfX.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.18 kB 🟢 -1.03 kB
assets/MediaVideoTop-OgiU5gah.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.18 kB 🔴 +1.03 kB
assets/load3dAdvanced-CHNYCUY1.js (new) 2.85 kB 🔴 +2.85 kB 🔴 +1.12 kB 🔴 +972 B
assets/load3dAdvanced-DlvQAuv5.js (removed) 2.85 kB 🟢 -2.85 kB 🟢 -1.12 kB 🟢 -973 B
assets/ErrorPanelSurveyCta-B06r5DLA.js (new) 2.64 kB 🔴 +2.64 kB 🔴 +1.16 kB 🔴 +1.02 kB
assets/ErrorPanelSurveyCta-DORhlTuM.js (removed) 2.64 kB 🟢 -2.64 kB 🟢 -1.16 kB 🟢 -1.02 kB
assets/SubscribeToRun-Bl41w-YU.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.1 kB 🔴 +972 B
assets/SubscribeToRun-DjOzFRK-.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.1 kB 🟢 -971 B
assets/WidgetLayoutField-BBFnfohT.js (removed) 2.43 kB 🟢 -2.43 kB 🟢 -1.05 kB 🟢 -929 B
assets/WidgetLayoutField-CJZ02uYx.js (new) 2.43 kB 🔴 +2.43 kB 🔴 +1.06 kB 🔴 +958 B
assets/WidgetChart-CRalPyLo.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.03 kB 🔴 +888 B
assets/WidgetChart-Ht_74h5H.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.03 kB 🟢 -888 B
assets/SubscriptionBenefits-KVW_sIn-.js (removed) 2.07 kB 🟢 -2.07 kB 🟢 -709 B 🟢 -609 B
assets/SubscriptionBenefits-VjAjSD_q.js (new) 2.07 kB 🔴 +2.07 kB 🔴 +709 B 🔴 +608 B
assets/MediaImageTop-CEQkk-fN.js (new) 2.06 kB 🔴 +2.06 kB 🔴 +993 B 🔴 +884 B
assets/MediaImageTop-D24RTFOf.js (removed) 2.06 kB 🟢 -2.06 kB 🟢 -994 B 🟢 -857 B
assets/constants-DP4sIT6R.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -724 B 🟢 -613 B
assets/constants-G2tfGpxs.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +724 B 🔴 +618 B
assets/graphHasMissingNodes-BmH_bVbL.js (removed) 1.93 kB 🟢 -1.93 kB 🟢 -907 B 🟢 -793 B
assets/graphHasMissingNodes-CmnfXQ_t.js (new) 1.93 kB 🔴 +1.93 kB 🔴 +906 B 🔴 +790 B
assets/webviewDetection-CkdWWsXp.js (new) 1.81 kB 🔴 +1.81 kB 🔴 +864 B 🔴 +715 B
assets/webviewDetection-CsH6wGVS.js (removed) 1.81 kB 🟢 -1.81 kB 🟢 -864 B 🟢 -716 B
assets/WidgetColorPicker-BKZWjboD.js (new) 1.74 kB 🔴 +1.74 kB 🔴 +782 B 🔴 +693 B
assets/WidgetColorPicker-CA3qsClD.js (removed) 1.74 kB 🟢 -1.74 kB 🟢 -784 B 🟢 -696 B
assets/auto-Ch1mxjrr.js (removed) 1.7 kB 🟢 -1.7 kB 🟢 -620 B 🟢 -568 B
assets/auto-DCflDCPL.js (new) 1.7 kB 🔴 +1.7 kB 🔴 +620 B 🔴 +570 B
assets/Loader-Cs-rPNS0.js (new) 1.69 kB 🔴 +1.69 kB 🔴 +812 B 🔴 +746 B
assets/Loader-DjJX30og.js (removed) 1.69 kB 🟢 -1.69 kB 🟢 -813 B 🟢 -718 B
assets/MediaAudioTop-bSV54Zae.js (removed) 1.67 kB 🟢 -1.67 kB 🟢 -838 B 🟢 -692 B
assets/MediaAudioTop-DvsgRMe3.js (new) 1.67 kB 🔴 +1.67 kB 🔴 +838 B 🔴 +697 B
assets/topupTracker-BujGBcXz.js (removed) 1.62 kB 🟢 -1.62 kB 🟢 -776 B 🟢 -651 B
assets/topupTracker-DL2eHpA-.js (new) 1.62 kB 🔴 +1.62 kB 🔴 +776 B 🔴 +651 B
assets/Textarea-B0sr4_WA.js (removed) 1.61 kB 🟢 -1.61 kB 🟢 -840 B 🟢 -733 B
assets/Textarea-CkgK8-Zg.js (new) 1.61 kB 🔴 +1.61 kB 🔴 +840 B 🔴 +731 B
assets/signInSchema-BBZg9ITA.js (new) 1.6 kB 🔴 +1.6 kB 🔴 +587 B 🔴 +518 B
assets/signInSchema-BVMQRptl.js (removed) 1.6 kB 🟢 -1.6 kB 🟢 -584 B 🟢 -514 B
assets/widgetPropFilter-BByYUpo4.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -704 B 🟢 -607 B
assets/widgetPropFilter-BwJ0c5nj.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +704 B 🔴 +573 B
assets/VideoPlayOverlay-C459VoJw.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -763 B 🟢 -671 B
assets/VideoPlayOverlay-CSaGjtk0.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +761 B 🔴 +671 B
assets/CloudRunButtonWrapper-AKZ3bI_o.js (removed) 1.13 kB 🟢 -1.13 kB 🟢 -552 B 🟢 -515 B
assets/CloudRunButtonWrapper-B8yA5JJ4.js (new) 1.13 kB 🔴 +1.13 kB 🔴 +551 B 🔴 +519 B
assets/MediaOtherTop-CJVimoYT.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -607 B 🟢 -501 B
assets/MediaOtherTop-JYB0ciDx.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +605 B 🔴 +501 B
assets/MediaTextTop-Cq43Hl8B.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +601 B 🔴 +503 B
assets/MediaTextTop-D2BTy3QO.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -601 B 🟢 -504 B
assets/cloudSessionCookie-AiISkRGq.js (removed) 991 B 🟢 -991 B 🟢 -468 B 🟢 -427 B
assets/cloudSessionCookie-EQTncjR5.js (new) 991 B 🔴 +991 B 🔴 +468 B 🔴 +420 B
assets/cloudBadges-Bn4Vf-F9.js (new) 973 B 🔴 +973 B 🔴 +552 B 🔴 +498 B
assets/cloudBadges-cRGSwxjJ.js (removed) 973 B 🟢 -973 B 🟢 -550 B 🟢 -469 B
assets/ComfyOrgHeader-U04Bzxdx.js (new) 960 B 🔴 +960 B 🔴 +525 B 🔴 +447 B
assets/ComfyOrgHeader-UUhVfREM.js (removed) 960 B 🟢 -960 B 🟢 -526 B 🟢 -457 B
assets/nodeTypes-BswnQ9Sv.js (removed) 932 B 🟢 -932 B 🟢 -446 B 🟢 -370 B
assets/nodeTypes-C8ZZWVjj.js (new) 932 B 🔴 +932 B 🔴 +447 B 🔴 +369 B
assets/load3dSerialize-4ovJkCDm.js (removed) 885 B 🟢 -885 B 🟢 -425 B 🟢 -363 B
assets/load3dSerialize-DyJorWTa.js (new) 885 B 🔴 +885 B 🔴 +424 B 🔴 +362 B
assets/Load3DAdvanced-BSKMsRml.js (removed) 813 B 🟢 -813 B 🟢 -455 B 🟢 -409 B
assets/Load3DAdvanced-etTwF9kt.js (new) 813 B 🔴 +813 B 🔴 +453 B 🔴 +408 B
assets/devFeatureFlagOverride-BkGrEGSd.js (removed) 756 B 🟢 -756 B 🟢 -467 B 🟢 -408 B
assets/devFeatureFlagOverride-CI6kka1n.js (new) 756 B 🔴 +756 B 🔴 +469 B 🔴 +392 B
assets/telemetry-B8BGYZ_-.js (new) 546 B 🔴 +546 B 🔴 +334 B 🔴 +271 B
assets/telemetry-BQKS_Is7.js (removed) 546 B 🟢 -546 B 🟢 -334 B 🟢 -271 B
assets/nightlyBadges-Dlf03Ebh.js (new) 464 B 🔴 +464 B 🔴 +308 B 🔴 +255 B
assets/nightlyBadges-fNLBEmtD.js (removed) 464 B 🟢 -464 B 🟢 -304 B 🟢 -255 B
assets/src-DBniEuKU.js (new) 446 B 🔴 +446 B 🔴 +317 B 🔴 +270 B
assets/src-fsCpYHTu.js (removed) 446 B 🟢 -446 B 🟢 -318 B 🟢 -268 B
assets/widgetTypes-CLBvuu_M.js (removed) 416 B 🟢 -416 B 🟢 -271 B 🟢 -237 B
assets/widgetTypes-NQ_h5wrS.js (new) 416 B 🔴 +416 B 🔴 +273 B 🔴 +236 B
assets/vRekaZIndex-BhGgBUMP.js (new) 360 B 🔴 +360 B 🔴 +263 B 🔴 +221 B
assets/vRekaZIndex-DkbhP_JR.js (removed) 360 B 🟢 -360 B 🟢 -263 B 🟢 -222 B
assets/cloud-subscription-B2jD1trI.js (removed) 279 B 🟢 -279 B 🟢 -185 B 🟢 -153 B
assets/cloud-subscription-BUzam6dP.js (new) 279 B 🔴 +279 B 🔴 +183 B 🔴 +148 B
assets/comfy-logo-single-_H-yxx8s.js (new) 272 B 🔴 +272 B 🔴 +183 B 🔴 +147 B
assets/comfy-logo-single--h2m5AOT.js (removed) 272 B 🟢 -272 B 🟢 -185 B 🟢 -150 B
assets/missingModelDownload-CcOCKpPu.js (new) 228 B 🔴 +228 B 🔴 +150 B 🔴 +129 B
assets/missingModelDownload-xwdgDFIl.js (removed) 228 B 🟢 -228 B 🟢 -149 B 🟢 -129 B
assets/SubscriptionPanelContentWorkspace-BK6tDime.js (removed) 179 B 🟢 -179 B 🟢 -117 B 🟢 -103 B
assets/SubscriptionPanelContentWorkspace-DS50jRq1.js (new) 179 B 🔴 +179 B 🔴 +117 B 🔴 +92 B
assets/Load3dViewerContent-CrS8FVfd.js (new) 137 B 🔴 +137 B 🔴 +103 B 🔴 +92 B
assets/Load3dViewerContent-Dtbzsn84.js (removed) 137 B 🟢 -137 B 🟢 -103 B 🟢 -108 B
assets/WidgetBoundingBox-DhBjEGYF.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -97 B
assets/WidgetBoundingBox-fliRA7kS.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +93 B
assets/Load3DAdvanced-BjUs8ngH.js (new) 122 B 🔴 +122 B 🔴 +97 B 🔴 +83 B
assets/Load3DAdvanced-Bo5DhhTJ.js (removed) 122 B 🟢 -122 B 🟢 -97 B 🟢 -87 B
assets/WidgetLegacy-ClnnS8Ra.js (removed) 119 B 🟢 -119 B 🟢 -108 B 🟢 -98 B
assets/WidgetLegacy-D-gWqy4Q.js (new) 119 B 🔴 +119 B 🔴 +108 B 🔴 +95 B
assets/workflowDraftStoreV2-B-m-yUVj.js (removed) 113 B 🟢 -113 B 🟢 -105 B 🟢 -117 B
assets/workflowDraftStoreV2-BD_8tHvt.js (new) 113 B 🔴 +113 B 🔴 +105 B 🔴 +110 B
assets/Load3D-CusgrvMh.js (new) 98 B 🔴 +98 B 🔴 +89 B 🔴 +87 B
assets/Load3D-DRUAtHJD.js (removed) 98 B 🟢 -98 B 🟢 -89 B 🟢 -94 B
assets/i18n-BHNT7AN9.js (new) 97 B 🔴 +97 B 🔴 +92 B 🔴 +88 B
assets/i18n-D3p8amlU.js (removed) 97 B 🟢 -97 B 🟢 -92 B 🟢 -86 B
assets/changeTracker-Cd6yy3v8.js (removed) 93 B 🟢 -93 B 🟢 -95 B 🟢 -81 B
assets/changeTracker-Cn4CKDZF.js (new) 93 B 🔴 +93 B 🔴 +95 B 🔴 +82 B

Status: 150 added / 150 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

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 19, 2026
@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.65517% with 12 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/platform/cloud/onboarding/CloudLoginView.vue 0.00% 4 Missing ⚠️
src/platform/cloud/onboarding/CloudSignupView.vue 0.00% 3 Missing ⚠️
...platform/cloud/onboarding/onboardingCloudRoutes.ts 0.00% 2 Missing ⚠️
...rc/platform/cloud/onboarding/desktopLoginBridge.ts 97.77% 1 Missing ⚠️
...emetry/providers/cloud/PostHogTelemetryProvider.ts 50.00% 1 Missing ⚠️
...tform/telemetry/providers/cloud/posthogIdentity.ts 95.23% 1 Missing ⚠️
@@            Coverage Diff             @@
##             main   #12983      +/-   ##
==========================================
- Coverage   76.37%   75.88%   -0.50%     
==========================================
  Files        1569     1591      +22     
  Lines      102782   105739    +2957     
  Branches    31977    32425     +448     
==========================================
+ Hits        78499    80237    +1738     
- Misses      23452    24645    +1193     
- Partials      831      857      +26     
Flag Coverage Δ
unit 63.52% <89.65%> (+0.63%) ⬆️

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

Files with missing lines Coverage Δ
...nboarding/composables/useDesktopLoginCompletion.ts 100.00% <100.00%> (ø)
...loud/onboarding/composables/usePostAuthRedirect.ts 100.00% <100.00%> (+100.00%) ⬆️
...rc/platform/cloud/onboarding/desktopLoginBridge.ts 97.77% <97.77%> (ø)
...emetry/providers/cloud/PostHogTelemetryProvider.ts 64.93% <50.00%> (+1.41%) ⬆️
...tform/telemetry/providers/cloud/posthogIdentity.ts 95.23% <95.23%> (ø)
...platform/cloud/onboarding/onboardingCloudRoutes.ts 27.27% <0.00%> (ø)
src/platform/cloud/onboarding/CloudSignupView.vue 0.00% <0.00%> (ø)
src/platform/cloud/onboarding/CloudLoginView.vue 0.00% <0.00%> (ø)

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

@benceruleanlu
benceruleanlu marked this pull request as ready for review June 23, 2026 01:13
@benceruleanlu
benceruleanlu requested a review from a team June 23, 2026 01:13
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 23, 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: 2

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

Inline comments:
In `@src/platform/cloud/onboarding/CloudLoginView.vue`:
- Line 125: The call to completeDesktopLoginForExistingSession on line 125 is
intentionally unawaited but can reject through its onAuthSuccess callback,
creating a potential unhandled promise rejection. Add a terminal .catch()
handler to the completeDesktopLoginForExistingSession(...) call to catch and
handle any unexpected failures, ensuring the promise chain is properly
terminated and compliant with the floating promises restriction in the coding
guidelines.

In `@src/platform/cloud/onboarding/CloudSignupView.vue`:
- Around line 166-167: The call to
completeDesktopLoginForExistingSession(route.query, onAuthSuccess) on line 166
is a fire-and-forget promise that lacks error handling, which can result in
unhandled promise rejections. Attach a .catch() handler to this promise chain to
gracefully handle any errors that may occur from the onAuthSuccess() callback,
ensuring failures remain user-visible and bounded rather than escaping as
unhandled rejections.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 97d0c744-2cf2-4f04-b83b-495a1783e99d

📥 Commits

Reviewing files that changed from the base of the PR and between 34d2736 and e5f9da3.

📒 Files selected for processing (4)
  • src/platform/cloud/onboarding/CloudLoginView.vue
  • src/platform/cloud/onboarding/CloudSignupView.vue
  • src/platform/cloud/onboarding/composables/useDesktopLoginCompletion.test.ts
  • src/platform/cloud/onboarding/composables/useDesktopLoginCompletion.ts
✅ Files skipped from review due to trivial changes (1)
  • src/platform/cloud/onboarding/composables/useDesktopLoginCompletion.test.ts

Comment thread src/platform/cloud/onboarding/CloudLoginView.vue Outdated
Comment thread src/platform/cloud/onboarding/CloudSignupView.vue Outdated
@coderabbitai
coderabbitai Bot requested review from dante01yoon and deepme987 June 23, 2026 09:04
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 23, 2026
@pythongosssss

pythongosssss commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

@christian-byrne Could you check the PR now vs your comment earlier for if you need anything here changing (I think we can include the anon id in a separate PR? Or is it required for something here)

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 24, 2026
@christian-byrne

Copy link
Copy Markdown
Contributor

Did not mean to approve, was on wrong tab

@github-actions github-actions Bot locked and limited conversation to collaborators Jun 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants