Skip to content

fix: add isGraphReady guard to prevent premature graph access error logs#9672

Merged
DrJKL merged 3 commits intomainfrom
fix/is-graph-ready-guard
Mar 9, 2026
Merged

fix: add isGraphReady guard to prevent premature graph access error logs#9672
DrJKL merged 3 commits intomainfrom
fix/is-graph-ready-guard

Conversation

@jaeone94
Copy link
Collaborator

@jaeone94 jaeone94 commented Mar 9, 2026

Summary

Adds isGraphReady getter to ComfyApp and uses it in executionErrorStore guards to prevent false 'ComfyApp graph accessed before initialization' error logs during early store evaluation.

Changes

  • What: Added isGraphReady boolean getter to ComfyApp that safely checks graph initialization without triggering the rootGraph getter's error log. Updated 5 guard sites in executionErrorStore to use app.isGraphReady instead of app.rootGraph.
  • Why: The rootGraph getter logs an error when accessed before initialization. Computed properties and watch callbacks in executionErrorStore are evaluated early (before graph init), causing false error noise in the console.

Review Focus

  • isGraphReady is intentionally minimal — just !!this.rootGraphInternal — to avoid duplicating the error-logging behavior of rootGraph
  • The watch(lastNodeErrors, ...) callback now checks isGraphReady at the top and early-returns, consistent with the computed property pattern

┆Issue is synchronized with this Notion page by Unito

Add isGraphReady getter to ComfyApp that checks graph initialization
without triggering the 
ootGraph getter's error log.

Replace guard checks in executionErrorStore's computed properties and
watch callbacks with �pp.isGraphReady to prevent false
'ComfyApp graph accessed before initialization' errors during
early store evaluation.
@jaeone94 jaeone94 requested a review from a team as a code owner March 9, 2026 19:50
@jaeone94 jaeone94 added the verified bug Something isn't working (confirmed by the team) label Mar 9, 2026
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 03/09/2026, 07:56:25 PM UTC

Links

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

🎭 Playwright: ✅ 554 passed, 0 failed · 3 flaky

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fb960c59-0920-4df4-a742-43197e609fef

📥 Commits

Reviewing files that changed from the base of the PR and between 3b5af49 and 7ecb170.

📒 Files selected for processing (3)
  • docs/release-process.md
  • src/scripts/app.ts
  • src/stores/executionErrorStore.ts

📝 Walkthrough

Walkthrough

A new isGraphReady getter is added to ComfyApp to provide a safe, read-only flag for graph initialization state. The execution error store is refactored to use this new getter instead of direct rootGraph existence checks throughout multiple computed properties and helper functions.

Changes

Cohort / File(s) Summary
Documentation Formatting
docs/release-process.md
Table structure consolidated with adjusted headers, column widths, and alignment; inline text phrasing updated for consistency.
Graph Readiness Getter
src/scripts/app.ts
New public computed getter isGraphReady added to ComfyApp class, returning boolean state derived from rootGraphInternal.
Store Refactoring
src/stores/executionErrorStore.ts
Graph readiness checks replaced throughout: computed properties (activeGraphErrorNodeIds, activeMissingNodeGraphIds), watch guard (lastNodeErrors), and helper functions (isContainerWithInternalError, isContainerWithMissingNode) now use isGraphReady instead of rootGraph existence checks.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A getter born, so tidy and neat,
Makes graph checks complete!
From root to ready, the pattern flows true,
Stores now aligned with the check that's new.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding isGraphReady guard to prevent premature graph access error logs, which is the core purpose of this PR.
Description check ✅ Passed The description includes a clear Summary, detailed Changes with What and Why, and thoughtful Review Focus. It follows the template structure and provides sufficient context for reviewers.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/is-graph-ready-guard

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.

DrJKL
DrJKL previously approved these changes Mar 9, 2026
@DrJKL DrJKL enabled auto-merge (squash) March 9, 2026 19:52
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

📦 Bundle: 4.57 MB gzip 🟢 -73 B

Details

Summary

  • Raw size: 21.4 MB baseline 21.4 MB — 🔴 +79 B
  • Gzip: 4.57 MB baseline 4.57 MB — 🟢 -73 B
  • Brotli: 3.53 MB baseline 3.53 MB — 🔴 +314 B
  • Bundles: 232 current • 232 baseline • 108 added / 108 removed

Category Glance
Data & Services 🔴 +79 B (2.77 MB) · Vendor & Third-Party ⚪ 0 B (8.88 MB) · Other ⚪ 0 B (8.04 MB) · Graph Workspace ⚪ 0 B (967 kB) · Panels & Settings ⚪ 0 B (436 kB) · Editors & Dialogs ⚪ 0 B (77.5 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-eVqW4OYK.js (new) 28.9 kB 🔴 +28.9 kB 🔴 +11.4 kB 🔴 +9.35 kB
assets/index-zEN3xK7x.js (removed) 28.9 kB 🟢 -28.9 kB 🟢 -11.4 kB 🟢 -9.35 kB

Status: 1 added / 1 removed

Graph Workspace — 967 kB (baseline 967 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-DkFHBP9T.js (new) 967 kB 🔴 +967 kB 🔴 +204 kB 🔴 +154 kB
assets/GraphView-TtAKZX79.js (removed) 967 kB 🟢 -967 kB 🟢 -204 kB 🟢 -154 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-Bga8Ss8Q.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.32 kB 🟢 -2.81 kB
assets/CloudSurveyView-DEzLyzm1.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.32 kB 🔴 +2.82 kB
assets/CloudLoginView-Bv9A9OgI.js (removed) 11.5 kB 🟢 -11.5 kB 🟢 -3.21 kB 🟢 -2.84 kB
assets/CloudLoginView-CGPztroa.js (new) 11.5 kB 🔴 +11.5 kB 🔴 +3.2 kB 🔴 +2.83 kB
assets/CloudSignupView-CIbowurf.js (new) 9.41 kB 🔴 +9.41 kB 🔴 +2.71 kB 🔴 +2.38 kB
assets/CloudSignupView-CJwDKB6C.js (removed) 9.41 kB 🟢 -9.41 kB 🟢 -2.72 kB 🟢 -2.38 kB
assets/UserCheckView-DEwEleHA.js (new) 8.42 kB 🔴 +8.42 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/UserCheckView-SnXPWwHc.js (removed) 8.42 kB 🟢 -8.42 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/CloudLayoutView-Dc691Q5A.js (removed) 6.47 kB 🟢 -6.47 kB 🟢 -2.12 kB 🟢 -1.84 kB
assets/CloudLayoutView-ra616c1i.js (new) 6.47 kB 🔴 +6.47 kB 🔴 +2.12 kB 🔴 +1.85 kB
assets/CloudForgotPasswordView-B-iFDqVg.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.95 kB 🟢 -1.72 kB
assets/CloudForgotPasswordView-B7OahlJC.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.95 kB 🔴 +1.72 kB
assets/CloudAuthTimeoutView-B7mCavU6.js (removed) 4.96 kB 🟢 -4.96 kB 🟢 -1.79 kB 🟢 -1.57 kB
assets/CloudAuthTimeoutView-QFIF8SzK.js (new) 4.96 kB 🔴 +4.96 kB 🔴 +1.79 kB 🔴 +1.57 kB
assets/CloudSubscriptionRedirectView-CO2PbnSH.js (new) 4.78 kB 🔴 +4.78 kB 🔴 +1.8 kB 🔴 +1.6 kB
assets/CloudSubscriptionRedirectView-McyOLav9.js (removed) 4.78 kB 🟢 -4.78 kB 🟢 -1.8 kB 🟢 -1.6 kB
assets/UserSelectView-CoSeqQh7.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.64 kB 🟢 -1.46 kB
assets/UserSelectView-CV2BOcki.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.64 kB 🔴 +1.46 kB
assets/CloudSorryContactSupportView-Deer4x8G.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-BEfSPHAy.js 296 B 296 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SecretsPanel-BLa7d4hR.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.29 kB 🔴 +4.65 kB
assets/SecretsPanel-DwI2HAl5.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.29 kB 🟢 -4.64 kB
assets/LegacyCreditsPanel-9jlc9vWe.js (new) 20.7 kB 🔴 +20.7 kB 🔴 +5.58 kB 🔴 +4.91 kB
assets/LegacyCreditsPanel-PqBkh8Y9.js (removed) 20.7 kB 🟢 -20.7 kB 🟢 -5.59 kB 🟢 -4.92 kB
assets/SubscriptionPanel-Bo5AJyFn.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.76 kB 🟢 -4.17 kB
assets/SubscriptionPanel-tIhxsmdA.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.75 kB 🔴 +4.18 kB
assets/KeybindingPanel-Bfuoxwof.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.54 kB 🟢 -3.14 kB
assets/KeybindingPanel-GvwUcoN2.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.54 kB 🔴 +3.14 kB
assets/AboutPanel-BOn6SwsA.js (removed) 9.79 kB 🟢 -9.79 kB 🟢 -2.73 kB 🟢 -2.47 kB
assets/AboutPanel-DXfS02pi.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.73 kB 🔴 +2.45 kB
assets/ExtensionPanel-Bfvv-X6L.js (new) 9.42 kB 🔴 +9.42 kB 🔴 +2.66 kB 🔴 +2.38 kB
assets/ExtensionPanel-ZMaWSqff.js (removed) 9.42 kB 🟢 -9.42 kB 🟢 -2.67 kB 🟢 -2.37 kB
assets/ServerConfigPanel-BIpZIzIN.js (new) 6.49 kB 🔴 +6.49 kB 🔴 +2.13 kB 🔴 +1.91 kB
assets/ServerConfigPanel-Cn_6nou3.js (removed) 6.49 kB 🟢 -6.49 kB 🟢 -2.13 kB 🟢 -1.93 kB
assets/UserPanel-CJOHJMJE.js (new) 6.2 kB 🔴 +6.2 kB 🔴 +2.01 kB 🔴 +1.76 kB
assets/UserPanel-DhOhxvpC.js (removed) 6.2 kB 🟢 -6.2 kB 🟢 -2.01 kB 🟢 -1.76 kB
assets/cloudRemoteConfig-Bax_WasV.js (removed) 1.48 kB 🟢 -1.48 kB 🟢 -724 B 🟢 -633 B
assets/cloudRemoteConfig-BHzSf2Lf.js (new) 1.48 kB 🔴 +1.48 kB 🔴 +724 B 🔴 +635 B
assets/refreshRemoteConfig-D2-rZ-IU.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -521 B 🟢 -478 B
assets/refreshRemoteConfig-DX34VGAO.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +521 B 🔴 +459 B
assets/config-DrIhAAj_.js 1.22 kB 1.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BH2NzvA8.js 27.8 kB 27.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BlDXFCUy.js 27.9 kB 27.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BPjNSOku.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BSfPhDgX.js 34.2 kB 34.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CTDqwZOP.js 30.5 kB 30.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CY1qXPWG.js 29.9 kB 29.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D4yKfrVw.js 28.8 kB 28.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DKN0RxMZ.js 28.7 kB 28.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-hSQJdwwK.js 32.4 kB 32.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-rqXXfmcr.js 23.9 kB 23.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-So53ZGaK.js 38.5 kB 38.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 10 added / 10 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-ds2eYkex.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -993 B
assets/auth-rpq5UC7z.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +986 B
assets/SignUpForm-BYFr4VK7.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/SignUpForm-CYCI46oe.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/UpdatePasswordContent-0OwbXRa5.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.09 kB 🟢 -965 B
assets/UpdatePasswordContent-9QxVYv0X.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.09 kB 🔴 +965 B
assets/firebaseAuthStore-CCnvXCSU.js (new) 831 B 🔴 +831 B 🔴 +408 B 🔴 +367 B
assets/firebaseAuthStore-uRM9vxun.js (removed) 831 B 🟢 -831 B 🟢 -410 B 🟢 -362 B
assets/auth-CpbQTbLv.js (new) 357 B 🔴 +357 B 🔴 +225 B 🔴 +216 B
assets/auth-DmSVFM28.js (removed) 357 B 🟢 -357 B 🟢 -225 B 🟢 -211 B
assets/PasswordFields-D5kX5MXM.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WorkspaceProfilePic-BorJpYlL.js 1.59 kB 1.59 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useShareDialog-B1lkf_UA.js (new) 76.8 kB 🔴 +76.8 kB 🔴 +16.4 kB 🔴 +14 kB
assets/useShareDialog-XMyvm0b6.js (removed) 76.8 kB 🟢 -76.8 kB 🟢 -16.4 kB 🟢 -14.1 kB
assets/useSubscriptionDialog-C2FG8q-1.js (removed) 779 B 🟢 -779 B 🟢 -400 B 🟢 -342 B
assets/useSubscriptionDialog-CBBE7L3-.js (new) 779 B 🔴 +779 B 🔴 +399 B 🔴 +343 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-BDu2lAEw.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.9 kB 🔴 +3.49 kB
assets/ComfyQueueButton-BybwjOhS.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.9 kB 🟢 -3.49 kB
assets/useTerminalTabs-CM7gvCPr.js (removed) 9.87 kB 🟢 -9.87 kB 🟢 -3.41 kB 🟢 -3.01 kB
assets/useTerminalTabs-XRLSx83u.js (new) 9.87 kB 🔴 +9.87 kB 🔴 +3.41 kB 🔴 +3.01 kB
assets/SubscribeButton-CN_jzRqX.js (removed) 2.34 kB 🟢 -2.34 kB 🟢 -1.01 kB 🟢 -879 B
assets/SubscribeButton-xZpgf_rs.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +1.01 kB 🔴 +880 B
assets/cloudFeedbackTopbarButton-Dj3xXhiA.js (removed) 1.42 kB 🟢 -1.42 kB 🟢 -748 B 🟢 -658 B
assets/cloudFeedbackTopbarButton-iXodVDPb.js (new) 1.42 kB 🔴 +1.42 kB 🔴 +746 B 🔴 +666 B
assets/ComfyQueueButton-DkAWCtzz.js (removed) 836 B 🟢 -836 B 🟢 -415 B 🟢 -366 B
assets/ComfyQueueButton-PU4LTJPO.js (new) 836 B 🔴 +836 B 🔴 +412 B 🔴 +364 B
assets/Button-C54TnyIk.js 3.2 kB 3.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-BJr1VDd1.js 1.11 kB 1.11 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/FormSearchInput-DPNyHNXp.js 3.73 kB 3.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ScrubableNumberInput-v3EfWwGB.js 5.95 kB 5.95 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/toggle-group-tF66I_um.js 3.83 kB 3.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-B95EAjGD.js 7.39 kB 7.39 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-xfn08Ppk.js 1.19 kB 1.19 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-CeVzA6qN.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 2.77 MB (baseline 2.77 MB) • 🔴 +79 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-UwMO0Ez3.js (new) 1.93 MB 🔴 +1.93 MB 🔴 +433 kB 🔴 +325 kB
assets/dialogService-DfcqAxKa.js (removed) 1.93 MB 🟢 -1.93 MB 🟢 -433 kB 🟢 -325 kB
assets/api-B9_x-yJb.js (removed) 693 kB 🟢 -693 kB 🟢 -156 kB 🟢 -124 kB
assets/api-C0N1Z-dL.js (new) 693 kB 🔴 +693 kB 🔴 +156 kB 🔴 +124 kB
assets/load3dService-A1xXgNv5.js (new) 91.1 kB 🔴 +91.1 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/load3dService-BXGY27ms.js (removed) 91.1 kB 🟢 -91.1 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/extensionStore-B3qlZCnr.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +4.63 kB 🔴 +4.11 kB
assets/extensionStore-DNBwbbu5.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -4.63 kB 🟢 -4.1 kB
assets/workflowShareService-0Y3mCwRE.js (removed) 13.3 kB 🟢 -13.3 kB 🟢 -4.1 kB 🟢 -3.63 kB
assets/workflowShareService-BL_qfMa3.js (new) 13.3 kB 🔴 +13.3 kB 🔴 +4.1 kB 🔴 +3.63 kB
assets/releaseStore-BzIGlB9b.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/releaseStore-DIeq9WVq.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/keybindingService-CQ9ZjUNM.js (new) 7.16 kB 🔴 +7.16 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/keybindingService-DBmMScas.js (removed) 7.16 kB 🟢 -7.16 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/bootstrapStore-BSAjTSKe.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +872 B 🔴 +792 B
assets/bootstrapStore-DE-3MDWE.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -873 B 🟢 -797 B
assets/userStore-CStsdUjt.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +717 B 🔴 +636 B
assets/userStore-D88Q0p63.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -720 B 🟢 -635 B
assets/audioService-D07LpbVv.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +849 B 🔴 +724 B
assets/audioService-Du37mPlO.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -849 B 🟢 -724 B
assets/releaseStore-BmB03gN2.js (removed) 803 B 🟢 -803 B 🟢 -405 B 🟢 -358 B
assets/releaseStore-NqxwzBiT.js (new) 803 B 🔴 +803 B 🔴 +404 B 🔴 +357 B
assets/settingStore-CJJVnVS2.js (new) 787 B 🔴 +787 B 🔴 +407 B 🔴 +360 B
assets/settingStore-DAllnmhH.js (removed) 787 B 🟢 -787 B 🟢 -408 B 🟢 -356 B
assets/workflowDraftStore-B7hGGRnB.js (removed) 779 B 🟢 -779 B 🟢 -399 B 🟢 -350 B
assets/workflowDraftStore-BnF0Ku93.js (new) 779 B 🔴 +779 B 🔴 +398 B 🔴 +352 B
assets/dialogService-BVcMb5ge.js (new) 768 B 🔴 +768 B 🔴 +390 B 🔴 +346 B
assets/dialogService-ClAW2cSj.js (removed) 768 B 🟢 -768 B 🟢 -391 B 🟢 -343 B
assets/serverConfigStore-Ze5zvB9a.js 2.32 kB 2.32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 14 added / 14 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useLoad3d-CAoAhQ5s.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.63 kB 🔴 +3.22 kB
assets/useLoad3d-D66lMLet.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3dViewer-BpBXLUxp.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -3.15 kB 🟢 -2.8 kB
assets/useLoad3dViewer-DzXltDIY.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.8 kB
assets/useFeatureFlags-D0ytz326.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.37 kB 🟢 -1.17 kB
assets/useFeatureFlags-YuIIARE2.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.37 kB 🔴 +1.17 kB
assets/useWorkspaceUI-3bDVSli-.js (removed) 3 kB 🟢 -3 kB 🟢 -821 B 🟢 -703 B
assets/useWorkspaceUI-CbuvJrrT.js (new) 3 kB 🔴 +3 kB 🔴 +821 B 🔴 +701 B
assets/subscriptionCheckoutUtil-BgXIHYgI.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.06 kB 🔴 +928 B
assets/subscriptionCheckoutUtil-C2H-DNFA.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -927 B
assets/useErrorHandling-B6MJAg8d.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -631 B 🟢 -534 B
assets/useErrorHandling-DuewwXBa.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +630 B 🔴 +533 B
assets/useLoad3d-BhPFnPco.js (removed) 902 B 🟢 -902 B 🟢 -444 B 🟢 -396 B
assets/useLoad3d-COeuvrWz.js (new) 902 B 🔴 +902 B 🔴 +443 B 🔴 +397 B
assets/useLoad3dViewer-ClnefIQH.js (removed) 881 B 🟢 -881 B 🟢 -430 B 🟢 -383 B
assets/useLoad3dViewer-gnMTULXU.js (new) 881 B 🔴 +881 B 🔴 +428 B 🔴 +384 B
assets/audioUtils-B5pF_KaC.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -408 B
assets/audioUtils-x67Zose4.js (new) 858 B 🔴 +858 B 🔴 +500 B 🔴 +427 B
assets/useCurrentUser-5mYm3bZq.js (new) 765 B 🔴 +765 B 🔴 +393 B 🔴 +346 B
assets/useCurrentUser-DRTkyzZB.js (removed) 765 B 🟢 -765 B 🟢 -395 B 🟢 -344 B
assets/useWorkspaceSwitch-CXD6B27Z.js (new) 688 B 🔴 +688 B 🔴 +355 B 🔴 +297 B
assets/useWorkspaceSwitch-wWikJFTm.js (removed) 688 B 🟢 -688 B 🟢 -350 B 🟢 -296 B
assets/_plugin-vue_export-helper-ralzwvFM.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-Bz3E3A2O.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-CC-l-L9z.js 466 B 466 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-DOdPeMQc.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SkeletonUtils-Cybe2l6l.js 133 B 133 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useCopyToClipboard-DsiILYYo.js 944 B 944 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useExternalLink-DZeo_ZWQ.js 1.66 kB 1.66 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 11 added / 11 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-axios-Cp6hch1I.js 70.7 kB 70.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-D82zUMvC.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-firebase-BvMr43CG.js 836 kB 836 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-i18n-DccD0mxo.js 133 kB 133 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-D5S6AC80.js 103 kB 103 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-u14f4tgD.js 1.54 MB 1.54 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-prq_Rlnc.js 1.72 MB 1.72 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-DAnHd-7G.js 413 kB 413 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-SQwstEKc.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-C69yBO64.js 1.8 MB 1.8 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-DTO2QA4Q.js 634 kB 634 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-core-CmHHRvL9.js 311 kB 311 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vueuse-BAp4Syx9.js 125 kB 125 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-Co8jWZ4q.js 374 kB 374 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-CP_4YO8u.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-DcCUUPIi.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 8.04 MB (baseline 8.04 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-BU1bI3pj.js (new) 73.8 kB 🔴 +73.8 kB 🔴 +19 kB 🔴 +16.3 kB
assets/core-CGtu2zBW.js (removed) 73.8 kB 🟢 -73.8 kB 🟢 -19 kB 🟢 -16.3 kB
assets/groupNode-8gnfUDHA.js (removed) 71.8 kB 🟢 -71.8 kB 🟢 -17.7 kB 🟢 -15.5 kB
assets/groupNode-h9_5TSWq.js (new) 71.8 kB 🔴 +71.8 kB 🔴 +17.7 kB 🔴 +15.6 kB
assets/WidgetSelect-BrTyBCPR.js (new) 57.8 kB 🔴 +57.8 kB 🔴 +12.4 kB 🔴 +10.7 kB
assets/WidgetSelect-CY9mNfUJ.js (removed) 57.8 kB 🟢 -57.8 kB 🟢 -12.4 kB 🟢 -10.7 kB
assets/SubscriptionRequiredDialogContentWorkspace-CKkmHnMi.js (removed) 46.2 kB 🟢 -46.2 kB 🟢 -8.65 kB 🟢 -7.51 kB
assets/SubscriptionRequiredDialogContentWorkspace-Cn3akVW1.js (new) 46.2 kB 🔴 +46.2 kB 🔴 +8.65 kB 🔴 +7.53 kB
assets/WidgetPainter-DLdsx_o_.js (new) 32.9 kB 🔴 +32.9 kB 🔴 +7.97 kB 🔴 +7.07 kB
assets/WidgetPainter-DM1OcgWt.js (removed) 32.9 kB 🟢 -32.9 kB 🟢 -7.97 kB 🟢 -7.07 kB
assets/Load3DControls-1tg8qaQh.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.33 kB 🔴 +4.65 kB
assets/Load3DControls-DEWZtABr.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.65 kB
assets/WorkspacePanelContent-AqVl8qpD.js (removed) 29.3 kB 🟢 -29.3 kB 🟢 -6.16 kB 🟢 -5.42 kB
assets/WorkspacePanelContent-B0cuxpu1.js (new) 29.3 kB 🔴 +29.3 kB 🔴 +6.16 kB 🔴 +5.43 kB
assets/SubscriptionRequiredDialogContent-8XRYe42v.js (removed) 25.6 kB 🟢 -25.6 kB 🟢 -6.57 kB 🟢 -5.78 kB
assets/SubscriptionRequiredDialogContent-CclDxDPK.js (new) 25.6 kB 🔴 +25.6 kB 🔴 +6.57 kB 🔴 +5.78 kB
assets/Load3dViewerContent-_pEKua1r.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.51 kB
assets/Load3dViewerContent-BIjcf-JS.js (removed) 23 kB 🟢 -23 kB 🟢 -5.18 kB 🟢 -4.5 kB
assets/WidgetImageCrop-C7SpJUKm.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.51 kB 🟢 -4.86 kB
assets/WidgetImageCrop-Cci964S-.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.51 kB 🔴 +4.85 kB
assets/SubscriptionPanelContentWorkspace-BHJDv1b1.js (removed) 22 kB 🟢 -22 kB 🟢 -5.11 kB 🟢 -4.49 kB
assets/SubscriptionPanelContentWorkspace-Cw4Mv_Tk.js (new) 22 kB 🔴 +22 kB 🔴 +5.11 kB 🔴 +4.49 kB
assets/CurrentUserPopoverWorkspace-BL18BPRL.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.95 kB 🟢 -4.42 kB
assets/CurrentUserPopoverWorkspace-DuMkCqme.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.94 kB 🔴 +4.41 kB
assets/SignInContent-BSwDvHMe.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.77 kB 🔴 +4.18 kB
assets/SignInContent-D90emXvk.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.77 kB 🟢 -4.17 kB
assets/WidgetInputNumber-BJ2Tbkjl.js (new) 18.8 kB 🔴 +18.8 kB 🔴 +4.79 kB 🔴 +4.25 kB
assets/WidgetInputNumber-DjdL2SxD.js (removed) 18.8 kB 🟢 -18.8 kB 🟢 -4.79 kB 🟢 -4.25 kB
assets/WidgetRecordAudio-Bnvrk6ej.js (new) 17.4 kB 🔴 +17.4 kB 🔴 +5.01 kB 🔴 +4.48 kB
assets/WidgetRecordAudio-GhhXf5Ph.js (removed) 17.4 kB 🟢 -17.4 kB 🟢 -5.01 kB 🟢 -4.48 kB
assets/Load3D-CVrf3SPS.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.02 kB 🟢 -3.5 kB
assets/Load3D-DZyNM7-g.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.02 kB 🔴 +3.51 kB
assets/load3d-D9GzbVOA.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +4.21 kB 🔴 +3.65 kB
assets/load3d-Dp3GHTQO.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.21 kB 🟢 -3.65 kB
assets/AudioPreviewPlayer-CgLqPt4W.js (removed) 11 kB 🟢 -11 kB 🟢 -3.25 kB 🟢 -2.91 kB
assets/AudioPreviewPlayer-DSS823mp.js (new) 11 kB 🔴 +11 kB 🔴 +3.25 kB 🔴 +2.91 kB
assets/nodeTemplates-Csa2u_pD.js (removed) 9.34 kB 🟢 -9.34 kB 🟢 -3.27 kB 🟢 -2.87 kB
assets/nodeTemplates-CUIb13aV.js (new) 9.34 kB 🔴 +9.34 kB 🔴 +3.27 kB 🔴 +2.88 kB
assets/InviteMemberDialogContent-CmYBSP5j.js (removed) 7.37 kB 🟢 -7.37 kB 🟢 -2.31 kB 🟢 -2.01 kB
assets/InviteMemberDialogContent-DZiZCepg.js (new) 7.37 kB 🔴 +7.37 kB 🔴 +2.3 kB 🔴 +2.02 kB
assets/Load3DConfiguration-Cq1Lzp9i.js (new) 6.27 kB 🔴 +6.27 kB 🔴 +1.92 kB 🔴 +1.68 kB
assets/Load3DConfiguration-DrL9SIY7.js (removed) 6.27 kB 🟢 -6.27 kB 🟢 -1.92 kB 🟢 -1.68 kB
assets/CreateWorkspaceDialogContent-C4HfpcWv.js (removed) 5.54 kB 🟢 -5.54 kB 🟢 -2 kB 🟢 -1.74 kB
assets/CreateWorkspaceDialogContent-DehUHI2L.js (new) 5.54 kB 🔴 +5.54 kB 🔴 +2 kB 🔴 +1.75 kB
assets/onboardingCloudRoutes-bj4B56UW.js (new) 5.51 kB 🔴 +5.51 kB 🔴 +1.87 kB 🔴 +1.65 kB
assets/onboardingCloudRoutes-DaQ9m5qo.js (removed) 5.51 kB 🟢 -5.51 kB 🟢 -1.88 kB 🟢 -1.63 kB
assets/FreeTierDialogContent-5a-L5-tC.js (removed) 5.42 kB 🟢 -5.42 kB 🟢 -1.91 kB 🟢 -1.68 kB
assets/FreeTierDialogContent-hYyJmtoW.js (new) 5.42 kB 🔴 +5.42 kB 🔴 +1.91 kB 🔴 +1.69 kB
assets/EditWorkspaceDialogContent-BUJs_7wd.js (new) 5.35 kB 🔴 +5.35 kB 🔴 +1.96 kB 🔴 +1.71 kB
assets/EditWorkspaceDialogContent-DpbmoFMD.js (removed) 5.35 kB 🟢 -5.35 kB 🟢 -1.96 kB 🟢 -1.71 kB
assets/ValueControlPopover-B6U22gQN.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.77 kB 🔴 +1.59 kB
assets/ValueControlPopover-BiBQL_A8.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.77 kB 🟢 -1.58 kB
assets/Preview3d-e3gMCVgG.js (new) 4.89 kB 🔴 +4.89 kB 🔴 +1.61 kB 🔴 +1.41 kB
assets/Preview3d-y_mpD5qF.js (removed) 4.89 kB 🟢 -4.89 kB 🟢 -1.61 kB 🟢 -1.4 kB
assets/CancelSubscriptionDialogContent-DZi0UaLS.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.8 kB 🔴 +1.59 kB
assets/CancelSubscriptionDialogContent-hDe0qkvg.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.8 kB 🟢 -1.58 kB
assets/DeleteWorkspaceDialogContent-77Rv7NBN.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.65 kB 🟢 -1.43 kB
assets/DeleteWorkspaceDialogContent-ChPQKzaZ.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.64 kB 🔴 +1.44 kB
assets/WidgetWithControl-BDePnS9h.js (new) 4.17 kB 🔴 +4.17 kB 🔴 +1.82 kB 🔴 +1.63 kB
assets/WidgetWithControl-CzwgdBWm.js (removed) 4.17 kB 🟢 -4.17 kB 🟢 -1.82 kB 🟢 -1.63 kB
assets/LeaveWorkspaceDialogContent-BzhN5A1A.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.59 kB 🟢 -1.38 kB
assets/LeaveWorkspaceDialogContent-COR8xPKa.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.59 kB 🔴 +1.38 kB
assets/RemoveMemberDialogContent-CfAQVrpy.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.54 kB 🟢 -1.35 kB
assets/RemoveMemberDialogContent-CSS96ClW.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.54 kB 🔴 +1.35 kB
assets/RevokeInviteDialogContent-CEipkZmo.js (removed) 3.97 kB 🟢 -3.97 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/RevokeInviteDialogContent-DuhHl8Rr.js (new) 3.97 kB 🔴 +3.97 kB 🔴 +1.55 kB 🔴 +1.37 kB
assets/InviteMemberUpsellDialogContent-B9jLnDCn.js (removed) 3.86 kB 🟢 -3.86 kB 🟢 -1.42 kB 🟢 -1.25 kB
assets/InviteMemberUpsellDialogContent-BBRKt2zl.js (new) 3.86 kB 🔴 +3.86 kB 🔴 +1.42 kB 🔴 +1.25 kB
assets/tierBenefits-BeAvsHIv.js (new) 3.66 kB 🔴 +3.66 kB 🔴 +1.3 kB 🔴 +1.17 kB
assets/tierBenefits-RwJwa3p1.js (removed) 3.66 kB 🟢 -3.66 kB 🟢 -1.3 kB 🟢 -1.17 kB
assets/saveMesh-BQb90mD7.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -1.48 kB 🟢 -1.32 kB
assets/saveMesh-Jx3jlXak.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +1.48 kB 🔴 +1.32 kB
assets/cloudSessionCookie-BR6F1qJq.js (removed) 3.14 kB 🟢 -3.14 kB 🟢 -1.11 kB 🟢 -964 B
assets/cloudSessionCookie-D4lq0ZzA.js (new) 3.14 kB 🔴 +3.14 kB 🔴 +1.11 kB 🔴 +1.01 kB
assets/GlobalToast-CPvKcfcZ.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.03 kB
assets/GlobalToast-v59KJclh.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.03 kB
assets/SubscribeToRun-BBSganrR.js (removed) 2.06 kB 🟢 -2.06 kB 🟢 -947 B 🟢 -833 B
assets/SubscribeToRun-BtO9jfFL.js (new) 2.06 kB 🔴 +2.06 kB 🔴 +949 B 🔴 +833 B
assets/CloudRunButtonWrapper-B0tvpBc8.js (new) 1.72 kB 🔴 +1.72 kB 🔴 +804 B 🔴 +734 B
assets/CloudRunButtonWrapper-ConRtxYY.js (removed) 1.72 kB 🟢 -1.72 kB 🟢 -806 B 🟢 -737 B
assets/cloudBadges-BN5dXYIT.js (removed) 1.54 kB 🟢 -1.54 kB 🟢 -798 B 🟢 -693 B
assets/cloudBadges-DtCztctR.js (new) 1.54 kB 🔴 +1.54 kB 🔴 +794 B 🔴 +694 B
assets/previousFullPath-Kw4BFYte.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -652 B 🟢 -582 B
assets/previousFullPath-LxzmB4te.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +652 B 🔴 +561 B
assets/cloudSubscription-BS9KlyzN.js (removed) 1.37 kB 🟢 -1.37 kB 🟢 -679 B 🟢 -590 B
assets/cloudSubscription-w8jAp61Q.js (new) 1.37 kB 🔴 +1.37 kB 🔴 +676 B 🔴 +586 B
assets/Load3D-BlH5sm1K.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +516 B 🔴 +456 B
assets/Load3D-Cmp9v6RJ.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -516 B 🟢 -458 B
assets/nightlyBadges-BA4wQm1g.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -552 B 🟢 -497 B
assets/nightlyBadges-CGNV8Qd_.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +551 B 🔴 +490 B
assets/Load3dViewerContent-5w8sruTX.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -489 B 🟢 -432 B
assets/Load3dViewerContent-DMI-RDso.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +486 B 🔴 +432 B
assets/SubscriptionPanelContentWorkspace-Q9W2xn7s.js (removed) 963 B 🟢 -963 B 🟢 -457 B 🟢 -395 B
assets/SubscriptionPanelContentWorkspace-rgATsEPB.js (new) 963 B 🔴 +963 B 🔴 +456 B 🔴 +400 B
assets/WidgetLegacy-B2slAJxV.js (new) 787 B 🔴 +787 B 🔴 +403 B 🔴 +351 B
assets/WidgetLegacy-BFnh_CEx.js (removed) 787 B 🟢 -787 B 🟢 -405 B 🟢 -351 B
assets/changeTracker-CHe4KHAj.js (new) 763 B 🔴 +763 B 🔴 +394 B 🔴 +345 B
assets/changeTracker-GutZfwB_.js (removed) 763 B 🟢 -763 B 🟢 -395 B 🟢 -342 B
assets/graphHasMissingNodes-DETAyPK0.js (removed) 761 B 🟢 -761 B 🟢 -375 B 🟢 -324 B
assets/graphHasMissingNodes-pbUQvVFv.js (new) 761 B 🔴 +761 B 🔴 +374 B 🔴 +321 B
assets/AnimationControls-Dqd5kQXM.js 4.61 kB 4.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ApiNodesSignInContent-KB6aDxFL.js 2.69 kB 2.69 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auto-DaAGiCO7.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/BaseViewTemplate-D2Wl6A4b.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-BcOH_oP5.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyOrgHeader-CVUg6Znj.js 910 B 910 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-4Ex6JXL0.js 19.2 kB 19.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-4eY_jIIw.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B2u5OAt2.js 16.5 kB 16.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BAAf-WrY.js 16.4 kB 16.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BwgnbfCS.js 16.5 kB 16.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CMf3AlGU.js 16.3 kB 16.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Db23kZm5.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DTom9f1s.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-uXFULtu8.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-y391QX3e.js 15.6 kB 15.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-ZTJwiV8a.js 17.3 kB 17.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/constants-ogISyp4e.js 579 B 579 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-BNlrEPku.js 199 B 199 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-Dfk52C9I.js 545 kB 545 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Loader-cdpDz0uu.js 1.14 kB 1.14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-4PccOdiO.js 199 kB 199 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-A9K8E17X.js 140 kB 140 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BERG8Y4E.js 161 kB 161 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bo_nk-LH.js 167 kB 167 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BODcCr1I.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C9ucaZMP.js 158 kB 158 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CM3j3xAc.js 164 kB 164 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-cwloH2g5.js 139 kB 139 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CZ_ZoKrz.js 190 kB 190 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-De96SAcR.js 222 kB 222 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-KB02fdvg.js 159 kB 159 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-CIss1NZp.js 1.83 kB 1.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-CcX--__P.js 1.43 kB 1.43 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-BAvfKQcM.js 1.81 kB 1.81 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaOtherTop-FC1oe-E1.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaTextTop-quKrqFV_.js 1.01 kB 1.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-L08_iM14.js 2.78 kB 2.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B8HFl03z.js 406 kB 406 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bhwr0_qt.js 452 kB 452 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BnwYZsRe.js 494 kB 494 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BQQ7epXP.js 394 kB 394 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C4H2Yzrv.js 366 kB 366 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Ci3336-6.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CVMvffJd.js 453 kB 453 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Cxe4eF5X.js 402 kB 402 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D3rH0GXo.js 418 kB 418 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-LI1J_566.js 369 kB 369 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ZRmGudls.js 402 kB 402 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Popover-VXP92-HL.js 3.65 kB 3.65 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-DLICfi3-.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SelectValue-BR6SEI0c.js 8.94 kB 8.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/signInSchema-yLg8Ua1p.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-BsMXunsY.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-BwR6vNpJ.js 251 B 251 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscriptionBenefits-J8f-bQt0.js 2.01 kB 2.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/telemetry-zZf2dHJ2.js 226 B 226 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Textarea-tnAz8KeU.js 1.37 kB 1.37 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-DT3N7am7.js 204 B 204 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/VideoPlayOverlay-BUItZo5F.js 1.35 kB 1.35 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-DIRwAHBY.js 3.01 kB 3.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-6fIeENmI.js 3.19 kB 3.19 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BzDU_tL5.js 283 B 283 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-DLkq0NID.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-L4hCPhOA.js 2.9 kB 2.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetCurve-BZyvlEbQ.js 9.36 kB 9.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-CyRqphmc.js 3.6 kB 3.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-C48Z80Vu.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-D0ea31DA.js 2.89 kB 2.89 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-Dq9_JfRn.js 1.98 kB 1.98 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-BUuB6s0W.js 2.93 kB 2.93 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-tYaGazrB.js 1.11 kB 1.11 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-CngzXUeU.js 4.26 kB 4.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-DKi1iU_7.js 3.54 kB 3.54 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetTypes-DYLaC2lj.js 393 B 393 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 50 added / 50 removed

@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

⚡ Performance Report

ℹ️ Collecting baseline variance data (0/5 runs). Significance will appear after 2 main branch runs.

Metric Baseline PR Δ
canvas-idle: style recalcs 124 124 +0%
canvas-idle: layouts 0 0
canvas-idle: task duration 438ms 373ms -15%
canvas-mouse-sweep: style recalcs 180 170 -5%
canvas-mouse-sweep: layouts 12 12 +0%
canvas-mouse-sweep: task duration 998ms 843ms -16%
dom-widget-clipping: style recalcs 41 40 -2%
dom-widget-clipping: layouts 0 0 +0%
dom-widget-clipping: task duration 354ms 343ms -3%
subgraph-dom-widget-clipping: style recalcs 72 73 +0%
subgraph-dom-widget-clipping: layouts 0 0 +0%
subgraph-dom-widget-clipping: task duration 404ms 395ms -2%
subgraph-idle: style recalcs 122 120 -2%
subgraph-idle: layouts 0 0 -100%
subgraph-idle: task duration 444ms 359ms -19%
subgraph-mouse-sweep: style recalcs 160 160 +0%
subgraph-mouse-sweep: layouts 16 16 +0%
subgraph-mouse-sweep: task duration 833ms 756ms -9%
Raw data
{
  "timestamp": "2026-03-09T19:59:32.893Z",
  "gitSha": "af5b95eabfb3e5d6402625c99384c9bccae89e24",
  "branch": "fix/is-graph-ready-guard",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2034.716000000003,
      "styleRecalcs": 126,
      "styleRecalcDurationMs": 20.852000000000004,
      "layouts": 1,
      "layoutDurationMs": 0.273,
      "taskDurationMs": 389.99699999999996,
      "heapDeltaBytes": -3013276
    },
    {
      "name": "canvas-idle",
      "durationMs": 2007.222999999982,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 15.747000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 354.919,
      "heapDeltaBytes": -4817972
    },
    {
      "name": "canvas-idle",
      "durationMs": 2030.036999999993,
      "styleRecalcs": 124,
      "styleRecalcDurationMs": 18.160000000000004,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 372.89300000000003,
      "heapDeltaBytes": -3648728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2041.1900000000003,
      "styleRecalcs": 184,
      "styleRecalcDurationMs": 48.644,
      "layouts": 12,
      "layoutDurationMs": 3.2239999999999993,
      "taskDurationMs": 1030.1039999999998,
      "heapDeltaBytes": -3154228
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1776.2809999999831,
      "styleRecalcs": 162,
      "styleRecalcDurationMs": 41.412,
      "layouts": 13,
      "layoutDurationMs": 3.3040000000000003,
      "taskDurationMs": 756.589,
      "heapDeltaBytes": -2378840
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1799.5829999999842,
      "styleRecalcs": 164,
      "styleRecalcDurationMs": 40.273999999999994,
      "layouts": 12,
      "layoutDurationMs": 3.2990000000000004,
      "taskDurationMs": 743.7230000000001,
      "heapDeltaBytes": -3108388
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 577.0090000000039,
      "styleRecalcs": 42,
      "styleRecalcDurationMs": 11.184,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 358.221,
      "heapDeltaBytes": 7774748
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 547.7779999999939,
      "styleRecalcs": 40,
      "styleRecalcDurationMs": 11.518,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 336.73199999999997,
      "heapDeltaBytes": 7279752
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 531.3449999999875,
      "styleRecalcs": 38,
      "styleRecalcDurationMs": 11.326999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 333.97900000000004,
      "heapDeltaBytes": 7141920
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 605.277000000001,
      "styleRecalcs": 73,
      "styleRecalcDurationMs": 12.929000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 398.271,
      "heapDeltaBytes": -8897848
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 589.0639999999507,
      "styleRecalcs": 73,
      "styleRecalcDurationMs": 13.508000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 396.30899999999997,
      "heapDeltaBytes": -8968968
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 583.0980000000068,
      "styleRecalcs": 72,
      "styleRecalcDurationMs": 13.961000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 391.569,
      "heapDeltaBytes": 15247000
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1993.9449999999965,
      "styleRecalcs": 120,
      "styleRecalcDurationMs": 17.156,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 355.302,
      "heapDeltaBytes": -3411900
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1991.7029999999727,
      "styleRecalcs": 120,
      "styleRecalcDurationMs": 16.836999999999996,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 364.46900000000005,
      "heapDeltaBytes": -3618904
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1992.3260000000482,
      "styleRecalcs": 120,
      "styleRecalcDurationMs": 17.836,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 358.17900000000003,
      "heapDeltaBytes": -4333404
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1708.3749999999895,
      "styleRecalcs": 155,
      "styleRecalcDurationMs": 38.32299999999999,
      "layouts": 16,
      "layoutDurationMs": 3.7619999999999996,
      "taskDurationMs": 679.454,
      "heapDeltaBytes": -5094772
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1981.0550000000262,
      "styleRecalcs": 171,
      "styleRecalcDurationMs": 45.441,
      "layouts": 16,
      "layoutDurationMs": 4.25,
      "taskDurationMs": 919.111,
      "heapDeltaBytes": -5125428
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1707.4650000000133,
      "styleRecalcs": 155,
      "styleRecalcDurationMs": 38.622,
      "layouts": 16,
      "layoutDurationMs": 4.045999999999999,
      "taskDurationMs": 670.0780000000001,
      "heapDeltaBytes": -5744144
    }
  ]
}

@DrJKL DrJKL merged commit 370003d into main Mar 9, 2026
37 checks passed
@DrJKL DrJKL deleted the fix/is-graph-ready-guard branch March 9, 2026 20:15
DrJKL added a commit that referenced this pull request Mar 10, 2026
…ogs (#9672)

## Summary
Adds `isGraphReady` getter to `ComfyApp` and uses it in
`executionErrorStore` guards to prevent false 'ComfyApp graph accessed
before initialization' error logs during early store evaluation.

## Changes
- **What**: Added `isGraphReady` boolean getter to `ComfyApp` that
safely checks graph initialization without triggering the `rootGraph`
getter's error log. Updated 5 guard sites in `executionErrorStore` to
use `app.isGraphReady` instead of `app.rootGraph`.
- **Why**: The `rootGraph` getter logs an error when accessed before
initialization. Computed properties and watch callbacks in
`executionErrorStore` are evaluated early (before graph init), causing
false error noise in the console.

## Review Focus
- `isGraphReady` is intentionally minimal — just
`!!this.rootGraphInternal` — to avoid duplicating the error-logging
behavior of `rootGraph`
- The `watch(lastNodeErrors, ...)` callback now checks `isGraphReady` at
the top and early-returns, consistent with the computed property pattern

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9672-fix-add-isGraphReady-guard-to-prevent-premature-graph-access-error-logs-31e6d73d365081be8e1fc77114ce9382)
by [Unito](https://www.unito.io)

Co-authored-by: Alexander Brown <drjkl@comfy.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files. verified bug Something isn't working (confirmed by the team)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants