Skip to content

Restore hiding of linked inputs in app mode#9671

Merged
AustinMroz merged 3 commits intomainfrom
austin/fix-disabled-app-inputs
Mar 9, 2026
Merged

Restore hiding of linked inputs in app mode#9671
AustinMroz merged 3 commits intomainfrom
austin/fix-disabled-app-inputs

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Mar 9, 2026

As a temporary fix for widgets being incorrectly hidden, #9669 allowed all disabled widgets to be displayed.

This PR provides a more robust implementation to derive whether the widget, as would be displayed from the root graph, is disabled.

Potential regression:

  • Drag drop handlers are applied on node, not widgets. A subgraph containing a "Load Image" node, does not allow dragging and dropping an image onto the subgraphNode in order to load it. Because app mode widgets would display from the original owning node prior to this PR, these drag/drop handlers would apply. Placing "Load Image" nodes. I believe this change makes behavior more consistent, but it warrants consideration.

┆Issue is synchronized with this Notion page by Unito

@AustinMroz AustinMroz requested a review from a team as a code owner March 9, 2026 19:38
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Mar 9, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 9, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0e39a20d-1859-4268-b475-1c40be2b4b61

📥 Commits

Reviewing files that changed from the base of the PR and between 2371ecd and 65931b7.

📒 Files selected for processing (1)
  • src/renderer/extensions/linearMode/LinearControls.vue

📝 Walkthrough

Walkthrough

Replaces an inline resolveNodeWidget with a shared helper in src/utils/litegraphUtil.ts, updates AppBuilder.vue to import it, and changes LinearControls.vue to use widget-aware resolution (including promoted-subgraph widget lookup) and per-widget filtering/post-processing.

Changes

Cohort / File(s) Summary
Widget Resolution Utility
src/utils/litegraphUtil.ts
New resolveNodeWidget(nodeId, widgetName?, graph?) added. Returns `[LGraphNode, IBaseWidget]
AppBuilder Refactor
src/components/builder/AppBuilder.vue
Removed local resolveNodeWidget implementation; imports the shared helper from @/utils/litegraphUtil.
LinearControls Widget Filtering
src/renderer/extensions/linearMode/LinearControls.vue
Replaced previous resolution with resolveNodeWidget; mapped selections to [node, widget] pairs; added filtering logic for slotMetadata.linked, direct name matches, and promoted-subgraph ownership via isPromotedWidgetView; moved per-widget reset/post-processing after filtering; added FIXME about bypassed nodes.
Imports & Small API surface
package manifest / other files
Imports updated to include isPromotedWidgetView where needed and to use new util. No exported public API removals.

Sequence Diagram(s)

sequenceDiagram
    participant LinearControls
    participant LitegraphUtil as resolveNodeWidget
    participant SubgraphModule as isPromotedWidgetView
    participant NodeStore as NodeData

    LinearControls->>LitegraphUtil: resolveNodeWidget(nodeId, widgetName)
    alt direct widget found on node
        LitegraphUtil-->>LinearControls: [node, widget]
    else widget not found directly
        LitegraphUtil->>SubgraphModule: inspect promoted widgets / source mappings
        SubgraphModule-->>LitegraphUtil: match info (owningSubgraphNode, promotedWidget)
        LitegraphUtil-->>LinearControls: [owningSubgraphNode, promotedWidget]
    end
    LinearControls->>NodeStore: filter/map widgets, reset slotMetadata & nodeId
    NodeStore-->>LinearControls: updated node/widget structures
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Poem

🐇 I hopped through nodes both near and far,
Moved a seeker helper to a shared jar,
Found promoted friends behind subgraph doors,
Now widgets meet their nodes on common floors — hooray for shared chores! ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

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.
Description check ❓ Inconclusive The description provides context about the fix (reverting #9669) and documents a potential regression, but lacks the structured format required by the template (Summary, Changes, Review Focus sections). Restructure the description to follow the template: add a concise Summary section, clearly itemize Changes (What/Breaking/Dependencies), and formally document the regression under Review Focus.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Restore hiding of linked inputs in app mode' accurately describes the main change: reverting a temporary behavior to restore proper widget hiding logic for linked inputs.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch austin/fix-disabled-app-inputs

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 Mar 9, 2026

🎭 Playwright: ✅ 560 passed, 0 failed

📊 Browser Reports
  • chromium: View Report (✅ 547 / ❌ 0 / ⚠️ 0 / ⏭️ 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)

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 03/09/2026, 08:04:30 PM UTC

Links

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

📦 Bundle: 4.57 MB gzip 🔴 +150 B

Details

Summary

  • Raw size: 21.4 MB baseline 21.4 MB — 🔴 +443 B
  • Gzip: 4.57 MB baseline 4.57 MB — 🔴 +150 B
  • Brotli: 3.53 MB baseline 3.53 MB — 🔴 +378 B
  • Bundles: 232 current • 232 baseline • 108 added / 108 removed

Category Glance
Data & Services 🔴 +550 B (2.77 MB) · Graph Workspace 🟢 -107 B (967 kB) · Vendor & Third-Party ⚪ 0 B (8.88 MB) · Other ⚪ 0 B (8.04 MB) · 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-DkVP3g8T.js (new) 28.9 kB 🔴 +28.9 kB 🔴 +11.4 kB 🔴 +9.33 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) • 🟢 -107 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-TtAKZX79.js (removed) 967 kB 🟢 -967 kB 🟢 -204 kB 🟢 -154 kB
assets/GraphView-Drt_Ve70.js (new) 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-Dx0IkBFm.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.32 kB 🔴 +2.81 kB
assets/CloudLoginView-Bv9A9OgI.js (removed) 11.5 kB 🟢 -11.5 kB 🟢 -3.21 kB 🟢 -2.84 kB
assets/CloudLoginView-CrkqpXAX.js (new) 11.5 kB 🔴 +11.5 kB 🔴 +3.21 kB 🔴 +2.83 kB
assets/CloudSignupView-CJwDKB6C.js (removed) 9.41 kB 🟢 -9.41 kB 🟢 -2.72 kB 🟢 -2.38 kB
assets/CloudSignupView-GnyK89bf.js (new) 9.41 kB 🔴 +9.41 kB 🔴 +2.71 kB 🔴 +2.38 kB
assets/UserCheckView-Cd02tW7-.js (new) 8.42 kB 🔴 +8.42 kB 🔴 +2.22 kB 🔴 +1.94 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-q2t0DILr.js (new) 6.47 kB 🔴 +6.47 kB 🔴 +2.12 kB 🔴 +1.86 kB
assets/CloudForgotPasswordView-B-iFDqVg.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.95 kB 🟢 -1.72 kB
assets/CloudForgotPasswordView-BqojXnJZ.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-BKnyyUFO.js (new) 4.96 kB 🔴 +4.96 kB 🔴 +1.79 kB 🔴 +1.57 kB
assets/CloudSubscriptionRedirectView-Cs8WH4vD.js (new) 4.78 kB 🔴 +4.78 kB 🔴 +1.8 kB 🔴 +1.59 kB
assets/CloudSubscriptionRedirectView-McyOLav9.js (removed) 4.78 kB 🟢 -4.78 kB 🟢 -1.8 kB 🟢 -1.6 kB
assets/UserSelectView-Bjj8OYy-.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.64 kB 🔴 +1.46 kB
assets/UserSelectView-CoSeqQh7.js (removed) 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-DES_UGLD.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.29 kB 🔴 +4.64 kB
assets/SecretsPanel-DwI2HAl5.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.29 kB 🟢 -4.64 kB
assets/LegacyCreditsPanel-70y7Lle0.js (new) 20.7 kB 🔴 +20.7 kB 🔴 +5.59 kB 🔴 +4.92 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-Cg2HwSGB.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.75 kB 🔴 +4.17 kB
assets/KeybindingPanel-Bfuoxwof.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.54 kB 🟢 -3.14 kB
assets/KeybindingPanel-F-5TWwLO.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-Caz7p5Q9.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.73 kB 🔴 +2.46 kB
assets/ExtensionPanel-CouFl0Ih.js (new) 9.42 kB 🔴 +9.42 kB 🔴 +2.67 kB 🔴 +2.39 kB
assets/ExtensionPanel-ZMaWSqff.js (removed) 9.42 kB 🟢 -9.42 kB 🟢 -2.67 kB 🟢 -2.37 kB
assets/ServerConfigPanel-Cn_6nou3.js (removed) 6.49 kB 🟢 -6.49 kB 🟢 -2.13 kB 🟢 -1.93 kB
assets/ServerConfigPanel-CyJorMqL.js (new) 6.49 kB 🔴 +6.49 kB 🔴 +2.13 kB 🔴 +1.92 kB
assets/UserPanel-DhOhxvpC.js (removed) 6.2 kB 🟢 -6.2 kB 🟢 -2.01 kB 🟢 -1.76 kB
assets/UserPanel-um7ujxj0.js (new) 6.2 kB 🔴 +6.2 kB 🔴 +2.01 kB 🔴 +1.77 kB
assets/cloudRemoteConfig-Bax_WasV.js (removed) 1.48 kB 🟢 -1.48 kB 🟢 -724 B 🟢 -633 B
assets/cloudRemoteConfig-CA9WU9cI.js (new) 1.48 kB 🔴 +1.48 kB 🔴 +726 B 🔴 +633 B
assets/refreshRemoteConfig-BkbEQUHU.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +522 B 🔴 +473 B
assets/refreshRemoteConfig-D2-rZ-IU.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -521 B 🟢 -478 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-CUrHcLLk.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +990 B
assets/auth-ds2eYkex.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -993 B
assets/SignUpForm-BYFr4VK7.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/SignUpForm-DR3pn9sv.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-BQemlg90.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.09 kB 🔴 +964 B
assets/firebaseAuthStore-DNctu8Z4.js (new) 831 B 🔴 +831 B 🔴 +409 B 🔴 +364 B
assets/firebaseAuthStore-uRM9vxun.js (removed) 831 B 🟢 -831 B 🟢 -410 B 🟢 -362 B
assets/auth-CJBAjccR.js (new) 357 B 🔴 +357 B 🔴 +226 B 🔴 +208 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-DN3o8V_V.js (new) 76.8 kB 🔴 +76.8 kB 🔴 +16.4 kB 🔴 +14.1 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-o5fNL0BQ.js (new) 779 B 🔴 +779 B 🔴 +400 B 🔴 +344 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-BybwjOhS.js (removed) 13.8 kB 🟢 -13.8 kB 🟢 -3.9 kB 🟢 -3.49 kB
assets/ComfyQueueButton-q6F_SUW8.js (new) 13.8 kB 🔴 +13.8 kB 🔴 +3.9 kB 🔴 +3.49 kB
assets/useTerminalTabs-114uM9hL.js (new) 9.87 kB 🔴 +9.87 kB 🔴 +3.41 kB 🔴 +3 kB
assets/useTerminalTabs-CM7gvCPr.js (removed) 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-DfaLWlTM.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +1.01 kB 🔴 +883 B
assets/cloudFeedbackTopbarButton-Dj3xXhiA.js (removed) 1.42 kB 🟢 -1.42 kB 🟢 -748 B 🟢 -658 B
assets/cloudFeedbackTopbarButton-jEyfTBTl.js (new) 1.42 kB 🔴 +1.42 kB 🔴 +747 B 🔴 +661 B
assets/ComfyQueueButton-DkAWCtzz.js (removed) 836 B 🟢 -836 B 🟢 -415 B 🟢 -366 B
assets/ComfyQueueButton-Dq98Z7sU.js (new) 836 B 🔴 +836 B 🔴 +415 B 🔴 +365 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) • 🔴 +550 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CrdHfrAg.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-CZ0vCbMH.js (new) 693 kB 🔴 +693 kB 🔴 +156 kB 🔴 +124 kB
assets/load3dService-BeD7CW_4.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-D3N4JPGo.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +4.63 kB 🔴 +4.1 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-IFDEcVaq.js (new) 13.3 kB 🔴 +13.3 kB 🔴 +4.1 kB 🔴 +3.63 kB
assets/releaseStore-BMYF4FhW.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/releaseStore-BzIGlB9b.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/keybindingService-DBmMScas.js (removed) 7.16 kB 🟢 -7.16 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/keybindingService-znumI8ZB.js (new) 7.16 kB 🔴 +7.16 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/bootstrapStore-CZ6cQzOl.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +872 B 🔴 +797 B
assets/bootstrapStore-DE-3MDWE.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -873 B 🟢 -797 B
assets/userStore-CrGSJFf6.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +720 B 🔴 +673 B
assets/userStore-D88Q0p63.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -720 B 🟢 -635 B
assets/audioService-BLQEelKG.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +849 B 🔴 +725 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-DVPVgZXe.js (new) 803 B 🔴 +803 B 🔴 +406 B 🔴 +357 B
assets/settingStore-COwJPkPn.js (new) 787 B 🔴 +787 B 🔴 +406 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-WRitAZlE.js (new) 779 B 🔴 +779 B 🔴 +399 B 🔴 +352 B
assets/dialogService-ClAW2cSj.js (removed) 768 B 🟢 -768 B 🟢 -391 B 🟢 -343 B
assets/dialogService-gd3ARZI5.js (new) 768 B 🔴 +768 B 🔴 +390 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-D66lMLet.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3d-sRIe8ghh.js (new) 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-cgdjqHcU.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.8 kB
assets/useFeatureFlags-BQqPzonh.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.37 kB 🔴 +1.17 kB
assets/useFeatureFlags-D0ytz326.js (removed) 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-ENO-rSyt.js (new) 3 kB 🔴 +3 kB 🔴 +820 B 🔴 +702 B
assets/subscriptionCheckoutUtil-C2H-DNFA.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -927 B
assets/subscriptionCheckoutUtil-ieCVsVDL.js (new) 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-x2H128UV.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +631 B 🔴 +534 B
assets/useLoad3d-BhPFnPco.js (removed) 902 B 🟢 -902 B 🟢 -444 B 🟢 -396 B
assets/useLoad3d-nCiElcWt.js (new) 902 B 🔴 +902 B 🔴 +443 B 🔴 +396 B
assets/useLoad3dViewer--4YtAS7H.js (new) 881 B 🔴 +881 B 🔴 +429 B 🔴 +383 B
assets/useLoad3dViewer-ClnefIQH.js (removed) 881 B 🟢 -881 B 🟢 -430 B 🟢 -383 B
assets/audioUtils-B5pF_KaC.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -408 B
assets/audioUtils-Com29qyH.js (new) 858 B 🔴 +858 B 🔴 +499 B 🔴 +408 B
assets/useCurrentUser-BQhH_iwd.js (new) 765 B 🔴 +765 B 🔴 +395 B 🔴 +345 B
assets/useCurrentUser-DRTkyzZB.js (removed) 765 B 🟢 -765 B 🟢 -395 B 🟢 -344 B
assets/useWorkspaceSwitch-4W62EUsw.js (new) 688 B 🔴 +688 B 🔴 +350 B 🔴 +298 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-BbKZ97zX.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-Ceje1NXB.js (new) 71.8 kB 🔴 +71.8 kB 🔴 +17.7 kB 🔴 +15.6 kB
assets/WidgetSelect-Cv_-QCao.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-CYsXaOgH.js (new) 46.2 kB 🔴 +46.2 kB 🔴 +8.65 kB 🔴 +7.49 kB
assets/WidgetPainter-DM1OcgWt.js (removed) 32.9 kB 🟢 -32.9 kB 🟢 -7.97 kB 🟢 -7.07 kB
assets/WidgetPainter-wItekbdC.js (new) 32.9 kB 🔴 +32.9 kB 🔴 +7.97 kB 🔴 +7.07 kB
assets/Load3DControls-CiWY2OCm.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 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-zphVmwB3.js (new) 29.3 kB 🔴 +29.3 kB 🔴 +6.16 kB 🔴 +5.41 kB
assets/SubscriptionRequiredDialogContent-8XRYe42v.js (removed) 25.6 kB 🟢 -25.6 kB 🟢 -6.57 kB 🟢 -5.78 kB
assets/SubscriptionRequiredDialogContent-De8EqkYS.js (new) 25.6 kB 🔴 +25.6 kB 🔴 +6.57 kB 🔴 +5.78 kB
assets/Load3dViewerContent-BIjcf-JS.js (removed) 23 kB 🟢 -23 kB 🟢 -5.18 kB 🟢 -4.5 kB
assets/Load3dViewerContent-CHZ0_XiL.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.5 kB
assets/WidgetImageCrop-bnU7EMoQ.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +5.52 kB 🔴 +4.87 kB
assets/WidgetImageCrop-C7SpJUKm.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.51 kB 🟢 -4.86 kB
assets/SubscriptionPanelContentWorkspace-BHJDv1b1.js (removed) 22 kB 🟢 -22 kB 🟢 -5.11 kB 🟢 -4.49 kB
assets/SubscriptionPanelContentWorkspace-BisbY2Kw.js (new) 22 kB 🔴 +22 kB 🔴 +5.11 kB 🔴 +4.5 kB
assets/CurrentUserPopoverWorkspace-BL18BPRL.js (removed) 20.5 kB 🟢 -20.5 kB 🟢 -4.95 kB 🟢 -4.42 kB
assets/CurrentUserPopoverWorkspace-BynzhMyk.js (new) 20.5 kB 🔴 +20.5 kB 🔴 +4.95 kB 🔴 +4.42 kB
assets/SignInContent-D90emXvk.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.77 kB 🟢 -4.17 kB
assets/SignInContent-Dr694Ver.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.77 kB 🔴 +4.17 kB
assets/WidgetInputNumber-DjdL2SxD.js (removed) 18.8 kB 🟢 -18.8 kB 🟢 -4.79 kB 🟢 -4.25 kB
assets/WidgetInputNumber-IkUEYUW3.js (new) 18.8 kB 🔴 +18.8 kB 🔴 +4.79 kB 🔴 +4.25 kB
assets/WidgetRecordAudio-CQyxCJyU.js (new) 17.4 kB 🔴 +17.4 kB 🔴 +5.02 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-thL-JVwV.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.02 kB 🔴 +3.51 kB
assets/load3d-DkY_8m2n.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-D9G3DITQ.js (new) 11 kB 🔴 +11 kB 🔴 +3.25 kB 🔴 +2.93 kB
assets/nodeTemplates-Csa2u_pD.js (removed) 9.34 kB 🟢 -9.34 kB 🟢 -3.27 kB 🟢 -2.87 kB
assets/nodeTemplates-DopGdlh1.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-CUrjYu3r.js (new) 7.37 kB 🔴 +7.37 kB 🔴 +2.31 kB 🔴 +2.01 kB
assets/Load3DConfiguration-C6tq_WiS.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-DMfpLMUb.js (new) 5.54 kB 🔴 +5.54 kB 🔴 +2 kB 🔴 +1.74 kB
assets/onboardingCloudRoutes-B5ZPSApA.js (new) 5.51 kB 🔴 +5.51 kB 🔴 +1.88 kB 🔴 +1.63 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-DLL0E_gD.js (new) 5.42 kB 🔴 +5.42 kB 🔴 +1.91 kB 🔴 +1.68 kB
assets/EditWorkspaceDialogContent-BJjaXajj.js (new) 5.35 kB 🔴 +5.35 kB 🔴 +1.97 kB 🔴 +1.71 kB
assets/EditWorkspaceDialogContent-DpbmoFMD.js (removed) 5.35 kB 🟢 -5.35 kB 🟢 -1.96 kB 🟢 -1.71 kB
assets/ValueControlPopover-BiBQL_A8.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.77 kB 🟢 -1.58 kB
assets/ValueControlPopover-Bv1fcKep.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.77 kB 🔴 +1.59 kB
assets/Preview3d-C-bvpR0z.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-DMeVLkCR.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-DzFLC4xv.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.65 kB 🔴 +1.43 kB
assets/WidgetWithControl-Bt5Chwp9.js (new) 4.17 kB 🔴 +4.17 kB 🔴 +1.82 kB 🔴 +1.62 kB
assets/WidgetWithControl-CzwgdBWm.js (removed) 4.17 kB 🟢 -4.17 kB 🟢 -1.82 kB 🟢 -1.63 kB
assets/LeaveWorkspaceDialogContent-BHV25FH2.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.59 kB 🔴 +1.39 kB
assets/LeaveWorkspaceDialogContent-BzhN5A1A.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.59 kB 🟢 -1.38 kB
assets/RemoveMemberDialogContent--wX8Yk4l.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.54 kB 🔴 +1.35 kB
assets/RemoveMemberDialogContent-CfAQVrpy.js (removed) 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-DV6Mk01D.js (new) 3.97 kB 🔴 +3.97 kB 🔴 +1.56 kB 🔴 +1.37 kB
assets/InviteMemberUpsellDialogContent-B9jLnDCn.js (removed) 3.86 kB 🟢 -3.86 kB 🟢 -1.42 kB 🟢 -1.25 kB
assets/InviteMemberUpsellDialogContent-lGTVLXUG.js (new) 3.86 kB 🔴 +3.86 kB 🔴 +1.42 kB 🔴 +1.25 kB
assets/tierBenefits-CNRA6pnd.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-CqmTpZL8.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-CGrpQ4MO.js (new) 3.14 kB 🔴 +3.14 kB 🔴 +1.11 kB 🔴 +1 kB
assets/GlobalToast-CPvKcfcZ.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.03 kB
assets/GlobalToast-pH5ZfNzw.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-CrWDgtV2.js (new) 2.06 kB 🔴 +2.06 kB 🔴 +946 B 🔴 +824 B
assets/CloudRunButtonWrapper-ConRtxYY.js (removed) 1.72 kB 🟢 -1.72 kB 🟢 -806 B 🟢 -737 B
assets/CloudRunButtonWrapper-Dt4z9cYX.js (new) 1.72 kB 🔴 +1.72 kB 🔴 +807 B 🔴 +744 B
assets/cloudBadges-BN5dXYIT.js (removed) 1.54 kB 🟢 -1.54 kB 🟢 -798 B 🟢 -693 B
assets/cloudBadges-DLUHUa38.js (new) 1.54 kB 🔴 +1.54 kB 🔴 +796 B 🔴 +697 B
assets/previousFullPath-BBd1EFXk.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +650 B 🔴 +578 B
assets/previousFullPath-Kw4BFYte.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -652 B 🟢 -582 B
assets/cloudSubscription-BS9KlyzN.js (removed) 1.37 kB 🟢 -1.37 kB 🟢 -679 B 🟢 -590 B
assets/cloudSubscription-Di1qpVCN.js (new) 1.37 kB 🔴 +1.37 kB 🔴 +677 B 🔴 +587 B
assets/Load3D-Cg6eMBVT.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +518 B 🔴 +457 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-CoRlpRYw.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +551 B 🔴 +492 B
assets/Load3dViewerContent-5w8sruTX.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -489 B 🟢 -432 B
assets/Load3dViewerContent-DB2pbe0k.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +488 B 🔴 +431 B
assets/SubscriptionPanelContentWorkspace-Q9W2xn7s.js (removed) 963 B 🟢 -963 B 🟢 -457 B 🟢 -395 B
assets/SubscriptionPanelContentWorkspace-sNnbqnTp.js (new) 963 B 🔴 +963 B 🔴 +458 B 🔴 +398 B
assets/WidgetLegacy-BFnh_CEx.js (removed) 787 B 🟢 -787 B 🟢 -405 B 🟢 -351 B
assets/WidgetLegacy-Bz-8xHuT.js (new) 787 B 🔴 +787 B 🔴 +405 B 🔴 +352 B
assets/changeTracker-C76U-e3r.js (new) 763 B 🔴 +763 B 🔴 +394 B 🔴 +344 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-DyE984cc.js (new) 761 B 🔴 +761 B 🔴 +375 B 🔴 +318 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

remove(nodeData.widgets ?? [], (w) => !inputGroup.includes(w.name))
remove(nodeData.widgets ?? [], (w) => !!w.slotMetadata?.linked)
if (node.isSubgraphNode()) {
remove(nodeData.widgets ?? [], (vueWidget) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Non-blocking, it does feel like there's a common filter function that could be extracted to avoid the branches here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Was conflicted on this as well. With hindsight, it's definitely cleaner. 👍

DrJKL
DrJKL previously approved these changes 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 409ms -7%
canvas-mouse-sweep: style recalcs 180 173 -4%
canvas-mouse-sweep: layouts 12 12 +0%
canvas-mouse-sweep: task duration 998ms 888ms -11%
dom-widget-clipping: style recalcs 41 42 +3%
dom-widget-clipping: layouts 0 0 +0%
dom-widget-clipping: task duration 354ms 357ms +1%
subgraph-dom-widget-clipping: style recalcs 72 74 +2%
subgraph-dom-widget-clipping: layouts 0 0 +0%
subgraph-dom-widget-clipping: task duration 404ms 413ms +2%
subgraph-idle: style recalcs 122 122 +0%
subgraph-idle: layouts 0 1 +100%
subgraph-idle: task duration 444ms 417ms -6%
subgraph-mouse-sweep: style recalcs 160 172 +7%
subgraph-mouse-sweep: layouts 16 16 +0%
subgraph-mouse-sweep: task duration 833ms 1061ms +27%
Raw data
{
  "timestamp": "2026-03-09T20:07:42.223Z",
  "gitSha": "6a11b19a08dd3f92f20bdbb80737ebd8c301f924",
  "branch": "austin/fix-disabled-app-inputs",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2051.191000000017,
      "styleRecalcs": 127,
      "styleRecalcDurationMs": 28.252,
      "layouts": 1,
      "layoutDurationMs": 0.26599999999999996,
      "taskDurationMs": 445.624,
      "heapDeltaBytes": -2713576
    },
    {
      "name": "canvas-idle",
      "durationMs": 2025.2039999999738,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 20.628999999999994,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 381.24600000000004,
      "heapDeltaBytes": -3523088
    },
    {
      "name": "canvas-idle",
      "durationMs": 2012.7029999999877,
      "styleRecalcs": 122,
      "styleRecalcDurationMs": 21.797,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 398.726,
      "heapDeltaBytes": -3700032
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2085.239999999999,
      "styleRecalcs": 186,
      "styleRecalcDurationMs": 72.52,
      "layouts": 13,
      "layoutDurationMs": 4.007999999999999,
      "taskDurationMs": 1058.8509999999999,
      "heapDeltaBytes": -2410224
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1823.172999999997,
      "styleRecalcs": 167,
      "styleRecalcDurationMs": 47.154,
      "layouts": 12,
      "layoutDurationMs": 3.429,
      "taskDurationMs": 809.9060000000001,
      "heapDeltaBytes": -2958700
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1833.4839999999986,
      "styleRecalcs": 167,
      "styleRecalcDurationMs": 46.120000000000005,
      "layouts": 12,
      "layoutDurationMs": 3.4920000000000004,
      "taskDurationMs": 795.729,
      "heapDeltaBytes": -3909176
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 573.7129999999979,
      "styleRecalcs": 41,
      "styleRecalcDurationMs": 12.959,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 340.61199999999997,
      "heapDeltaBytes": 6233560
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 595.7690000000184,
      "styleRecalcs": 44,
      "styleRecalcDurationMs": 13.485999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 360.308,
      "heapDeltaBytes": 6779968
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 566.7910000000234,
      "styleRecalcs": 42,
      "styleRecalcDurationMs": 12.443,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 371.316,
      "heapDeltaBytes": 7912964
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 611.438000000021,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 15.507,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 417.632,
      "heapDeltaBytes": -8594312
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 593.5499999999934,
      "styleRecalcs": 73,
      "styleRecalcDurationMs": 16.726,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 421.619,
      "heapDeltaBytes": -8647980
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 609.0500000000247,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 14.291,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 398.6580000000001,
      "heapDeltaBytes": -8825748
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1999.0269999999555,
      "styleRecalcs": 121,
      "styleRecalcDurationMs": 21.774,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 404.98400000000004,
      "heapDeltaBytes": -3463004
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2007.1760000000154,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 26.947000000000003,
      "layouts": 1,
      "layoutDurationMs": 0.2739999999999999,
      "taskDurationMs": 419.41499999999996,
      "heapDeltaBytes": -2748928
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2006.6019999999867,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 27.432,
      "layouts": 1,
      "layoutDurationMs": 0.19200000000000012,
      "taskDurationMs": 425.28899999999993,
      "heapDeltaBytes": -4065296
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 2115.7350000000292,
      "styleRecalcs": 180,
      "styleRecalcDurationMs": 75.62200000000001,
      "layouts": 16,
      "layoutDurationMs": 5.656,
      "taskDurationMs": 1256.3580000000002,
      "heapDeltaBytes": -5478264
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1782.3629999999753,
      "styleRecalcs": 160,
      "styleRecalcDurationMs": 52.69499999999999,
      "layouts": 16,
      "layoutDurationMs": 4.871,
      "taskDurationMs": 818.304,
      "heapDeltaBytes": -6141384
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 2029.0089999999736,
      "styleRecalcs": 175,
      "styleRecalcDurationMs": 60.111000000000004,
      "layouts": 16,
      "layoutDurationMs": 4.679,
      "taskDurationMs": 1109.424,
      "heapDeltaBytes": -4995700
    }
  ]
}

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/renderer/extensions/linearMode/LinearControls.vue`:
- Around line 74-82: The loop over unprocessedInputs can hang because the guard
"if (!node) continue" skips advancing unprocessedInputs; update the code in the
loop that processes unprocessedInputs (referencing variables/functions:
unprocessedInputs, node, takeWhile, inputGroup, LGraphEventMode.ALWAYS) by
either removing the unreachable guard altogether if resolveNodeWidget guarantees
node is always defined, or change the guard to advance the array before
continuing (e.g., slice off the first element or otherwise increment the
consumed count) so the loop always makes progress.

In `@src/utils/litegraphUtil.ts`:
- Around line 323-347: In resolveNodeWidget, make the sourceNodeId comparison
type-safe by coercing nodeId to string (e.g., use String(nodeId) ===
w.sourceNodeId) so numeric NodeId values match the widget's string sourceNodeId;
also address the search scope: either document in the function JSDoc that
promoted widgets are only looked for among direct subgraph nodes (graph.nodes)
or extend the search to recursively traverse nested subgraphs (similar to
resolveNode using graph.subgraphs.values()) and update the implementation
accordingly so promoted widgets in nested subgraphs are found.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e29ab1cb-a9df-4a10-bbce-3ded8a2dc817

📥 Commits

Reviewing files that changed from the base of the PR and between 46895ee and d1569fb.

📒 Files selected for processing (3)
  • src/components/builder/AppBuilder.vue
  • src/renderer/extensions/linearMode/LinearControls.vue
  • src/utils/litegraphUtil.ts

@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Mar 9, 2026
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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/renderer/extensions/linearMode/LinearControls.vue`:
- Around line 67-72: The current mapping for unprocessedInputs uses
resolveNodeWidget on entries from appModeStore.selectedInputs but only guards on
widget truthiness, allowing cases where node is undefined to slip through;
update the mapping for unprocessedInputs (the flatMap that calls
resolveNodeWidget) to only return ([[node, widget]] as const) when both node and
widget are truthy (i.e., explicitly check node && widget) so downstream code
that assumes a defined node/widget pair no longer receives undefined entries.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d29805bd-c9b5-4179-8db5-cc83a7a46d28

📥 Commits

Reviewing files that changed from the base of the PR and between d1569fb and 2371ecd.

📒 Files selected for processing (1)
  • src/renderer/extensions/linearMode/LinearControls.vue

@AustinMroz AustinMroz assigned DrJKL and unassigned AustinMroz Mar 9, 2026
@AustinMroz AustinMroz added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch core/1.41 Backport PRs for core 1.41 cloud/1.41 Backport PRs for cloud 1.41 labels Mar 9, 2026
@DrJKL DrJKL assigned AustinMroz and unassigned DrJKL Mar 9, 2026
@AustinMroz AustinMroz merged commit 2ccfb82 into main Mar 9, 2026
45 of 48 checks passed
@AustinMroz AustinMroz deleted the austin/fix-disabled-app-inputs branch March 9, 2026 20:18
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

⚠️ Backport to core/1.41 failed

Reason: Merge conflicts detected during cherry-pick of 2ccfb82

📄 Conflicting files
src/components/builder/AppBuilder.vue
src/renderer/extensions/linearMode/LinearControls.vue
🤖 Prompt for AI Agents
Backport PR #9671 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/9671) to core/1.41.
Cherry-pick merge commit 2ccfb822b4d742801eaeb3969f2fbda768e63811 onto new branch
backport-9671-to-core-1.41 from origin/core/1.41.
Resolve conflicts in: src/components/builder/AppBuilder.vue src/renderer/extensions/linearMode/LinearControls.vue .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport core/1.41] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @AustinMroz

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

⚠️ Backport to cloud/1.41 failed

Reason: Merge conflicts detected during cherry-pick of 2ccfb82

📄 Conflicting files
src/components/builder/AppBuilder.vue
src/renderer/extensions/linearMode/LinearControls.vue
🤖 Prompt for AI Agents
Backport PR #9671 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/9671) to cloud/1.41.
Cherry-pick merge commit 2ccfb822b4d742801eaeb3969f2fbda768e63811 onto new branch
backport-9671-to-cloud-1.41 from origin/cloud/1.41.
Resolve conflicts in: src/components/builder/AppBuilder.vue src/renderer/extensions/linearMode/LinearControls.vue .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport cloud/1.41] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @AustinMroz

github-actions bot pushed a commit that referenced this pull request Mar 9, 2026
As a temporary fix for widgets being incorrectly hidden, #9669 allowed
all disabled widgets to be displayed.

This PR provides a more robust implementation to derive whether the
widget, as would be displayed from the root graph, is disabled.

Potential regression:
- Drag drop handlers are applied on node, not widgets. A subgraph
containing a "Load Image" node, does not allow dragging and dropping an
image onto the subgraphNode in order to load it. Because app mode
widgets would display from the original owning node prior to this PR,
these drag/drop handlers would apply. Placing "Load Image" nodes. I
believe this change makes behavior more consistent, but it warrants
consideration.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9671-Restore-hiding-of-linked-inputs-in-app-mode-31e6d73d365081688e37fbb931f3af68)
by [Unito](https://www.unito.io)
github-actions bot pushed a commit that referenced this pull request Mar 9, 2026
As a temporary fix for widgets being incorrectly hidden, #9669 allowed
all disabled widgets to be displayed.

This PR provides a more robust implementation to derive whether the
widget, as would be displayed from the root graph, is disabled.

Potential regression:
- Drag drop handlers are applied on node, not widgets. A subgraph
containing a "Load Image" node, does not allow dragging and dropping an
image onto the subgraphNode in order to load it. Because app mode
widgets would display from the original owning node prior to this PR,
these drag/drop handlers would apply. Placing "Load Image" nodes. I
believe this change makes behavior more consistent, but it warrants
consideration.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9671-Restore-hiding-of-linked-inputs-in-app-mode-31e6d73d365081688e37fbb931f3af68)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@AustinMroz Successfully backported to #9676

@comfy-pr-bot
Copy link
Member

@AustinMroz Successfully backported to #9677

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Mar 9, 2026
AustinMroz added a commit that referenced this pull request Mar 9, 2026
)

Backport of #9671 to `cloud/1.41`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9677-backport-cloud-1-41-Restore-hiding-of-linked-inputs-in-app-mode-31e6d73d36508192af4ac6a5178d97c4)
by [Unito](https://www.unito.io)

Co-authored-by: AustinMroz <austin@comfy.org>
AustinMroz added a commit that referenced this pull request Mar 9, 2026
Backport of #9671 to `core/1.41`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9676-backport-core-1-41-Restore-hiding-of-linked-inputs-in-app-mode-31e6d73d365081f7bab6ee781b782810)
by [Unito](https://www.unito.io)

Co-authored-by: AustinMroz <austin@comfy.org>
DrJKL pushed a commit that referenced this pull request Mar 10, 2026
As a temporary fix for widgets being incorrectly hidden, #9669 allowed
all disabled widgets to be displayed.

This PR provides a more robust implementation to derive whether the
widget, as would be displayed from the root graph, is disabled.

Potential regression:
- Drag drop handlers are applied on node, not widgets. A subgraph
containing a "Load Image" node, does not allow dragging and dropping an
image onto the subgraphNode in order to load it. Because app mode
widgets would display from the original owning node prior to this PR,
these drag/drop handlers would apply. Placing "Load Image" nodes. I
believe this change makes behavior more consistent, but it warrants
consideration.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9671-Restore-hiding-of-linked-inputs-in-app-mode-31e6d73d365081688e37fbb931f3af68)
by [Unito](https://www.unito.io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cloud/1.41 Backport PRs for cloud 1.41 core/1.41 Backport PRs for core 1.41 size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants