Skip to content

refactor: unify widget promotion to use store as single source of truth#9550

Closed
DrJKL wants to merge 1 commit intomainfrom
drjkl/one-promotion-at-a-time
Closed

refactor: unify widget promotion to use store as single source of truth#9550
DrJKL wants to merge 1 commit intomainfrom
drjkl/one-promotion-at-a-time

Conversation

@DrJKL
Copy link
Contributor

@DrJKL DrJKL commented Mar 8, 2026

Summary

Unify subgraph widget promotion to use promotionStore as single source of truth, removing ~350 lines of linked-promotion infrastructure.

Changes

  • What: SubgraphInput.connect() dispatches widget-promotion-requested event for widget-backed slots instead of creating input slots/links. EmptySubgraphInput.connect() checks for widgets before creating input slots. SubgraphNode handles the event via extracted _handleWidgetPromotionRequested(). Removed LinkedPromotionEntry, _resolveLinkedPromotionByInputName, _syncPromotions, _buildPromotionReconcileState, _setWidget, _resolveInputWidget, and related methods from SubgraphNode. Removed _widget/_widgetRef property from SubgraphInput, NodeInputSlot, INodeInputSlot, and LGraphNode.removeWidget().
  • Breaking: _widget property removed from SubgraphInput and NodeInputSlot; linked-promotion methods removed from SubgraphNode. Extensions relying on these internals will need to use promotionStore instead.

Review Focus

  • SubgraphInput.connect() early-return for widget slots — ensures non-widget connections still create links normally
  • EmptySubgraphInput.connect() widget check — prevents creating unnecessary input slots for widget promotions
  • Test patterns: widget promotion tests now use store.promote()/store.demote() instead of .connect()/.disconnect()

┆Issue is synchronized with this Notion page by Unito

SubgraphInput.connect() dispatches widget-promotion-requested event
for widget-backed slots instead of creating input slots and links.
EmptySubgraphInput.connect() checks for widgets before creating
input slots. All promotions now flow through promotionStore.

Removed ~200 lines of linked-promotion infrastructure from
SubgraphNode (LinkedPromotionEntry, _resolveLinkedPromotionByInputName,
_syncPromotions, _buildPromotionReconcileState, _setWidget, etc.).
Removed _widget property from SubgraphInput, NodeInputSlot,
INodeInputSlot, and LGraphNode.removeWidget().

Amp-Thread-ID: https://ampcode.com/threads/T-019ccb06-9ebd-7161-a547-ab84d6ac2afd
Co-authored-by: Amp <amp@ampcode.com>
@DrJKL DrJKL requested a review from a team as a code owner March 8, 2026 01:23
@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Mar 8, 2026
@github-actions
Copy link

github-actions bot commented Mar 8, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 03/08/2026, 01:24:54 AM UTC

Links

@github-actions
Copy link

github-actions bot commented Mar 8, 2026

🎭 Playwright: ❌ 532 passed, 13 failed · 1 flaky

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 519 / ❌ 13 / ⚠️ 1 / ⏭️ 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 8, 2026

📝 Walkthrough

Walkthrough

This PR removes internal widget reference plumbing from node inputs and subgraph inputs, replacing proxy widget patterns with a promotion-store-backed event-driven approach. Complex promotion reconciliation logic in SubgraphNode is replaced with a streamlined widget-promotion-requested event handler. Widget assignment timing in tests is adjusted to occur after link connections.

Changes

Cohort / File(s) Summary
Widget Reference Plumbing Removal
src/lib/litegraph/src/node/NodeInputSlot.ts, src/lib/litegraph/src/interfaces.ts, src/lib/litegraph/src/LGraphNode.ts, src/lib/litegraph/src/subgraph/SubgraphInput.ts
Removes _widgetRef field, _widget accessors, and cleanup logic that previously cached widget references on inputs. Public surface remains unchanged; impacts internal widget tracking only.
Event Infrastructure & Widget Slot Handling
src/lib/litegraph/src/infrastructure/SubgraphInputEventMap.ts, src/lib/litegraph/src/subgraph/EmptySubgraphInput.ts
Introduces widget-promotion-requested event type and adds logic in EmptySubgraphInput to detect widget-backed slots, dispatch promotion event, and bypass input creation for widget connections.
Promotion Management Refactoring
src/lib/litegraph/src/subgraph/SubgraphNode.ts
Removes 420+ lines of complex reconciliation, persistence, and linked-promotion logic; replaces with single event-driven _handleWidgetPromotionRequested handler and simplified input-addition flow.
Promoted Widget Resolution
src/composables/graph/useGraphNodeManager.ts
Removes match condition checking input._widget equality for promoted widget identification; now relies solely on input name matching for promoted source resolution.
Test Link Creation Timing
src/core/graph/subgraph/resolveSubgraphInputLink.test.ts, src/core/graph/subgraph/resolveSubgraphInputTarget.test.ts
Moves input.widget assignment to after inputSlot.connect() calls to ensure real links are created before widget metadata is seeded.
Promotion Store Integration Tests
src/core/graph/subgraph/promotedWidgetView.test.ts, src/core/graph/subgraph/subgraphNodePromotion.test.ts, src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts
Refactors tests to use promotion store and widget-promotion-requested events instead of direct slot connections; removes _widget reference assertions; adds tests for widget-slot connection behavior and nested promotion scenarios.
Nested Promotion Test
src/composables/graph/useGraphNodeManager.test.ts
Adds comprehensive test for two-layer nested subgraph promotion mapping, validating that root-level promotions resolve to deepest concrete widgets via store.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • Comfy-Org/ComfyUI_frontend#8856 — Removed input._widget plumbing and replaced proxy widgets with promotion-store-backed promoted views, touching the same promoted-widget resolution codepaths.
  • Comfy-Org/ComfyUI_frontend#9282 — Modifies promoted-widget resolution and useGraphNodeManager promoted-source logic alongside this PR's changes.

Suggested labels

needs-backport

Suggested reviewers

  • christian-byrne
  • AustinMroz
  • pythongosssss

Poem

🐰 Widgets once tangled with refs and weak cache,
Now flow through events in a promotion stash,
No more proxy webs or complex dance,
Just slots and events—promotion's new chance!
Simpler, cleaner, the rabbit's delight! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main objective of the PR: unifying widget promotion to use the store as single source of truth, removing legacy infrastructure.
Description check ✅ Passed The pull request description is well-structured and comprehensive, providing a clear summary of changes and breaking changes.

✏️ 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 drjkl/one-promotion-at-a-time

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

@DrJKL DrJKL requested review from AustinMroz and guill March 8, 2026 01:25
@github-actions
Copy link

github-actions bot commented Mar 8, 2026

📦 Bundle: 4.56 MB gzip 🟢 -1.43 kB

Details

Summary

  • Raw size: 21.4 MB baseline 21.4 MB — 🟢 -8.79 kB
  • Gzip: 4.56 MB baseline 4.57 MB — 🟢 -1.43 kB
  • Brotli: 3.53 MB baseline 3.53 MB — 🟢 -918 B
  • Bundles: 232 current • 232 baseline • 108 added / 108 removed

Category Glance
Data & Services 🟢 -8.79 kB (2.76 MB) · Vendor & Third-Party ⚪ 0 B (8.87 MB) · Other ⚪ 0 B (8.04 MB) · Graph Workspace ⚪ 0 B (954 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-BWOuEDph.js (removed) 28.9 kB 🟢 -28.9 kB 🟢 -11.4 kB 🟢 -9.32 kB
assets/index-DX4TE7-r.js (new) 28.9 kB 🔴 +28.9 kB 🔴 +11.4 kB 🔴 +9.32 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-C6gK71V0.js (removed) 954 kB 🟢 -954 kB 🟢 -201 kB 🟢 -153 kB
assets/GraphView-DTMCxj9b.js (new) 954 kB 🔴 +954 kB 🔴 +201 kB 🔴 +153 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-BYVg52Br.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.32 kB 🔴 +2.82 kB
assets/CloudSurveyView-CF8nS-Um.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.32 kB 🟢 -2.82 kB
assets/CloudLoginView-BHWo9GwT.js (new) 11.5 kB 🔴 +11.5 kB 🔴 +3.21 kB 🔴 +2.84 kB
assets/CloudLoginView-BtDgZGZR.js (removed) 11.5 kB 🟢 -11.5 kB 🟢 -3.21 kB 🟢 -2.84 kB
assets/CloudSignupView-BCMsi8oj.js (new) 9.41 kB 🔴 +9.41 kB 🔴 +2.71 kB 🔴 +2.38 kB
assets/CloudSignupView-DNcdKUyL.js (removed) 9.41 kB 🟢 -9.41 kB 🟢 -2.71 kB 🟢 -2.38 kB
assets/UserCheckView-D5wiUvYu.js (new) 8.42 kB 🔴 +8.42 kB 🔴 +2.23 kB 🔴 +1.94 kB
assets/UserCheckView-DPrI-NY8.js (removed) 8.42 kB 🟢 -8.42 kB 🟢 -2.22 kB 🟢 -1.94 kB
assets/CloudLayoutView-BH_lm2Y8.js (removed) 6.47 kB 🟢 -6.47 kB 🟢 -2.12 kB 🟢 -1.84 kB
assets/CloudLayoutView-DINKKdEt.js (new) 6.47 kB 🔴 +6.47 kB 🔴 +2.12 kB 🔴 +1.85 kB
assets/CloudForgotPasswordView-D56ymi2v.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.95 kB 🔴 +1.74 kB
assets/CloudForgotPasswordView-DRom-Hwe.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.95 kB 🟢 -1.75 kB
assets/CloudAuthTimeoutView-BilIytnV.js (new) 4.96 kB 🔴 +4.96 kB 🔴 +1.79 kB 🔴 +1.58 kB
assets/CloudAuthTimeoutView-sIEGCE1q.js (removed) 4.96 kB 🟢 -4.96 kB 🟢 -1.79 kB 🟢 -1.59 kB
assets/CloudSubscriptionRedirectView-juph_4xN.js (new) 4.78 kB 🔴 +4.78 kB 🔴 +1.8 kB 🔴 +1.59 kB
assets/CloudSubscriptionRedirectView-MSaRoAUE.js (removed) 4.78 kB 🟢 -4.78 kB 🟢 -1.8 kB 🟢 -1.59 kB
assets/UserSelectView-7bNB4QhX.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.64 kB 🟢 -1.46 kB
assets/UserSelectView-BxYoqzY1.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.64 kB 🔴 +1.47 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-CjyKBGKO.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.29 kB 🔴 +4.64 kB
assets/SecretsPanel-uYyP5cav.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.29 kB 🟢 -4.66 kB
assets/LegacyCreditsPanel-B9fauqla.js (removed) 20.7 kB 🟢 -20.7 kB 🟢 -5.58 kB 🟢 -4.91 kB
assets/LegacyCreditsPanel-BkD1r8jQ.js (new) 20.7 kB 🔴 +20.7 kB 🔴 +5.58 kB 🔴 +4.92 kB
assets/SubscriptionPanel-DSeOCiLw.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.75 kB 🔴 +4.18 kB
assets/SubscriptionPanel-uflXwVm1.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.76 kB 🟢 -4.17 kB
assets/KeybindingPanel-B4BeujDD.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.54 kB 🟢 -3.13 kB
assets/KeybindingPanel-BM8uJFjs.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.54 kB 🔴 +3.13 kB
assets/AboutPanel-hHe16gB_.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.73 kB 🔴 +2.45 kB
assets/AboutPanel-oIp9WUk7.js (removed) 9.79 kB 🟢 -9.79 kB 🟢 -2.73 kB 🟢 -2.46 kB
assets/ExtensionPanel-BaOlxEso.js (removed) 9.42 kB 🟢 -9.42 kB 🟢 -2.67 kB 🟢 -2.38 kB
assets/ExtensionPanel-CGt8lYPw.js (new) 9.42 kB 🔴 +9.42 kB 🔴 +2.67 kB 🔴 +2.38 kB
assets/ServerConfigPanel-H1_8MSLR.js (new) 6.49 kB 🔴 +6.49 kB 🔴 +2.13 kB 🔴 +1.91 kB
assets/ServerConfigPanel-TkzrlCq2.js (removed) 6.49 kB 🟢 -6.49 kB 🟢 -2.13 kB 🟢 -1.92 kB
assets/UserPanel-B6GkmqWt.js (new) 6.2 kB 🔴 +6.2 kB 🔴 +2.01 kB 🔴 +1.76 kB
assets/UserPanel-BJrv7ANc.js (removed) 6.2 kB 🟢 -6.2 kB 🟢 -2.01 kB 🟢 -1.76 kB
assets/cloudRemoteConfig-D8OzQZRd.js (new) 1.48 kB 🔴 +1.48 kB 🔴 +727 B 🔴 +632 B
assets/cloudRemoteConfig-U6e-W1fp.js (removed) 1.48 kB 🟢 -1.48 kB 🟢 -724 B 🟢 -629 B
assets/refreshRemoteConfig-CURffom5.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -518 B 🟢 -461 B
assets/refreshRemoteConfig-DvSRyRKP.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +522 B 🔴 +461 B
assets/config-DrIhAAj_.js 1.22 kB 1.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-0_PXdVjq.js 38.5 kB 38.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-7ytexSd_.js 27.8 kB 27.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-91ZQQ8VC.js 23.9 kB 23.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-aWa4u4qN.js 34.2 kB 34.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B6_1ih6C.js 27.9 kB 27.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C8aNjNPu.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CKnKW5J4.js 28.7 kB 28.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CrLux3Yh.js 29.9 kB 29.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DxEQtHFK.js 28.8 kB 28.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-JMKwrBEp.js 30.5 kB 30.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-rsISbbV-.js 32.4 kB 32.4 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-DfQ1B4ct.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -987 B
assets/auth-Dq9fwLUK.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +986 B
assets/SignUpForm-B8p-SN8u.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/SignUpForm-DrT3BG7X.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/UpdatePasswordContent-BZaemepA.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.09 kB 🟢 -959 B
assets/UpdatePasswordContent-BZPEx4zh.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.09 kB 🔴 +962 B
assets/firebaseAuthStore-4rh9H-u5.js (new) 831 B 🔴 +831 B 🔴 +406 B 🔴 +367 B
assets/firebaseAuthStore-Dfr9T3Y7.js (removed) 831 B 🟢 -831 B 🟢 -408 B 🟢 -362 B
assets/auth-BOr152Mm.js (new) 357 B 🔴 +357 B 🔴 +225 B 🔴 +208 B
assets/auth-Br6wSL7d.js (removed) 357 B 🟢 -357 B 🟢 -223 B 🟢 -190 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-CLIk91ZZ.js (new) 76.8 kB 🔴 +76.8 kB 🔴 +16.4 kB 🔴 +14.1 kB
assets/useShareDialog-D2xnB36Z.js (removed) 76.8 kB 🟢 -76.8 kB 🟢 -16.4 kB 🟢 -14 kB
assets/useSubscriptionDialog-BWJQ_UtV.js (new) 779 B 🔴 +779 B 🔴 +397 B 🔴 +344 B
assets/useSubscriptionDialog-C9J3e2c1.js (removed) 779 B 🟢 -779 B 🟢 -398 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-BDpvMvnK.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.9 kB 🟢 -3.48 kB
assets/ComfyQueueButton-CoP7pALA.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.91 kB 🔴 +3.48 kB
assets/useTerminalTabs-B3OT7a7m.js (new) 9.87 kB 🔴 +9.87 kB 🔴 +3.41 kB 🔴 +3.01 kB
assets/useTerminalTabs-DEerEdhR.js (removed) 9.87 kB 🟢 -9.87 kB 🟢 -3.41 kB 🟢 -3 kB
assets/SubscribeButton-B5rfQWsO.js (removed) 2.34 kB 🟢 -2.34 kB 🟢 -1.01 kB 🟢 -881 B
assets/SubscribeButton-C3A4xlFD.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +1.01 kB 🔴 +881 B
assets/cloudFeedbackTopbarButton-BvMgii9c.js (removed) 1.42 kB 🟢 -1.42 kB 🟢 -745 B 🟢 -656 B
assets/cloudFeedbackTopbarButton-D8LF0FJH.js (new) 1.42 kB 🔴 +1.42 kB 🔴 +751 B 🔴 +667 B
assets/ComfyQueueButton-B98QP7Ol.js (removed) 836 B 🟢 -836 B 🟢 -412 B 🟢 -367 B
assets/ComfyQueueButton-COjlGrgI.js (new) 836 B 🔴 +836 B 🔴 +412 B 🔴 +368 B
assets/Button-D3asrPDZ.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-D3QLfJ-O.js 3.73 kB 3.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ScrubableNumberInput-C0yl0FxS.js 5.95 kB 5.95 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/toggle-group-B2QRWqGW.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-YsqWV653.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 2.76 MB (baseline 2.77 MB) • 🟢 -8.79 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-Dhb7EclK.js (removed) 1.93 MB 🟢 -1.93 MB 🟢 -433 kB 🟢 -325 kB
assets/dialogService-DNFBxz6k.js (new) 1.93 MB 🔴 +1.93 MB 🔴 +433 kB 🔴 +325 kB
assets/api-D5En9fhg.js (removed) 693 kB 🟢 -693 kB 🟢 -156 kB 🟢 -124 kB
assets/api-pD2jpRh7.js (new) 684 kB 🔴 +684 kB 🔴 +155 kB 🔴 +123 kB
assets/load3dService-DO8acYcl.js (removed) 91.1 kB 🟢 -91.1 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/load3dService-RFRyO9IK.js (new) 91.1 kB 🔴 +91.1 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/extensionStore-CRQVyt7d.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +4.63 kB 🔴 +4.1 kB
assets/extensionStore-DlxfD6lu.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -4.63 kB 🟢 -4.1 kB
assets/workflowShareService-BQtnBCsw.js (removed) 13.1 kB 🟢 -13.1 kB 🟢 -4 kB 🟢 -3.55 kB
assets/workflowShareService-CEukBZtH.js (new) 13.1 kB 🔴 +13.1 kB 🔴 +4 kB 🔴 +3.54 kB
assets/releaseStore-D-1jGHeS.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/releaseStore-Dx__1bhI.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/keybindingService-BOIT9_Ep.js (removed) 7.16 kB 🟢 -7.16 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/keybindingService-CZfWe8Rp.js (new) 7.16 kB 🔴 +7.16 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/bootstrapStore-B8JbTfwJ.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +872 B 🔴 +801 B
assets/bootstrapStore-BftO17X7.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -873 B 🟢 -797 B
assets/userStore-ASEicIN4.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +719 B 🔴 +639 B
assets/userStore-PgKA_IcA.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -719 B 🟢 -685 B
assets/audioService-BKacZum6.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -848 B 🟢 -724 B
assets/audioService-Dwvcizi1.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +847 B 🔴 +726 B
assets/releaseStore-BTRzybCk.js (new) 803 B 🔴 +803 B 🔴 +404 B 🔴 +356 B
assets/releaseStore-Dcnc3rO8.js (removed) 803 B 🟢 -803 B 🟢 -403 B 🟢 -354 B
assets/settingStore-BSabc8YC.js (removed) 787 B 🟢 -787 B 🟢 -406 B 🟢 -356 B
assets/settingStore-CfK4P7l0.js (new) 787 B 🔴 +787 B 🔴 +405 B 🔴 +358 B
assets/workflowDraftStore-B8vC2H-7.js (new) 779 B 🔴 +779 B 🔴 +398 B 🔴 +349 B
assets/workflowDraftStore-gkoWEF26.js (removed) 779 B 🟢 -779 B 🟢 -398 B 🟢 -347 B
assets/dialogService-B2Whpuuw.js (new) 768 B 🔴 +768 B 🔴 +389 B 🔴 +347 B
assets/dialogService-B5BfBN28.js (removed) 768 B 🟢 -768 B 🟢 -389 B 🟢 -345 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-BONRIrxn.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.63 kB 🔴 +3.21 kB
assets/useLoad3d-CZ_Nu8BE.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3dViewer-nyy6S4PX.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.8 kB
assets/useLoad3dViewer-pae66Umy.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -3.15 kB 🟢 -2.8 kB
assets/useFeatureFlags-NLfAZxY5.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.37 kB 🔴 +1.17 kB
assets/useFeatureFlags-sHl0AMkU.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.37 kB 🟢 -1.17 kB
assets/useWorkspaceUI-831pg9K9.js (removed) 3 kB 🟢 -3 kB 🟢 -822 B 🟢 -701 B
assets/useWorkspaceUI-BNUmZRuH.js (new) 3 kB 🔴 +3 kB 🔴 +823 B 🔴 +706 B
assets/subscriptionCheckoutUtil-BpVNKWHv.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.06 kB 🔴 +957 B
assets/subscriptionCheckoutUtil-Cxyop1yD.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -950 B
assets/useErrorHandling-BnnFLpA-.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +628 B 🔴 +569 B
assets/useErrorHandling-DCvKQYZN.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -630 B 🟢 -535 B
assets/useLoad3d-BjD5N90g.js (removed) 902 B 🟢 -902 B 🟢 -443 B 🟢 -394 B
assets/useLoad3d-CY7tsvIu.js (new) 902 B 🔴 +902 B 🔴 +444 B 🔴 +399 B
assets/useLoad3dViewer-B3kDOhf2.js (removed) 881 B 🟢 -881 B 🟢 -427 B 🟢 -382 B
assets/useLoad3dViewer-C3JoUf9b.js (new) 881 B 🔴 +881 B 🔴 +430 B 🔴 +387 B
assets/audioUtils-DG-Eu0Dw.js (new) 858 B 🔴 +858 B 🔴 +500 B 🔴 +405 B
assets/audioUtils-zrURCtuq.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -427 B
assets/useCurrentUser-CiH2NJTY.js (new) 765 B 🔴 +765 B 🔴 +392 B 🔴 +345 B
assets/useCurrentUser-DHviKnvr.js (removed) 765 B 🟢 -765 B 🟢 -393 B 🟢 -341 B
assets/useWorkspaceSwitch-BYBXh0Dn.js (new) 688 B 🔴 +688 B 🔴 +354 B 🔴 +298 B
assets/useWorkspaceSwitch-C54e_5lG.js (removed) 688 B 🟢 -688 B 🟢 -351 B 🟢 -297 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-Ti3tsiGv.js 944 B 944 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useExternalLink-Dhz4AtFE.js 1.66 kB 1.66 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 11 added / 11 removed

Vendor & Third-Party — 8.87 MB (baseline 8.87 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-C-tDe-KL.js 399 kB 399 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-CH_Hqnyl.js 124 kB 124 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-CRyp8C8i.js (new) 73.8 kB 🔴 +73.8 kB 🔴 +19 kB 🔴 +16.3 kB
assets/core-wg1wt8Cw.js (removed) 73.8 kB 🟢 -73.8 kB 🟢 -19 kB 🟢 -16.3 kB
assets/groupNode-BYhjzffY.js (new) 71.8 kB 🔴 +71.8 kB 🔴 +17.7 kB 🔴 +15.6 kB
assets/groupNode-C-wltMG3.js (removed) 71.8 kB 🟢 -71.8 kB 🟢 -17.7 kB 🟢 -15.6 kB
assets/WidgetSelect-Cao2vux6.js (removed) 58.3 kB 🟢 -58.3 kB 🟢 -12.4 kB 🟢 -10.7 kB
assets/WidgetSelect-CxUTvsw-.js (new) 58.3 kB 🔴 +58.3 kB 🔴 +12.4 kB 🔴 +10.7 kB
assets/SubscriptionRequiredDialogContentWorkspace-BVlFdQf9.js (new) 46.2 kB 🔴 +46.2 kB 🔴 +8.65 kB 🔴 +7.51 kB
assets/SubscriptionRequiredDialogContentWorkspace-DGveEKGp.js (removed) 46.2 kB 🟢 -46.2 kB 🟢 -8.65 kB 🟢 -7.52 kB
assets/WidgetPainter-CKLkHado.js (removed) 32.9 kB 🟢 -32.9 kB 🟢 -7.97 kB 🟢 -7.07 kB
assets/WidgetPainter-hDs6muqb.js (new) 32.9 kB 🔴 +32.9 kB 🔴 +7.97 kB 🔴 +7.06 kB
assets/Load3DControls-BneBN_WS.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.65 kB
assets/Load3DControls-CKf3Xsdv.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.64 kB
assets/WorkspacePanelContent-D5WG_EU6.js (new) 29.3 kB 🔴 +29.3 kB 🔴 +6.16 kB 🔴 +5.43 kB
assets/WorkspacePanelContent-Dh0wAzm5.js (removed) 29.3 kB 🟢 -29.3 kB 🟢 -6.16 kB 🟢 -5.39 kB
assets/SubscriptionRequiredDialogContent-C_CKnTlr.js (removed) 25.6 kB 🟢 -25.6 kB 🟢 -6.56 kB 🟢 -5.78 kB
assets/SubscriptionRequiredDialogContent-DdXq0Zox.js (new) 25.6 kB 🔴 +25.6 kB 🔴 +6.56 kB 🔴 +5.78 kB
assets/Load3dViewerContent-B5_Av1xY.js (removed) 23 kB 🟢 -23 kB 🟢 -5.18 kB 🟢 -4.5 kB
assets/Load3dViewerContent-Ck-vBQ-d.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.5 kB
assets/WidgetImageCrop-CHy8o10b.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.52 kB 🔴 +4.86 kB
assets/WidgetImageCrop-CRRWxlEf.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.52 kB 🟢 -4.85 kB
assets/SubscriptionPanelContentWorkspace-ECTRULHD.js (removed) 22 kB 🟢 -22 kB 🟢 -5.11 kB 🟢 -4.49 kB
assets/SubscriptionPanelContentWorkspace-UmwHDg_M.js (new) 22 kB 🔴 +22 kB 🔴 +5.11 kB 🔴 +4.49 kB
assets/CurrentUserPopoverWorkspace-B1s3NHT1.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.94 kB 🔴 +4.41 kB
assets/CurrentUserPopoverWorkspace-C8w9Ox2M.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.94 kB 🟢 -4.42 kB
assets/SignInContent-B-qsxtk_.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.77 kB 🟢 -4.18 kB
assets/SignInContent-DoI6Ql69.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.77 kB 🔴 +4.17 kB
assets/WidgetInputNumber-Ci3z-FeA.js (new) 18.8 kB 🔴 +18.8 kB 🔴 +4.79 kB 🔴 +4.26 kB
assets/WidgetInputNumber-DAnRKopK.js (removed) 18.8 kB 🟢 -18.8 kB 🟢 -4.79 kB 🟢 -4.26 kB
assets/WidgetRecordAudio-DYWwyG0-.js (new) 17.4 kB 🔴 +17.4 kB 🔴 +5.01 kB 🔴 +4.48 kB
assets/WidgetRecordAudio-urZtQGBl.js (removed) 17.4 kB 🟢 -17.4 kB 🟢 -5.01 kB 🟢 -4.48 kB
assets/Load3D-BZbt2bGN.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.02 kB 🔴 +3.52 kB
assets/Load3D-Denkjkc5.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.02 kB 🟢 -3.51 kB
assets/load3d-Br01ErZp.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.21 kB 🟢 -3.65 kB
assets/load3d-DvcJU0Q_.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +4.21 kB 🔴 +3.65 kB
assets/AudioPreviewPlayer-DPf26EZF.js (new) 11 kB 🔴 +11 kB 🔴 +3.25 kB 🔴 +2.92 kB
assets/AudioPreviewPlayer-v-YxGwMU.js (removed) 11 kB 🟢 -11 kB 🟢 -3.25 kB 🟢 -2.92 kB
assets/nodeTemplates-BJYgSdeF.js (new) 9.34 kB 🔴 +9.34 kB 🔴 +3.27 kB 🔴 +2.88 kB
assets/nodeTemplates-DiMU_Pw8.js (removed) 9.34 kB 🟢 -9.34 kB 🟢 -3.27 kB 🟢 -2.88 kB
assets/InviteMemberDialogContent-DMTHjUtm.js (new) 7.37 kB 🔴 +7.37 kB 🔴 +2.3 kB 🔴 +2.02 kB
assets/InviteMemberDialogContent-Fg5DBzIx.js (removed) 7.37 kB 🟢 -7.37 kB 🟢 -2.31 kB 🟢 -2.01 kB
assets/Load3DConfiguration-ByIcBwS0.js (new) 6.27 kB 🔴 +6.27 kB 🔴 +1.92 kB 🔴 +1.68 kB
assets/Load3DConfiguration-CHSjqC12.js (removed) 6.27 kB 🟢 -6.27 kB 🟢 -1.91 kB 🟢 -1.68 kB
assets/CreateWorkspaceDialogContent-BjaHqFjR.js (removed) 5.54 kB 🟢 -5.54 kB 🟢 -2 kB 🟢 -1.75 kB
assets/CreateWorkspaceDialogContent-QzFJxinP.js (new) 5.54 kB 🔴 +5.54 kB 🔴 +2 kB 🔴 +1.75 kB
assets/onboardingCloudRoutes-9fgReHGW.js (new) 5.51 kB 🔴 +5.51 kB 🔴 +1.88 kB 🔴 +1.64 kB
assets/onboardingCloudRoutes-JKFYjohw.js (removed) 5.51 kB 🟢 -5.51 kB 🟢 -1.88 kB 🟢 -1.64 kB
assets/FreeTierDialogContent-DAz66YpS.js (removed) 5.42 kB 🟢 -5.42 kB 🟢 -1.91 kB 🟢 -1.69 kB
assets/FreeTierDialogContent-Di884Rgf.js (new) 5.42 kB 🔴 +5.42 kB 🔴 +1.91 kB 🔴 +1.68 kB
assets/EditWorkspaceDialogContent-BS5-PwNW.js (new) 5.35 kB 🔴 +5.35 kB 🔴 +1.97 kB 🔴 +1.72 kB
assets/EditWorkspaceDialogContent-CN5CagDc.js (removed) 5.35 kB 🟢 -5.35 kB 🟢 -1.96 kB 🟢 -1.72 kB
assets/ValueControlPopover-BQTVyQGs.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.77 kB 🔴 +1.59 kB
assets/ValueControlPopover-BswsuHA-.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.77 kB 🟢 -1.58 kB
assets/Preview3d-BAYG4czD.js (new) 4.89 kB 🔴 +4.89 kB 🔴 +1.61 kB 🔴 +1.4 kB
assets/Preview3d-Box3Ci4H.js (removed) 4.89 kB 🟢 -4.89 kB 🟢 -1.6 kB 🟢 -1.4 kB
assets/CancelSubscriptionDialogContent-C07SNK1N.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.8 kB 🟢 -1.58 kB
assets/CancelSubscriptionDialogContent-lQPQADK_.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.8 kB 🔴 +1.58 kB
assets/DeleteWorkspaceDialogContent-DngwrM2z.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.64 kB 🔴 +1.43 kB
assets/DeleteWorkspaceDialogContent-Dz9_HxSD.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.64 kB 🟢 -1.43 kB
assets/WidgetWithControl-BLQNZ__-.js (new) 4.17 kB 🔴 +4.17 kB 🔴 +1.82 kB 🔴 +1.65 kB
assets/WidgetWithControl-CU9NYtyq.js (removed) 4.17 kB 🟢 -4.17 kB 🟢 -1.82 kB 🟢 -1.64 kB
assets/LeaveWorkspaceDialogContent-C9Kq3ng3.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.59 kB 🔴 +1.38 kB
assets/LeaveWorkspaceDialogContent-Dwk78vt9.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.59 kB 🟢 -1.38 kB
assets/RemoveMemberDialogContent-BS0TlHIQ.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.54 kB 🔴 +1.35 kB
assets/RemoveMemberDialogContent-lTABYl77.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.54 kB 🟢 -1.35 kB
assets/RevokeInviteDialogContent-CAs47N_b.js (removed) 3.97 kB 🟢 -3.97 kB 🟢 -1.55 kB 🟢 -1.36 kB
assets/RevokeInviteDialogContent-DHXYc0Ww.js (new) 3.97 kB 🔴 +3.97 kB 🔴 +1.55 kB 🔴 +1.37 kB
assets/InviteMemberUpsellDialogContent-2m_iBttF.js (removed) 3.86 kB 🟢 -3.86 kB 🟢 -1.42 kB 🟢 -1.25 kB
assets/InviteMemberUpsellDialogContent-DAWCEbLK.js (new) 3.86 kB 🔴 +3.86 kB 🔴 +1.43 kB 🔴 +1.25 kB
assets/tierBenefits-B8vo0Lr2.js (new) 3.66 kB 🔴 +3.66 kB 🔴 +1.3 kB 🔴 +1.17 kB
assets/tierBenefits-BMXR7ImK.js (removed) 3.66 kB 🟢 -3.66 kB 🟢 -1.31 kB 🟢 -1.15 kB
assets/saveMesh-CpQn5L18.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +1.48 kB 🔴 +1.31 kB
assets/saveMesh-WI_ZmOzX.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -1.47 kB 🟢 -1.31 kB
assets/cloudSessionCookie-eZPVcA2X.js (removed) 3.14 kB 🟢 -3.14 kB 🟢 -1.11 kB 🟢 -997 B
assets/cloudSessionCookie-R-XPxpsT.js (new) 3.14 kB 🔴 +3.14 kB 🔴 +1.11 kB 🔴 +997 B
assets/GlobalToast-BbqyNiEP.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.06 kB
assets/GlobalToast-DNlzRalA.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.03 kB
assets/SubscribeToRun-iaFgWNjZ.js (new) 2.06 kB 🔴 +2.06 kB 🔴 +946 B 🔴 +826 B
assets/SubscribeToRun-y8cn1Ywm.js (removed) 2.06 kB 🟢 -2.06 kB 🟢 -947 B 🟢 -831 B
assets/CloudRunButtonWrapper-i-gs4onk.js (new) 1.72 kB 🔴 +1.72 kB 🔴 +803 B 🔴 +732 B
assets/CloudRunButtonWrapper-j4f5Nek7.js (removed) 1.72 kB 🟢 -1.72 kB 🟢 -804 B 🟢 -743 B
assets/cloudBadges-Cjvz8JRk.js (removed) 1.54 kB 🟢 -1.54 kB 🟢 -795 B 🟢 -693 B
assets/cloudBadges-DnjCyYY8.js (new) 1.54 kB 🔴 +1.54 kB 🔴 +795 B 🔴 +697 B
assets/previousFullPath-JeewuDaV.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -650 B 🟢 -579 B
assets/previousFullPath-WqI61nD3.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +654 B 🔴 +559 B
assets/cloudSubscription-DcmK7Dg5.js (new) 1.37 kB 🔴 +1.37 kB 🔴 +675 B 🔴 +587 B
assets/cloudSubscription-DjU9i7sV.js (removed) 1.37 kB 🟢 -1.37 kB 🟢 -675 B 🟢 -583 B
assets/Load3D-BS8fk-n3.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +517 B 🔴 +457 B
assets/Load3D-BUEDeRww.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -514 B 🟢 -455 B
assets/nightlyBadges-CgEZcbRd.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +548 B 🔴 +488 B
assets/nightlyBadges-DqslJwmC.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -550 B 🟢 -490 B
assets/Load3dViewerContent-BnykNkWz.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -485 B 🟢 -428 B
assets/Load3dViewerContent-DZGXgYsZ.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +488 B 🔴 +429 B
assets/SubscriptionPanelContentWorkspace-CdsmqYHd.js (removed) 963 B 🟢 -963 B 🟢 -459 B 🟢 -395 B
assets/SubscriptionPanelContentWorkspace-CHJn60c1.js (new) 963 B 🔴 +963 B 🔴 +457 B 🔴 +394 B
assets/WidgetLegacy-C7mW5emN.js (new) 787 B 🔴 +787 B 🔴 +402 B 🔴 +351 B
assets/WidgetLegacy-CVK1uXO6.js (removed) 787 B 🟢 -787 B 🟢 -403 B 🟢 -348 B
assets/changeTracker-CN5x4qY8.js (new) 763 B 🔴 +763 B 🔴 +392 B 🔴 +344 B
assets/changeTracker-hq6xPUEr.js (removed) 763 B 🟢 -763 B 🟢 -393 B 🟢 -339 B
assets/graphHasMissingNodes-Cu9KBeT8.js (new) 761 B 🔴 +761 B 🔴 +374 B 🔴 +324 B
assets/graphHasMissingNodes-D80rFLpR.js (removed) 761 B 🟢 -761 B 🟢 -374 B 🟢 -331 B
assets/AnimationControls-Duc4GLUA.js 4.61 kB 4.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ApiNodesSignInContent-_vWTPKYY.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-CiDQVNER.js 544 kB 544 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-DB0ysFMT.js 199 B 199 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Loader-cdpDz0uu.js 1.14 kB 1.14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-5H8roobL.js 158 kB 158 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CA5dYHUm.js 159 kB 159 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CDDmwCUg.js 199 kB 199 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CiUjHtn0.js 221 kB 221 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CpPIHWU9.js 166 kB 166 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Crut1KEq.js 140 kB 140 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D8Vf0Ptk.js 164 kB 164 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DOAQmYEE.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DPbrllQt.js 161 kB 161 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-jNOpmuRW.js 190 kB 190 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-PtX2AFpt.js 139 kB 139 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-D-7rS-iO.js 1.75 kB 1.75 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-B5wSHUh4.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-rvNSYIKQ.js 8.94 kB 8.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/signInSchema-BuvvODD1.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-B3Tsj8GO.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-B3NJoLzd.js 283 B 283 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CagJRS6y.js 3.19 kB 3.19 kB ⚪ 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-Ey4H47pH.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-By-QMhe2.js 4.26 kB 4.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-CoDLRkkN.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

@github-actions
Copy link

github-actions bot commented Mar 8, 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 123 -1%
canvas-idle: layouts 0 0 +0%
canvas-idle: task duration 434ms 500ms +15%
canvas-mouse-sweep: style recalcs 176 175 -0%
canvas-mouse-sweep: layouts 12 12 +3%
canvas-mouse-sweep: task duration 945ms 960ms +2%
dom-widget-clipping: style recalcs 45 42 -6%
dom-widget-clipping: layouts 1 0 -100%
dom-widget-clipping: task duration 381ms 376ms -1%
subgraph-dom-widget-clipping: style recalcs 74 76 +2%
subgraph-dom-widget-clipping: layouts 0 0 +0%
subgraph-dom-widget-clipping: task duration 427ms 443ms +4%
subgraph-idle: style recalcs 121 121 +0%
subgraph-idle: layouts 0 0 -100%
subgraph-idle: task duration 401ms 487ms +22%
subgraph-mouse-sweep: style recalcs 168 162 -3%
subgraph-mouse-sweep: layouts 16 16 +0%
subgraph-mouse-sweep: task duration 907ms 901ms -1%
Raw data
{
  "timestamp": "2026-03-08T01:27:39.961Z",
  "gitSha": "83580909b34eae2420d0e59e57b1243c4024f88e",
  "branch": "drjkl/one-promotion-at-a-time",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2030.9639999999831,
      "styleRecalcs": 124,
      "styleRecalcDurationMs": 27.965999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 523.466,
      "heapDeltaBytes": -3434408
    },
    {
      "name": "canvas-idle",
      "durationMs": 2018.8890000000015,
      "styleRecalcs": 122,
      "styleRecalcDurationMs": 25.197,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 462.368,
      "heapDeltaBytes": -4807500
    },
    {
      "name": "canvas-idle",
      "durationMs": 2039.124999999956,
      "styleRecalcs": 124,
      "styleRecalcDurationMs": 27.471999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 513.242,
      "heapDeltaBytes": -3931248
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2082.6979999999935,
      "styleRecalcs": 188,
      "styleRecalcDurationMs": 67.42399999999999,
      "layouts": 13,
      "layoutDurationMs": 4.173,
      "taskDurationMs": 1122.9089999999999,
      "heapDeltaBytes": -2294440
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1841.766000000007,
      "styleRecalcs": 169,
      "styleRecalcDurationMs": 52.154999999999994,
      "layouts": 12,
      "layoutDurationMs": 3.764,
      "taskDurationMs": 868.153,
      "heapDeltaBytes": -3143764
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1847.2300000000246,
      "styleRecalcs": 168,
      "styleRecalcDurationMs": 62.894999999999996,
      "layouts": 12,
      "layoutDurationMs": 3.42,
      "taskDurationMs": 887.7539999999999,
      "heapDeltaBytes": -3165112
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 551.7250000000047,
      "styleRecalcs": 40,
      "styleRecalcDurationMs": 13.082,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 358.121,
      "heapDeltaBytes": 6499864
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 616.6359999999997,
      "styleRecalcs": 44,
      "styleRecalcDurationMs": 14.722,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 392.243,
      "heapDeltaBytes": 6388300
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 591.6389999999865,
      "styleRecalcs": 43,
      "styleRecalcDurationMs": 13.829,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 377.61300000000006,
      "heapDeltaBytes": 7200236
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 644.4459999999879,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 17.367,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 440.005,
      "heapDeltaBytes": 15589336
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 650.527000000011,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 17.243000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 446.133,
      "heapDeltaBytes": -8821732
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 644.8570000000018,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 17.370000000000005,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 443.958,
      "heapDeltaBytes": 14556040
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2022.8810000000124,
      "styleRecalcs": 122,
      "styleRecalcDurationMs": 27.829000000000004,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 504.43800000000005,
      "heapDeltaBytes": -2857588
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2006.9070000000124,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 26.506999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 476.60900000000004,
      "heapDeltaBytes": -3357532
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1998.960000000011,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 26.912,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 481.345,
      "heapDeltaBytes": -3692216
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1717.4149999999884,
      "styleRecalcs": 158,
      "styleRecalcDurationMs": 53.133,
      "layouts": 17,
      "layoutDurationMs": 4.761,
      "taskDurationMs": 805.544,
      "heapDeltaBytes": 20406968
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1741.1189999999976,
      "styleRecalcs": 157,
      "styleRecalcDurationMs": 51.641999999999996,
      "layouts": 16,
      "layoutDurationMs": 4.8,
      "taskDurationMs": 840.567,
      "heapDeltaBytes": -6683140
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1995.8030000000235,
      "styleRecalcs": 172,
      "styleRecalcDurationMs": 61.237,
      "layouts": 16,
      "layoutDurationMs": 4.944999999999999,
      "taskDurationMs": 1057.0499999999997,
      "heapDeltaBytes": -5687636
    }
  ]
}

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
src/composables/graph/useGraphNodeManager.test.ts (1)

302-310: Hide this slot-wiring workaround behind a fixture helper.

The _internalConfigureAfterSlots() + temporary widget stripping sequence bakes SubgraphNode internals into a composable test. Moving that setup into subgraphHelpers would keep this test focused on nested-promotion behavior and make future slot/promotion refactors less brittle.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/composables/graph/useGraphNodeManager.test.ts` around lines 302 - 310,
Wrap the slot-wiring workaround (createTestSubgraphNode -> subgraphB.add ->
subgraphNodeA._internalConfigureAfterSlots -> temporarily delete
inputs[0].widget -> subgraphB.inputNode.slots[0].connect(...) -> restore widget)
into a test fixture helper inside subgraphHelpers (e.g.,
createAndConnectSubgraphNode or connectSubgraphNodeToSubgraphInput) and replace
the inline sequence in the test with a single call to that helper; ensure the
helper accepts parameters for the subgraph owner and node id and performs the
temporary widget strip/restore around the connect so callers (tests using
subgraphNodeA, subgraphB, inputs, _internalConfigureAfterSlots) no longer need
to manipulate internals directly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/composables/graph/useGraphNodeManager.test.ts`:
- Around line 302-310: Wrap the slot-wiring workaround (createTestSubgraphNode
-> subgraphB.add -> subgraphNodeA._internalConfigureAfterSlots -> temporarily
delete inputs[0].widget -> subgraphB.inputNode.slots[0].connect(...) -> restore
widget) into a test fixture helper inside subgraphHelpers (e.g.,
createAndConnectSubgraphNode or connectSubgraphNodeToSubgraphInput) and replace
the inline sequence in the test with a single call to that helper; ensure the
helper accepts parameters for the subgraph owner and node id and performs the
temporary widget strip/restore around the connect so callers (tests using
subgraphNodeA, subgraphB, inputs, _internalConfigureAfterSlots) no longer need
to manipulate internals directly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1b91a5af-37a9-4cb2-a098-2791abdb7030

📥 Commits

Reviewing files that changed from the base of the PR and between c4156d7 and 953374b.

📒 Files selected for processing (14)
  • src/composables/graph/useGraphNodeManager.test.ts
  • src/composables/graph/useGraphNodeManager.ts
  • src/core/graph/subgraph/promotedWidgetView.test.ts
  • src/core/graph/subgraph/resolveSubgraphInputLink.test.ts
  • src/core/graph/subgraph/resolveSubgraphInputTarget.test.ts
  • src/core/graph/subgraph/subgraphNodePromotion.test.ts
  • src/lib/litegraph/src/LGraphNode.ts
  • src/lib/litegraph/src/infrastructure/SubgraphInputEventMap.ts
  • src/lib/litegraph/src/interfaces.ts
  • src/lib/litegraph/src/node/NodeInputSlot.ts
  • src/lib/litegraph/src/subgraph/EmptySubgraphInput.ts
  • src/lib/litegraph/src/subgraph/SubgraphInput.ts
  • src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts
  • src/lib/litegraph/src/subgraph/SubgraphNode.ts
💤 Files with no reviewable changes (5)
  • src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts
  • src/lib/litegraph/src/LGraphNode.ts
  • src/composables/graph/useGraphNodeManager.ts
  • src/lib/litegraph/src/interfaces.ts
  • src/lib/litegraph/src/node/NodeInputSlot.ts

@DrJKL DrJKL marked this pull request as draft March 9, 2026 19:05
@DrJKL DrJKL closed this Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant