Skip to content

Prevent configuring a node to a placeholder nodeId#8342

Merged
AustinMroz merged 3 commits intomainfrom
austin/negative-node-id
Jan 28, 2026
Merged

Prevent configuring a node to a placeholder nodeId#8342
AustinMroz merged 3 commits intomainfrom
austin/negative-node-id

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Jan 27, 2026

Litegraph uses -1 as a placeholder node id to indicate that a node should be assigned a new node id when added to the graph. Under some unknown circumstances it's possible for a node to have this placeholder id saved in a workflow file.

When this occurs, the node is loaded and assigned a new id, but then configured back to the placeholder id. This PR makes it so the newly assigned id is kept instead.

┆Issue is synchronized with this Notion page by Unito

@AustinMroz AustinMroz requested a review from a team as a code owner January 27, 2026 22:35
@dosubot dosubot bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jan 27, 2026
@github-actions
Copy link

github-actions bot commented Jan 27, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/28/2026, 02:52:52 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 27, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 503 passed, 0 failed, 2 flaky, 8 skipped (Total: 513)

❌ Failed Tests

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 27, 2026

📝 Walkthrough

Walkthrough

Adds a guard in LGraphNode.configure to ignore a serialized id of -1 (preserving the existing node id) and a test verifying that deserializing a node with id: -1 does not change the node's id.

Changes

Cohort / File(s) Summary
Node ID Deserialization Guard
src/lib/litegraph/src/LGraphNode.ts, src/lib/litegraph/src/LGraphNode.test.ts
Add a check in LGraphNode.configure that sets info.id = this.id when serialized id === -1; add a test ensuring a node's id is not changed to -1 during configuration.

Suggested reviewers

  • DrJKL
✨ Finishing touches
  • 📝 Generate docstrings

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

❤️ Share

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

@github-actions
Copy link

github-actions bot commented Jan 27, 2026

Bundle Size Report

Summary

  • Raw size: 22.1 MB baseline 22.1 MB — 🟢 -166 B
  • Gzip: 4.59 MB baseline 4.59 MB — 🟢 -20 B
  • Brotli: 3.41 MB baseline 3.41 MB — 🟢 -186 B
  • Bundles: 176 current • 176 baseline • 85 added / 85 removed

Category Glance
Other 🟢 -200 B (7.04 MB) · Data & Services 🔴 +42 B (2.71 MB) · Panels & Settings 🟢 -8 B (470 kB) · Vendor & Third-Party ⚪ 0 B (10.7 MB) · Graph Workspace ⚪ 0 B (961 kB) · Views & Navigation ⚪ 0 B (80.7 kB) · + 5 more

Per-category breakdown
App Entry Points — 23.6 kB (baseline 23.6 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index--a7Wkncr.js (removed) 23.6 kB 🟢 -23.6 kB 🟢 -7.1 kB 🟢 -6.21 kB
assets/index-D8w_YrRH.js (new) 23.6 kB 🔴 +23.6 kB 🔴 +7.09 kB 🔴 +6.23 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-D_TjNhA7.js (new) 961 kB 🔴 +961 kB 🔴 +195 kB 🔴 +147 kB
assets/GraphView-DzYuqOp3.js (removed) 961 kB 🟢 -961 kB 🟢 -195 kB 🟢 -147 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-BPAeykuL.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.6 kB 🟢 -3.06 kB
assets/CloudSurveyView-CfkuJn0Y.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.6 kB 🔴 +3.05 kB
assets/CloudLoginView-BQwiVX3l.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.09 kB 🟢 -2.73 kB
assets/CloudLoginView-DEImszJ9.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.72 kB
assets/UserCheckView-C0EOYqaG.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/UserCheckView-D50dLB01.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/CloudLayoutView-CNB3V0_K.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.24 kB 🟢 -1.96 kB
assets/CloudLayoutView-DvTyzIxz.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.24 kB 🔴 +1.95 kB
assets/CloudSignupView-BsJHJ3OR.js (new) 8.22 kB 🔴 +8.22 kB 🔴 +2.34 kB 🔴 +2.04 kB
assets/CloudSignupView-C3mbmYXC.js (removed) 8.22 kB 🟢 -8.22 kB 🟢 -2.34 kB 🟢 -2.04 kB
assets/CloudForgotPasswordView-BXJcAVsr.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-e-RAFb_a.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/UserSelectView-BaurudmI.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.58 kB
assets/UserSelectView-BnwOPbAS.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/CloudSubscriptionRedirectView-DaeSqQSk.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudSubscriptionRedirectView-DY_MBLQH.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-BdsuKg9-.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/CloudAuthTimeoutView-DjujOvrL.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/CloudSorryContactSupportView-DPSDjCKF.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-ouzJzFyy.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

Panels & Settings — 470 kB (baseline 470 kB) • 🟢 -8 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WorkspacePanel-BSOc73q2.js (removed) 29.8 kB 🟢 -29.8 kB 🟢 -5.89 kB 🟢 -5.14 kB
assets/WorkspacePanel-D9BJtS3i.js (new) 29.8 kB 🔴 +29.8 kB 🔴 +5.89 kB 🔴 +5.14 kB
assets/LegacyCreditsPanel-BY3BISjF.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.94 kB 🔴 +5.22 kB
assets/LegacyCreditsPanel-FpV9HCBf.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.95 kB 🟢 -5.23 kB
assets/SubscriptionPanel-B-wK40XC.js (new) 21 kB 🔴 +21 kB 🔴 +5.05 kB 🔴 +4.46 kB
assets/SubscriptionPanel-DD06BPVw.js (removed) 21 kB 🟢 -21 kB 🟢 -5.05 kB 🟢 -4.46 kB
assets/KeybindingPanel-B4jmc9Zh.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.74 kB 🟢 -3.31 kB
assets/KeybindingPanel-BI7wvYWw.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.74 kB 🔴 +3.31 kB
assets/AboutPanel-Dsoi1-Jw.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.43 kB
assets/AboutPanel-QI1KWOhX.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.44 kB
assets/ExtensionPanel-D0znJeE8.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ExtensionPanel-DHuBgFsa.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ServerConfigPanel-gwLnie8y.js (new) 7.26 kB 🔴 +7.26 kB 🔴 +2.18 kB 🔴 +1.94 kB
assets/ServerConfigPanel-UU4swe9e.js (removed) 7.26 kB 🟢 -7.26 kB 🟢 -2.18 kB 🟢 -1.95 kB
assets/UserPanel-CS3fnPNK.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.9 kB 🟢 -1.67 kB
assets/UserPanel-DHH5ZYyl.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.9 kB 🔴 +1.67 kB
assets/config-7fwyFDVl.js (removed) 1.16 kB 🟢 -1.16 kB 🟢 -604 B 🟢 -531 B
assets/config-B1Y-wvqK.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +600 B 🔴 +526 B
assets/refreshRemoteConfig-CPf1YWHC.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +523 B 🔴 +485 B
assets/refreshRemoteConfig-CVnnygVK.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -524 B 🟢 -486 B
assets/cloudRemoteConfig-DmR96hwQ.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -508 B 🟢 -436 B
assets/cloudRemoteConfig-DNDffiIh.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +509 B 🔴 +437 B
assets/refreshRemoteConfig-BgVLIjBQ.js (removed) 169 B 🟢 -169 B 🟢 -108 B 🟢 -106 B
assets/refreshRemoteConfig-Cel_JW4h.js (new) 169 B 🔴 +169 B 🔴 +108 B 🔴 +103 B
assets/remoteConfig-BfvcASY0.js 536 B 536 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings--v6Wg3FT.js 29.4 kB 29.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-6AWMdbEo.js 25.8 kB 25.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Bd_PrHyW.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BvViWXfv.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CBT5fUQX.js 32.9 kB 32.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cr7txePz.js 30.2 kB 30.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DdPwS08h.js 39.4 kB 39.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DqMxzK_S.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Dwt3wMav.js 26.4 kB 26.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-pjwHe3bJ.js 32 kB 32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-yUgaGSFI.js 35.2 kB 35.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 12 added / 12 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-C8CdfVJY.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.05 kB
assets/auth-DiM4jrre.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.05 kB
assets/firebaseAuthStore-C4wHl2sY.js (new) 217 B 🔴 +217 B 🔴 +136 B 🔴 +118 B
assets/firebaseAuthStore-CMG8EprA.js (removed) 217 B 🟢 -217 B 🟢 -136 B 🟢 -117 B
assets/auth-BRlqniqh.js (removed) 178 B 🟢 -178 B 🟢 -141 B 🟢 -129 B
assets/auth-TaOqOtjh.js (new) 178 B 🔴 +178 B 🔴 +142 B 🔴 +129 B

Status: 3 added / 3 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-CSNX6XeC.js (removed) 2.73 kB 🟢 -2.73 kB 🟢 -1.29 kB 🟢 -1.15 kB
assets/useSubscriptionDialog-D9IZNL6P.js (new) 2.73 kB 🔴 +2.73 kB 🔴 +1.29 kB 🔴 +1.15 kB
assets/useSubscriptionDialog-B8gudFdh.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -101 B
assets/useSubscriptionDialog-Bd8zcNTc.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +96 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-CgCTDdu4.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/ComfyQueueButton-CTYYrUAT.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.42 kB
assets/SubscribeButton-BbiAeckI.js (new) 4.63 kB 🔴 +4.63 kB 🔴 +1.56 kB 🔴 +1.38 kB
assets/SubscribeButton-CHJkVTzd.js (removed) 4.63 kB 🟢 -4.63 kB 🟢 -1.56 kB 🟢 -1.38 kB
assets/cloudFeedbackTopbarButton-aAt2fyqk.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -674 B 🟢 -573 B
assets/cloudFeedbackTopbarButton-BMEQh6tb.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +675 B 🔴 +572 B
assets/ComfyQueueButton-2ePnAIN1.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -112 B
assets/ComfyQueueButton-DSKj1sDv.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +112 B
assets/Button-DMDKiCng.js 3.82 kB 3.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-BYWlMNEv.js 1.85 kB 1.85 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-evNElHF1.js 8.36 kB 8.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-BcT4RJD_.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-BGT7rdIi.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 4 added / 4 removed

Data & Services — 2.71 MB (baseline 2.7 MB) • 🔴 +42 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-Cd9Dn7CI.js (removed) 2.01 MB 🟢 -2.01 MB 🟢 -425 kB 🟢 -324 kB
assets/dialogService-Dqp_HmiP.js (new) 2.01 MB 🔴 +2.01 MB 🔴 +425 kB 🔴 +324 kB
assets/api-CuY9iT4a.js (new) 672 kB 🔴 +672 kB 🔴 +148 kB 🔴 +118 kB
assets/api-Dnn8RTPO.js (removed) 672 kB 🟢 -672 kB 🟢 -148 kB 🟢 -118 kB
assets/releaseStore-CrDErTRk.js (removed) 8.94 kB 🟢 -8.94 kB 🟢 -2.41 kB 🟢 -2.13 kB
assets/releaseStore-KvoAyZss.js (new) 8.94 kB 🔴 +8.94 kB 🔴 +2.41 kB 🔴 +2.13 kB
assets/keybindingService-CbRzvUzW.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.74 kB 🟢 -1.52 kB
assets/keybindingService-CXKjmnK8.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.52 kB
assets/bootstrapStore-BEwmFYsF.js (new) 2.73 kB 🔴 +2.73 kB 🔴 +1.04 kB 🔴 +991 B
assets/bootstrapStore-DUdlXYv-.js (removed) 2.73 kB 🟢 -2.73 kB 🟢 -1.04 kB 🟢 -980 B
assets/userStore-DbbNqlJ0.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -813 B 🟢 -725 B
assets/userStore-DjfFUNMK.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +812 B 🔴 +725 B
assets/audioService-DSpMIxa6.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +930 B 🔴 +809 B
assets/audioService-DuEtFygL.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -929 B 🟢 -819 B
assets/teamWorkspaceStore-C-8WpZGI.js (new) 165 B 🔴 +165 B 🔴 +123 B 🔴 +107 B
assets/teamWorkspaceStore-DZz4BSl4.js (removed) 165 B 🟢 -165 B 🟢 -123 B 🟢 -108 B
assets/releaseStore-Bxt9lRa4.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +104 B
assets/releaseStore-DtSMJTxV.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -107 B
assets/serverConfigStore-Bx_up0Gg.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-C6vCZrRT.js (removed) 5.15 kB 🟢 -5.15 kB 🟢 -1.52 kB 🟢 -1.33 kB
assets/useErrorHandling-ldTw4ikz.js (new) 5.15 kB 🔴 +5.15 kB 🔴 +1.52 kB 🔴 +1.33 kB
assets/useWorkspaceUI-2lpcWhjJ.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -975 B 🟢 -847 B
assets/useWorkspaceUI-BtLgbQUq.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +975 B 🔴 +841 B
assets/subscriptionCheckoutUtil-C_yiTRwr.js (removed) 2.23 kB 🟢 -2.23 kB 🟢 -908 B 🟢 -804 B
assets/subscriptionCheckoutUtil-tAHasLZj.js (new) 2.23 kB 🔴 +2.23 kB 🔴 +908 B 🔴 +803 B
assets/useSubscriptionActions-BcnkTpA2.js (removed) 2.22 kB 🟢 -2.22 kB 🟢 -866 B 🟢 -755 B
assets/useSubscriptionActions-D-duVZWq.js (new) 2.22 kB 🔴 +2.22 kB 🔴 +867 B 🔴 +754 B
assets/useSubscriptionCredits-BcR1QIIB.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +600 B 🔴 +528 B
assets/useSubscriptionCredits-DVOYlPL0.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -601 B 🟢 -530 B
assets/audioUtils-8S0FEkiZ.js (new) 970 B 🔴 +970 B 🔴 +547 B 🔴 +459 B
assets/audioUtils-CKxu9rjJ.js (removed) 970 B 🟢 -970 B 🟢 -546 B 🟢 -489 B
assets/useCurrentUser-CHuwU61n.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +103 B
assets/useCurrentUser-CutivbmZ.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -98 B
assets/_plugin-vue_export-helper-D8rH49Eq.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-DqLCx1BB.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-CE67zEoD.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-_s9SadH1.js 488 B 488 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 7 added / 7 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-CKfqpTaz.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-kYGuXLQE.js 4.1 MB 4.1 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-C6oIq5r_.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-BIaZqDUN.js 256 kB 256 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-DyMKDuqR.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-TV831oRr.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-DzppPAJv.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-B0dJmw9h.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 7.04 MB (baseline 7.04 MB) • 🟢 -200 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-DNoRjvpB.js (removed) 180 kB 🟢 -180 kB 🟢 -43.4 kB 🟢 -36.2 kB
assets/core-C1ofjt4T.js (new) 180 kB 🔴 +180 kB 🔴 +43.3 kB 🔴 +36.2 kB
assets/WidgetSelect-DvbkMuyb.js (new) 51 kB 🔴 +51 kB 🔴 +11.3 kB 🔴 +9.81 kB
assets/WidgetSelect-Mvv82_UG.js (removed) 51 kB 🟢 -51 kB 🟢 -11.3 kB 🟢 -9.81 kB
assets/Load3DControls-CDnJsNgN.js (removed) 35.9 kB 🟢 -35.9 kB 🟢 -5.87 kB 🟢 -5.08 kB
assets/Load3DControls-CUzX4fms.js (new) 35.9 kB 🔴 +35.9 kB 🔴 +5.87 kB 🔴 +5.09 kB
assets/SubscriptionRequiredDialogContent-BpcIUv2F.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.91 kB
assets/SubscriptionRequiredDialogContent-CQs-KqWD.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.91 kB
assets/CurrentUserPopoverWorkspace-__80sdpu.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -4.99 kB 🟢 -4.43 kB
assets/CurrentUserPopoverWorkspace-CVgRtshD.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +4.99 kB 🔴 +4.42 kB
assets/Load3D-CxfIlO_6.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +4.58 kB 🔴 +4.02 kB
assets/Load3D-oALSTnSM.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -4.58 kB 🟢 -4.02 kB
assets/WidgetRecordAudio-CkXxUaAy.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.97 kB 🔴 +4.44 kB
assets/WidgetRecordAudio-DQP0dL_O.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.97 kB 🟢 -4.43 kB
assets/WidgetInputNumber-BAtHZUZf.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.51 kB 🔴 +4.02 kB
assets/WidgetInputNumber-ThL5SXwD.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.51 kB 🟢 -4.02 kB
assets/SubscriptionPanelContentWorkspace-B4Rt_CsG.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.47 kB 🟢 -3.9 kB
assets/SubscriptionPanelContentWorkspace-CDxhPAHF.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.47 kB 🔴 +3.89 kB
assets/WidgetImageCrop-Bkgnenro.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.13 kB 🟢 -3.63 kB
assets/WidgetImageCrop-DstvWm4K.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.63 kB
assets/PanelTemplate-BKOys7NE.js (new) 16.3 kB 🔴 +16.3 kB 🔴 +5.47 kB 🔴 +4.82 kB
assets/PanelTemplate-ChJJ5wbY.js (removed) 16.3 kB 🟢 -16.3 kB 🟢 -5.47 kB 🟢 -4.82 kB
assets/AudioPreviewPlayer-D5tr3AFP.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.65 kB
assets/AudioPreviewPlayer-DCRuHXwW.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.98 kB 🟢 -2.65 kB
assets/InviteMemberDialogContent-B1DtT0Hs.js (new) 8.36 kB 🔴 +8.36 kB 🔴 +2.51 kB 🔴 +2.17 kB
assets/InviteMemberDialogContent-Cyce8P0j.js (removed) 8.36 kB 🟢 -8.36 kB 🟢 -2.51 kB 🟢 -2.17 kB
assets/WidgetWithControl-C4SfQ2OA.js (removed) 8.09 kB 🟢 -8.09 kB 🟢 -2.69 kB 🟢 -2.42 kB
assets/WidgetWithControl-CfPPPWBY.js (new) 8.09 kB 🔴 +8.09 kB 🔴 +2.7 kB 🔴 +2.42 kB
assets/CreateWorkspaceDialogContent-C9faoQnP.js (new) 5.93 kB 🔴 +5.93 kB 🔴 +1.93 kB 🔴 +1.68 kB
assets/CreateWorkspaceDialogContent-CaOAW7VL.js (removed) 5.93 kB 🟢 -5.93 kB 🟢 -1.93 kB 🟢 -1.68 kB
assets/EditWorkspaceDialogContent-CEcOc_96.js (new) 5.7 kB 🔴 +5.7 kB 🔴 +1.88 kB 🔴 +1.64 kB
assets/EditWorkspaceDialogContent-DC0EmyPU.js (removed) 5.7 kB 🟢 -5.7 kB 🟢 -1.88 kB 🟢 -1.64 kB
assets/ValueControlPopover-DtnM8-XG.js (removed) 5.17 kB 🟢 -5.17 kB 🟢 -1.69 kB 🟢 -1.5 kB
assets/ValueControlPopover-DxHSTxGw.js (new) 5.17 kB 🔴 +5.17 kB 🔴 +1.69 kB 🔴 +1.5 kB
assets/DeleteWorkspaceDialogContent-Bfdbgl8x.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.56 kB 🔴 +1.35 kB
assets/DeleteWorkspaceDialogContent-C8-hfam9.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.56 kB 🟢 -1.35 kB
assets/LeaveWorkspaceDialogContent-gelyN4FM.js (removed) 4.41 kB 🟢 -4.41 kB 🟢 -1.51 kB 🟢 -1.31 kB
assets/LeaveWorkspaceDialogContent-QZKR8ECC.js (new) 4.41 kB 🔴 +4.41 kB 🔴 +1.51 kB 🔴 +1.3 kB
assets/RemoveMemberDialogContent-DO3mZMxQ.js (new) 4.38 kB 🔴 +4.38 kB 🔴 +1.45 kB 🔴 +1.27 kB
assets/RemoveMemberDialogContent-DodpB_UT.js (removed) 4.38 kB 🟢 -4.38 kB 🟢 -1.45 kB 🟢 -1.27 kB
assets/RevokeInviteDialogContent-BaEOgQct.js (new) 4.29 kB 🔴 +4.29 kB 🔴 +1.47 kB 🔴 +1.29 kB
assets/RevokeInviteDialogContent-pd3gmLnj.js (removed) 4.29 kB 🟢 -4.29 kB 🟢 -1.47 kB 🟢 -1.29 kB
assets/GlobalToast-BMaFFgo5.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +936 B
assets/GlobalToast-D-Xw_1iq.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -942 B
assets/cloudSessionCookie-BqMl7QCG.js (removed) 2.97 kB 🟢 -2.97 kB 🟢 -944 B 🟢 -818 B
assets/cloudSessionCookie-UFbqtjSi.js (new) 2.97 kB 🔴 +2.97 kB 🔴 +941 B 🔴 +811 B
assets/SubscribeToRun-CDkBx7kF.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.15 kB 🟢 -1.01 kB
assets/SubscribeToRun-PdKkImbe.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/BaseViewTemplate-B2j8OPUA.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.05 kB 🟢 -933 B
assets/BaseViewTemplate-y5IgE3vW.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +935 B
assets/CloudRunButtonWrapper-CPCGCz2v.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +641 B 🔴 +561 B
assets/CloudRunButtonWrapper-Dg_yRbAG.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -643 B 🟢 -562 B
assets/gtm-CkX_rs8c.js (removed) 1.3 kB 🟢 -1.3 kB 🟢 -625 B 🟢 -527 B
assets/gtm-DanqTfzl.js (new) 1.3 kB 🔴 +1.3 kB 🔴 +626 B 🔴 +500 B
assets/cloudBadges-B_B5iuQo.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -536 B 🟢 -480 B
assets/cloudBadges-DmXy4k3O.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +538 B 🔴 +478 B
assets/graphHasMissingNodes-CSPuLUqG.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +463 B 🔴 +410 B
assets/graphHasMissingNodes-TDAGu9QZ.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -463 B 🟢 -410 B
assets/cloudSubscription-Bkb_5Xdf.js (removed) 976 B 🟢 -976 B 🟢 -460 B 🟢 -399 B
assets/cloudSubscription-CBWKyqsy.js (new) 976 B 🔴 +976 B 🔴 +460 B 🔴 +398 B
assets/types-9RyZweiA.js (new) 909 B 🔴 +909 B 🔴 +458 B 🔴 +384 B
assets/types-Cm9RavTs.js (removed) 908 B 🟢 -908 B 🟢 -455 B 🟢 -385 B
assets/nightlyBadges-DzX1N6lj.js (new) 595 B 🔴 +595 B 🔴 +357 B 🔴 +309 B
assets/nightlyBadges-qaoWR5Gt.js (removed) 595 B 🟢 -595 B 🟢 -356 B 🟢 -309 B
assets/SubscriptionPanelContentWorkspace-DQIolgaJ.js (new) 266 B 🔴 +266 B 🔴 +136 B 🔴 +112 B
assets/SubscriptionPanelContentWorkspace-liM7M0kB.js (removed) 266 B 🟢 -266 B 🟢 -136 B 🟢 -123 B
assets/WidgetInputNumber-Dqy7kjWH.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -109 B
assets/WidgetInputNumber-DyMNy-BQ.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +113 B
assets/WidgetLegacy-DmOUSroB.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -112 B
assets/WidgetLegacy-WgE3iBWg.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +118 B
assets/Load3D-DWHfnlOz.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -110 B
assets/Load3D-WldMcx_A.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +110 B
assets/gtm-dUv7avmH.js (new) 122 B 🔴 +122 B 🔴 +116 B 🔴 +110 B
assets/gtm-jkR_i4KL.js (removed) 122 B 🟢 -122 B 🟢 -116 B 🟢 -109 B
assets/auto-CIz1W2VX.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B2kaqXwB.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C4b7jkru.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CfyfvZ26.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CVGDesiQ.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D5s7OQ2Y.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DIpat94F.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DIyyDM8B.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DmapSMuR.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DVgVR6E3.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-rL7INiLx.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-XNemNPrT.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-B4-iN3Dj.js 188 B 188 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-C2-uZwsv.js 495 kB 495 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-DaPgFlDo.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BYMeROYU.js 112 kB 112 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CgEoH02C.js 154 kB 154 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CI3jqob9.js 172 kB 172 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CKO629VV.js 150 kB 150 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CL7lQuTU.js 132 kB 132 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cz7KlYu8.js 128 kB 128 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D1SebohP.js 125 kB 125 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DcZO51UE.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-De_XRzjK.js 111 kB 111 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DPjf0Yxm.js 125 kB 125 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-K82I8n9k.js 129 kB 129 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-C2-Fo6sU.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-Ci-kpVMy.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-DGHrmsG1.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-CTPTvpaW.js 2.82 kB 2.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-D2psgEhK.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bnfj3jVd.js 412 kB 412 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BOtpSRhY.js 366 kB 366 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CJdnE3iS.js 373 kB 373 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CUtkGNC5.js 369 kB 369 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CvJk0KJv.js 448 kB 448 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DMSL5DLd.js 413 kB 413 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Dun_mUNl.js 369 kB 369 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-eLEyykRM.js 383 kB 383 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-mMDG_apG.js 363 kB 363 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Q0xInTMU.js 342 kB 342 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-wT_xujHW.js 339 kB 339 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-CATisLRM.js 838 B 838 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-cVp-94Rc.js 1.96 kB 1.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-CQgQc3BO.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-BEaQgM5X.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BdFPwTvH.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-D_TNvFYD.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-CLCIoBG-.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-CanUnjIO.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-xXISrgBX.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-BsjQ0cGs.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-pGYR6qb7.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-Dk8frFKs.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-CHxeeWZW.js 3.22 kB 3.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BFYO1LwS.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-B6NaOy9u.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-BK1i1Z9b.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 37 added / 37 removed

if (this.graph) {
this.graph._version++
}
if (info.id == -1) info.id = this.id
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit:

Suggested change
if (info.id == -1) info.id = this.id
if (info.id === -1) info.id = this.id

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Loose equality was intentional. NodeId can be a number or a string and an id of '-1' would be equally problematic.

Would appreciate a second opinion though. LGraph.add() does use strict equality to -1 when a node is added to the graph 🤔

DrJKL
DrJKL previously approved these changes Jan 28, 2026
@AustinMroz AustinMroz changed the title Prevent configuring a node to a placehodler nodeId Prevent configuring a node to a placeholder nodeId Jan 28, 2026
@coderabbitai coderabbitai bot requested a review from DrJKL January 28, 2026 02:52
@AustinMroz AustinMroz enabled auto-merge (squash) January 28, 2026 02:55
@AustinMroz AustinMroz merged commit 89571c7 into main Jan 28, 2026
27 checks passed
@AustinMroz AustinMroz deleted the austin/negative-node-id branch January 28, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants