Skip to content

feat: scroll to specific setting when opening settings dialog#8761

Merged
Myestery merged 4 commits intomainfrom
feat/scroll-to-setting
Feb 10, 2026
Merged

feat: scroll to specific setting when opening settings dialog#8761
Myestery merged 4 commits intomainfrom
feat/scroll-to-setting

Conversation

@Myestery
Copy link
Copy Markdown
Contributor

@Myestery Myestery commented Feb 10, 2026

Summary

  • Adds settingId parameter to showSettingsDialog that auto-navigates to the correct category tab, scrolls to the setting, and briefly highlights it with a CSS pulse animation

  • Adds data-setting-id attributes to setting items for stable DOM targeting

  • Adds "Don't show this again" checkbox with "Re-enable in Settings" deep-link to the missing nodes dialog

  • Adds "Re-enable in Settings" deep-link to missing models and blueprint overwrite "Don't show this again" checkboxes

  • Fixes [Feature Request]: Add arg to "go to setting" when opening settings dialog #3437

Test plan

  • pnpm typecheck passes
  • pnpm lint passes
  • Unit tests pass (59/59 including 5 new tests for useSettingUI)
Screen.Recording.2026-02-10.at.01.47.41.mov

┆Issue is synchronized with this Notion page by Unito

@Myestery Myestery requested review from a team as code owners February 10, 2026 00:40
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 10, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 10, 2026

Playwright: ❌ 523 passed, 1 failed · 1 flaky

❌ Failed Tests

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

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 10, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 02/10/2026, 09:52:27 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 10, 2026

Note

Reviews paused

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

Use the following commands to manage reviews:

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

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds "do not ask again" checkboxes and a "Re-enable in Settings" link in multiple dialogs; extends dialog service to accept a settingId, threads scrollToSettingId into settings UI, and implements scrolling + highlight to a target setting item.

Changes

Cohort / File(s) Summary
Dialog content components
src/components/dialog/content/ConfirmationDialogContent.vue, src/components/dialog/content/MissingModelsWarning.vue, src/components/dialog/content/MissingNodesFooter.vue
Replaced PrimeVue Checkbox with native <input type="checkbox">, introduced local doNotAskAgain reactive state, added an i18n-t block with a link-style Button that closes the dialog and opens Settings focused on a specific setting via dialog service.
Settings dialog UI
src/platform/settings/components/SettingDialogContent.vue, src/platform/settings/components/SettingGroup.vue
Added scrollToSettingId prop to settings dialog; on tab change/ mount it finds data-setting-id elements, smooth-scrolls target into view, applies a temporary highlight class, and cleans up watchers. SettingGroup.vue now sets data-setting-id="setting.id" on items.
Settings composable & tests
src/platform/settings/composables/useSettingUI.ts, src/platform/settings/composables/useSettingUI.test.ts
Extended useSettingUI(defaultPanel?, scrollToSettingId?) to resolve default category from scrollToSettingId via getSettingInfo, with fallbacks; added unit tests covering resolution, fallbacks, and precedence with defaultPanel.
Dialog service
src/services/dialogService.ts
Extended showSettingsDialog signature to accept optional settingId?: string; when provided, passes it as scrollToSettingId prop to the Settings dialog.
Localization
src/locales/en/main.json
Added missingModelsDialog.reEnableInSettings and missingModelsDialog.reEnableInSettingsLink translation keys.

Sequence Diagram

sequenceDiagram
    participant User
    participant DialogContent as Dialog Content
    participant DialogService as Dialog Service
    participant SettingsDialog as Settings Dialog
    participant UseSettingUI as useSettingUI
    participant SettingStore as Setting Store
    participant DOM as DOM/Renderer

    User->>DialogContent: Click "Re-enable in Settings"
    DialogContent->>DialogService: showSettingsDialog(panel?, settingId)
    DialogService->>SettingsDialog: open(props: { defaultPanel, scrollToSettingId })
    SettingsDialog->>UseSettingUI: useSettingUI(defaultPanel, scrollToSettingId)
    UseSettingUI->>SettingStore: getSettingInfo(scrollToSettingId)
    SettingStore-->>UseSettingUI: setting info (category)
    UseSettingUI-->>SettingsDialog: resolved defaultCategory
    SettingsDialog->>DOM: nextTick -> find [data-setting-id="..."]
    SettingsDialog->>DOM: scrollIntoView() + add highlight (rgba(255, 223, 93, 0.5))
    DOM-->>SettingsDialog: animationend
    SettingsDialog->>DOM: remove highlight
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I nudged a box, then hopped away,
A little link to show the way.
I closed the note, the settings unfurled,
A gentle scroll — the right toggle twirled.
Hop, click, glow — I found your world.

🚥 Pre-merge checks | ✅ 4 | ❌ 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 (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main feature: adding the ability to scroll to a specific setting when opening the settings dialog.
Description check ✅ Passed The description provides a clear summary, detailed list of changes, linked issue reference, and comprehensive test plan with verification steps.
Linked Issues check ✅ Passed The PR fully implements all objectives from #3437: adds settingId parameter to showSettingsDialog [#8761], exposes scrollToSettingId prop on SettingDialogContent [#8761], implements auto-scrolling/highlighting with data-setting-id attributes [#8761], and integrates with dialog flows [#8761].
Out of Scope Changes check ✅ Passed All changes directly support the feature: dialog service enhancement, settings dialog prop, scroll/highlight behavior, DOM targeting attributes, and UI improvements to missing nodes/models/blueprint dialogs with re-enable links.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/scroll-to-setting

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
src/platform/settings/composables/useSettingUI.test.ts (1)

80-82: Consider using satisfies for the mock store object.

Per project conventions for test mocks, satisfies provides shape validation without widening. However, since useSettingStore returns a full Pinia store type with many properties, the partial cast here is pragmatic and acceptable.

Based on learnings: "when creating test helper functions that construct mock objects implementing an interface, prefer using satisfies for shape validation instead of type assertions."


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
Copy Markdown

github-actions bot commented Feb 10, 2026

Bundle Size Report

Summary

  • Raw size: 19.8 MB baseline 19.8 MB — 🔴 +5.33 kB
  • Gzip: 4.23 MB baseline 4.23 MB — 🔴 +1.63 kB
  • Brotli: 3.28 MB baseline 3.28 MB — 🔴 +1.38 kB
  • Bundles: 235 current • 235 baseline • 165 added / 165 removed

Category Glance
Other 🔴 +4.26 kB (7.21 MB) · Data & Services 🔴 +1.03 kB (2.12 MB) · Vendor & Third-Party 🔴 +16 B (8.77 MB) · Views & Navigation 🔴 +10 B (68.8 kB) · Panels & Settings 🔴 +9 B (451 kB) · UI Components 🔴 +8 B (36.6 kB) · + 5 more

Per-category breakdown
App Entry Points — 22.2 kB (baseline 22.2 kB) • 🔴 +1 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-DnZqVvan.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +7.2 kB 🔴 +6.25 kB
assets/index-CnAo3rGA.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -7.2 kB 🟢 -6.27 kB

Status: 1 added / 1 removed

Graph Workspace — 855 kB (baseline 855 kB) • 🔴 +1 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-D5hH2I7P.js (new) 855 kB 🔴 +855 kB 🔴 +184 kB 🔴 +140 kB
assets/GraphView-By_RS8_F.js (removed) 855 kB 🟢 -855 kB 🟢 -184 kB 🟢 -140 kB

Status: 1 added / 1 removed

Views & Navigation — 68.8 kB (baseline 68.8 kB) • 🔴 +10 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-Bm7gxK7v.js (new) 15.4 kB 🔴 +15.4 kB 🔴 +3.31 kB 🔴 +2.8 kB
assets/CloudSurveyView-BdIRpBDP.js (removed) 15.4 kB 🟢 -15.4 kB 🟢 -3.31 kB 🟢 -2.8 kB
assets/CloudLoginView-DByuqY3U.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +2.94 kB 🔴 +2.58 kB
assets/CloudLoginView-wH7uiwle.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.94 kB 🟢 -2.58 kB
assets/UserCheckView-Cm4CDD8n.js (new) 8.38 kB 🔴 +8.38 kB 🔴 +2.21 kB 🔴 +1.92 kB
assets/UserCheckView-D5KfPPVv.js (removed) 8.37 kB 🟢 -8.37 kB 🟢 -2.22 kB 🟢 -1.92 kB
assets/CloudSignupView-CVhG2R5y.js (new) 7.46 kB 🔴 +7.46 kB 🔴 +2.35 kB 🔴 +2.06 kB
assets/CloudSignupView-D8CgZXFt.js (removed) 7.46 kB 🟢 -7.46 kB 🟢 -2.35 kB 🟢 -2.05 kB
assets/CloudLayoutView-DeU8dzaP.js (new) 6.45 kB 🔴 +6.45 kB 🔴 +2.11 kB 🔴 +1.84 kB
assets/CloudLayoutView-DovxF9ED.js (removed) 6.45 kB 🟢 -6.45 kB 🟢 -2.12 kB 🟢 -1.83 kB
assets/CloudForgotPasswordView-CksHhnQX.js (new) 5.57 kB 🔴 +5.57 kB 🔴 +1.95 kB 🔴 +1.72 kB
assets/CloudForgotPasswordView-Dc_OkevL.js (removed) 5.57 kB 🟢 -5.57 kB 🟢 -1.95 kB 🟢 -1.71 kB
assets/CloudAuthTimeoutView-C447mCEq.js (new) 4.92 kB 🔴 +4.92 kB 🔴 +1.78 kB 🔴 +1.56 kB
assets/CloudAuthTimeoutView-CZuDev_c.js (removed) 4.92 kB 🟢 -4.92 kB 🟢 -1.79 kB 🟢 -1.56 kB
assets/CloudSubscriptionRedirectView-BjA9QiOT.js (new) 4.72 kB 🔴 +4.72 kB 🔴 +1.79 kB 🔴 +1.58 kB
assets/CloudSubscriptionRedirectView-BFzZH4j4.js (removed) 4.72 kB 🟢 -4.72 kB 🟢 -1.79 kB 🟢 -1.58 kB
assets/UserSelectView-CPvHU9dk.js (new) 4.46 kB 🔴 +4.46 kB 🔴 +1.62 kB 🔴 +1.45 kB
assets/UserSelectView-C3Z6oycK.js (removed) 4.46 kB 🟢 -4.46 kB 🟢 -1.62 kB 🟢 -1.45 kB
assets/CloudSorryContactSupportView-BDyiwiwq.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +541 B 🔴 +472 B
assets/CloudSorryContactSupportView-DgbtPnDH.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -539 B 🟢 -470 B
assets/layout-CPwjy2Ng.js (removed) 296 B 🟢 -296 B 🟢 -224 B 🟢 -190 B
assets/layout-D_vjaczl.js (new) 296 B 🔴 +296 B 🔴 +224 B 🔴 +188 B

Status: 11 added / 11 removed

Panels & Settings — 451 kB (baseline 451 kB) • 🔴 +9 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WorkspacePanel-jxPJ-iu0.js (new) 26.8 kB 🔴 +26.8 kB 🔴 +5.63 kB 🔴 +4.93 kB
assets/WorkspacePanel-DMC8y_FF.js (removed) 26.8 kB 🟢 -26.8 kB 🟢 -5.63 kB 🟢 -4.95 kB
assets/SecretsPanel-BmH7dcXd.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.29 kB 🔴 +4.64 kB
assets/SecretsPanel-C0OP9cTh.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.29 kB 🟢 -4.64 kB
assets/LegacyCreditsPanel-CXQXINDC.js (new) 20.8 kB 🔴 +20.8 kB 🔴 +5.61 kB 🔴 +4.94 kB
assets/LegacyCreditsPanel-C3xE_sX0.js (removed) 20.8 kB 🟢 -20.8 kB 🟢 -5.61 kB 🟢 -4.93 kB
assets/SubscriptionPanel-CwPklxMd.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.76 kB 🔴 +4.19 kB
assets/SubscriptionPanel-DBGMLSZm.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.76 kB 🟢 -4.21 kB
assets/KeybindingPanel-CVdt3A5-.js (new) 12.6 kB 🔴 +12.6 kB 🔴 +3.63 kB 🔴 +3.22 kB
assets/KeybindingPanel-B5jMim5V.js (removed) 12.6 kB 🟢 -12.6 kB 🟢 -3.64 kB 🟢 -3.22 kB
assets/ExtensionPanel-CjJHdSNS.js (new) 9.51 kB 🔴 +9.51 kB 🔴 +2.69 kB 🔴 +2.4 kB
assets/ExtensionPanel-CbZfu_6O.js (removed) 9.51 kB 🟢 -9.51 kB 🟢 -2.7 kB 🟢 -2.38 kB
assets/AboutPanel-D7ilzcX0.js (new) 8.62 kB 🔴 +8.62 kB 🔴 +2.45 kB 🔴 +2.22 kB
assets/AboutPanel-CXSRrjNS.js (removed) 8.62 kB 🟢 -8.62 kB 🟢 -2.46 kB 🟢 -2.23 kB
assets/ServerConfigPanel-CB2T4wGb.js (new) 6.65 kB 🔴 +6.65 kB 🔴 +2.16 kB 🔴 +1.98 kB
assets/ServerConfigPanel-M2DN0Som.js (removed) 6.65 kB 🟢 -6.65 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/UserPanel-DeKXjZak.js (new) 6.29 kB 🔴 +6.29 kB 🔴 +2.03 kB 🔴 +1.78 kB
assets/UserPanel-C-A6hzCh.js (removed) 6.29 kB 🟢 -6.29 kB 🟢 -2.04 kB 🟢 -1.79 kB
assets/cloudRemoteConfig-Bg0O3TMY.js (removed) 1.45 kB 🟢 -1.45 kB 🟢 -719 B 🟢 -623 B
assets/cloudRemoteConfig-fVFCASpm.js (new) 1.45 kB 🔴 +1.45 kB 🔴 +717 B 🔴 +620 B
assets/refreshRemoteConfig-BEnpvbm5.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -521 B 🟢 -462 B
assets/refreshRemoteConfig-CumpoefE.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +519 B 🔴 +477 B
assets/config-B7YkIQwB.js 1.01 kB 1.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BFiRprDH.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Bkk-nJFW.js 37.1 kB 37.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CYcjX6cS.js 27.7 kB 27.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D4S6euyr.js 23.7 kB 23.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D5H4G8lj.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Di62KFUs.js 23 kB 23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DP0akR3m.js 27 kB 27 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-jTyPnDBE.js 27.7 kB 27.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-paLi_Ryq.js 28.8 kB 28.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-rfYpR18m.js 32.8 kB 32.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-YKn27p-6.js 26.8 kB 26.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 11 added / 11 removed

User & Accounts — 16 kB (baseline 16 kB) • 🔴 +4 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/PasswordFields-KhNVfxGF.js (new) 4.51 kB 🔴 +4.51 kB 🔴 +1.36 kB 🔴 +1.2 kB
assets/PasswordFields-BGrbyWzK.js (removed) 4.51 kB 🟢 -4.51 kB 🟢 -1.36 kB 🟢 -1.2 kB
assets/auth-BYwbjSAz.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +991 B
assets/auth-D5eS50D8.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -993 B
assets/SignUpForm-Bfjq9FZU.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.1 kB
assets/SignUpForm-4mzMYWvB.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.13 kB
assets/UpdatePasswordContent-3WtjRt1L.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +1.08 kB 🔴 +956 B
assets/UpdatePasswordContent-DfL6efkO.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -1.08 kB 🟢 -952 B
assets/WorkspaceProfilePic-Dzy0Q-Jz.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +821 B 🔴 +736 B
assets/WorkspaceProfilePic-B0BztYjc.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -819 B 🟢 -729 B
assets/firebaseAuthStore-B29SAoC4.js (removed) 803 B 🟢 -803 B 🟢 -400 B 🟢 -360 B
assets/firebaseAuthStore-B7FnrIV4.js (new) 803 B 🔴 +803 B 🔴 +401 B 🔴 +361 B
assets/auth-BcYj4lNZ.js (removed) 317 B 🟢 -317 B 🟢 -205 B 🟢 -178 B
assets/auth-COjrUbkJ.js (new) 317 B 🔴 +317 B 🔴 +206 B 🔴 +199 B

Status: 7 added / 7 removed

Editors & Dialogs — 751 B (baseline 751 B) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-DILof39g.js (removed) 751 B 🟢 -751 B 🟢 -391 B 🟢 -339 B
assets/useSubscriptionDialog-DwAFhrca.js (new) 751 B 🔴 +751 B 🔴 +391 B 🔴 +337 B

Status: 1 added / 1 removed

UI Components — 36.6 kB (baseline 36.6 kB) • 🔴 +8 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useTerminalTabs-BLlLtxN_.js (new) 9.86 kB 🔴 +9.86 kB 🔴 +3.41 kB 🔴 +3.01 kB
assets/useTerminalTabs-B01B2cDy.js (removed) 9.86 kB 🟢 -9.86 kB 🟢 -3.41 kB 🟢 -3 kB
assets/TopbarBadge-v6SBNH3V.js (new) 7.52 kB 🔴 +7.52 kB 🔴 +1.82 kB 🔴 +1.61 kB
assets/TopbarBadge-Brnv1--t.js (removed) 7.52 kB 🟢 -7.52 kB 🟢 -1.82 kB 🟢 -1.6 kB
assets/ComfyQueueButton-DXmab0F3.js (new) 7.17 kB 🔴 +7.17 kB 🔴 +2.32 kB 🔴 +2.07 kB
assets/ComfyQueueButton-Dp2YZxZY.js (removed) 7.17 kB 🟢 -7.17 kB 🟢 -2.32 kB 🟢 -2.07 kB
assets/Button-BjxLY_s6.js (new) 3 kB 🔴 +3 kB 🔴 +1.21 kB 🔴 +1.06 kB
assets/Button-LGYfUhES.js (removed) 3 kB 🟢 -3 kB 🟢 -1.21 kB 🟢 -1.07 kB
assets/SubscribeButton-MpwekKgk.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +1.02 kB 🔴 +883 B
assets/SubscribeButton-BrNGJVkP.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -1.02 kB 🟢 -898 B
assets/WidgetButton-X65niES7.js (new) 1.84 kB 🔴 +1.84 kB 🔴 +878 B 🔴 +773 B
assets/WidgetButton-DD1rzr3h.js (removed) 1.84 kB 🟢 -1.84 kB 🟢 -877 B 🟢 -775 B
assets/cloudFeedbackTopbarButton-Bzp7bhtp.js (new) 1.61 kB 🔴 +1.61 kB 🔴 +866 B 🔴 +769 B
assets/cloudFeedbackTopbarButton-C-oSvgqD.js (removed) 1.61 kB 🟢 -1.61 kB 🟢 -867 B 🟢 -742 B
assets/CloudBadge-CZQKAt1t.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +609 B 🔴 +531 B
assets/CloudBadge-CZ8xfCLL.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -603 B 🟢 -531 B
assets/UserAvatar-C0eF2MUp.js (new) 1.17 kB 🔴 +1.17 kB 🔴 +617 B 🔴 +527 B
assets/UserAvatar-B50esQ9A.js (removed) 1.17 kB 🟢 -1.17 kB 🟢 -621 B 🟢 -530 B
assets/ComfyQueueButton-BK5Vp1J3.js (removed) 808 B 🟢 -808 B 🟢 -403 B 🟢 -361 B
assets/ComfyQueueButton-CVp7t6HZ.js (new) 808 B 🔴 +808 B 🔴 +404 B 🔴 +358 B

Status: 10 added / 10 removed

Data & Services — 2.12 MB (baseline 2.12 MB) • 🔴 +1.03 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-8UspErmZ.js (new) 1.34 MB 🔴 +1.34 MB 🔴 +303 kB 🔴 +235 kB
assets/dialogService-tUruPFAn.js (removed) 1.34 MB 🟢 -1.34 MB 🟢 -303 kB 🟢 -234 kB
assets/api-DCXvx4KR.js (new) 646 kB 🔴 +646 kB 🔴 +146 kB 🔴 +116 kB
assets/api-o-bkRHXT.js (removed) 646 kB 🟢 -646 kB 🟢 -146 kB 🟢 -116 kB
assets/load3dService-D0djKODM.js (new) 91.2 kB 🔴 +91.2 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/load3dService-WeYC5VvA.js (removed) 91.2 kB 🟢 -91.2 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/systemStatsStore-CRdxQvy_.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -4.27 kB 🟢 -3.75 kB
assets/systemStatsStore-k_lV5WiE.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +4.27 kB 🔴 +3.75 kB
assets/releaseStore-BDE4MY-K.js (removed) 7.99 kB 🟢 -7.99 kB 🟢 -2.22 kB 🟢 -1.96 kB
assets/releaseStore-COuRlEYU.js (new) 7.99 kB 🔴 +7.99 kB 🔴 +2.23 kB 🔴 +1.96 kB
assets/keybindingService-BJhhSymy.js (removed) 6.57 kB 🟢 -6.57 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/keybindingService-D8ww1Y5k.js (new) 6.57 kB 🔴 +6.57 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/dialogStore-BNo1twEf.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/dialogStore-DMbX_9kz.js (new) 4.1 kB 🔴 +4.1 kB 🔴 +1.24 kB 🔴 +1.09 kB
assets/serverConfigStore-CG8z6LWz.js (new) 2.32 kB 🔴 +2.32 kB 🔴 +791 B 🔴 +690 B
assets/serverConfigStore-DB58Z5s2.js (removed) 2.32 kB 🟢 -2.32 kB 🟢 -791 B 🟢 -690 B
assets/bootstrapStore-BT_uW-_h.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +884 B 🔴 +814 B
assets/bootstrapStore-FLoevNKB.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -884 B 🟢 -810 B
assets/userStore--QbTB8Bf.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -721 B 🟢 -634 B
assets/userStore-BjFsH8Bv.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +722 B 🔴 +633 B
assets/audioService-5Kipf8i3.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +849 B 🔴 +729 B
assets/audioService-GnLkeTWh.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -845 B 🟢 -728 B
assets/releaseStore-CWFRLzh8.js (new) 775 B 🔴 +775 B 🔴 +395 B 🔴 +348 B
assets/releaseStore-VqgKleEc.js (removed) 775 B 🟢 -775 B 🟢 -394 B 🟢 -343 B
assets/workflowDraftStore-DomoAZvI.js (removed) 751 B 🟢 -751 B 🟢 -390 B 🟢 -342 B
assets/workflowDraftStore-DqMiQjCb.js (new) 751 B 🔴 +751 B 🔴 +391 B 🔴 +344 B
assets/dialogService-B8_rVA5X.js (new) 740 B 🔴 +740 B 🔴 +382 B 🔴 +339 B
assets/dialogService-DupAfx6X.js (removed) 740 B 🟢 -740 B 🟢 -382 B 🟢 -338 B

Status: 14 added / 14 removed

Utilities & Hooks — 237 kB (baseline 237 kB) • 🔴 +1 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-B_vtRNjX.js (new) 177 kB 🔴 +177 kB 🔴 +38.9 kB 🔴 +32.4 kB
assets/useConflictDetection-B2Uox3aX.js (removed) 177 kB 🟢 -177 kB 🟢 -38.9 kB 🟢 -32.4 kB
assets/useLoad3d-cbLnKHcD.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.64 kB 🔴 +3.21 kB
assets/useLoad3d-eta0lOQd.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -3.64 kB 🟢 -3.21 kB
assets/useLoad3dViewer-DcIwmQiy.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.16 kB 🟢 -2.8 kB
assets/useLoad3dViewer-DdZxgbHv.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.16 kB 🔴 +2.8 kB
assets/colorUtil-DOjEWuNN.js (removed) 7 kB 🟢 -7 kB 🟢 -2.14 kB 🟢 -1.9 kB
assets/colorUtil-nTJzhaFU.js (new) 7 kB 🔴 +7 kB 🔴 +2.14 kB 🔴 +1.9 kB
assets/subscriptionCheckoutUtil-CbynqwqO.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/subscriptionCheckoutUtil-CpT7lNlI.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.57 kB 🔴 +1.38 kB
assets/useFeatureFlags-CXFYyS6-.js (new) 3.34 kB 🔴 +3.34 kB 🔴 +1.05 kB 🔴 +903 B
assets/useFeatureFlags-Do8ISgMk.js (removed) 3.34 kB 🟢 -3.34 kB 🟢 -1.05 kB 🟢 -906 B
assets/useWorkspaceUI-CwYCkS3L.js (removed) 3.15 kB 🟢 -3.15 kB 🟢 -889 B 🟢 -767 B
assets/useWorkspaceUI-DOUi9p3q.js (new) 3.15 kB 🔴 +3.15 kB 🔴 +893 B 🔴 +767 B
assets/useSubscriptionCredits-aAiMrzs5.js (new) 2.75 kB 🔴 +2.75 kB 🔴 +1.03 kB 🔴 +901 B
assets/useSubscriptionCredits-DNIgG5n8.js (removed) 2.75 kB 🟢 -2.75 kB 🟢 -1.04 kB 🟢 -906 B
assets/useExternalLink-CDXqjxAN.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -774 B 🟢 -682 B
assets/useExternalLink-DelqiHqs.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +772 B 🔴 +682 B
assets/useCopyToClipboard-CmgSfBCz.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -671 B 🟢 -552 B
assets/useCopyToClipboard-DJyhFXKk.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +669 B 🔴 +563 B
assets/useErrorHandling-BSNNw2gz.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -555 B 🟢 -479 B
assets/useErrorHandling-Dc8ZQiv4.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +555 B 🔴 +478 B
assets/useLoad3d-aF9koaAq.js (removed) 874 B 🟢 -874 B 🟢 -436 B 🟢 -391 B
assets/useLoad3d-Cbny-rBM.js (new) 874 B 🔴 +874 B 🔴 +436 B 🔴 +395 B
assets/audioUtils-DdLnw_2v.js (new) 858 B 🔴 +858 B 🔴 +499 B 🔴 +404 B
assets/audioUtils-Dv6Tc0zT.js (removed) 858 B 🟢 -858 B 🟢 -498 B 🟢 -421 B
assets/useLoad3dViewer-BdDqnDY3.js (removed) 853 B 🟢 -853 B 🟢 -422 B 🟢 -379 B
assets/useLoad3dViewer-D8srM0do.js (new) 853 B 🔴 +853 B 🔴 +422 B 🔴 +384 B
assets/useCurrentUser-CpFlXoTz.js (removed) 737 B 🟢 -737 B 🟢 -385 B 🟢 -337 B
assets/useCurrentUser-CZU9Fn6G.js (new) 737 B 🔴 +737 B 🔴 +386 B 🔴 +339 B
assets/_plugin-vue_export-helper-D53b894U.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-BoEUYO9X.js 466 B 466 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-YzPqYQr3.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/networkUtil-DSA9UCpE.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SkeletonUtils-CWsb-x0f.js 133 B 133 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 15 added / 15 removed

Vendor & Third-Party — 8.77 MB (baseline 8.77 MB) • 🔴 +16 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-primevue-BrYQO8Nm.js (removed) 1.74 MB 🟢 -1.74 MB 🟢 -313 kB 🟢 -190 kB
assets/vendor-primevue-DaJr0o4X.js (new) 1.74 MB 🔴 +1.74 MB 🔴 +313 kB 🔴 +190 kB
assets/vendor-other-C1doMZFE.js (removed) 1.55 MB 🟢 -1.55 MB 🟢 -323 kB 🟢 -257 kB
assets/vendor-other-D4K1Nzp3.js (new) 1.55 MB 🔴 +1.55 MB 🔴 +323 kB 🔴 +257 kB
assets/vendor-vue-core-DnRx4pHA.js (new) 312 kB 🔴 +312 kB 🔴 +77.2 kB 🔴 +65.2 kB
assets/vendor-vue-core-BBP9kkTE.js (removed) 312 kB 🟢 -312 kB 🟢 -77.2 kB 🟢 -65.2 kB
assets/vendor-reka-ui-BfJUTI-3.js (new) 240 kB 🔴 +240 kB 🔴 +49 kB 🔴 +40.8 kB
assets/vendor-reka-ui-BBMmji0g.js (removed) 240 kB 🟢 -240 kB 🟢 -49 kB 🟢 -40.8 kB
assets/vendor-i18n-cn-CKf2l.js (removed) 132 kB 🟢 -132 kB 🟢 -27.6 kB 🟢 -23.7 kB
assets/vendor-i18n-Djj6y3EO.js (new) 132 kB 🔴 +132 kB 🔴 +27.6 kB 🔴 +23.7 kB
assets/vendor-vueuse-BNJllOi7.js (removed) 111 kB 🟢 -111 kB 🟢 -27.4 kB 🟢 -24 kB
assets/vendor-vueuse-CfaD9iqz.js (new) 111 kB 🔴 +111 kB 🔴 +27.4 kB 🔴 +23.9 kB
assets/vendor-axios-qYA_aG5-.js 71.6 kB 71.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-DPuwexxf.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-firebase-CLEC0CcJ.js 842 kB 842 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-CLFqBOQ2.js 102 kB 102 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-BVA5kbUC.js 183 kB 183 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Q97wQk05.js 1.8 MB 1.8 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-eGUDVAYp.js 632 kB 632 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-0CcpQUK2.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-B7dXz571.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-BTzCBa7h.js 110 kB 110 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

Other — 7.21 MB (baseline 7.21 MB) • 🔴 +4.26 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/i18n-CWEc8DNw.js (new) 486 kB 🔴 +486 kB 🔴 +93.3 kB 🔴 +72.9 kB
assets/i18n-DV6qgRXy.js (removed) 486 kB 🟢 -486 kB 🟢 -93.3 kB 🟢 -72.9 kB
assets/groupNode-DPCw2EvP.js (new) 72.2 kB 🔴 +72.2 kB 🔴 +17.8 kB 🔴 +15.7 kB
assets/groupNode-vLKZpQI-.js (removed) 72.2 kB 🟢 -72.2 kB 🟢 -17.8 kB 🟢 -15.7 kB
assets/core-B5NqqQvn.js (new) 72.1 kB 🔴 +72.1 kB 🔴 +18.6 kB 🔴 +16 kB
assets/core-BpLuoKGl.js (removed) 72.1 kB 🟢 -72.1 kB 🟢 -18.6 kB 🟢 -16 kB
assets/WidgetSelect-COtRf9eD.js (new) 57.5 kB 🔴 +57.5 kB 🔴 +12.2 kB 🔴 +10.5 kB
assets/WidgetSelect-CViBr2cl.js (removed) 57.5 kB 🟢 -57.5 kB 🟢 -12.2 kB 🟢 -10.5 kB
assets/SubscriptionRequiredDialogContentWorkspace-BDyyqxUf.js (new) 46 kB 🔴 +46 kB 🔴 +8.6 kB 🔴 +7.46 kB
assets/SubscriptionRequiredDialogContentWorkspace-DWsIExMR.js (removed) 46 kB 🟢 -46 kB 🟢 -8.59 kB 🟢 -7.42 kB
assets/SettingDialogContent-Bpo1l07J.js (new) 31.9 kB 🔴 +31.9 kB 🔴 +8.34 kB 🔴 +7.32 kB
assets/Load3DControls-B8ZbeUYm.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.64 kB
assets/Load3DControls-ZqHfv-U8.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.65 kB
assets/SettingDialogContent-DNzeJWsK.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -8.01 kB 🟢 -7.05 kB
assets/SubscriptionRequiredDialogContent-CzYdhb0j.js (new) 26.2 kB 🔴 +26.2 kB 🔴 +6.58 kB 🔴 +5.78 kB
assets/SubscriptionRequiredDialogContent-DJCe1S4y.js (removed) 26.1 kB 🟢 -26.1 kB 🟢 -6.58 kB 🟢 -5.77 kB
assets/Load3dViewerContent-CsXxOhVh.js (new) 23.1 kB 🔴 +23.1 kB 🔴 +5.2 kB 🔴 +4.51 kB
assets/Load3dViewerContent-DzV88rde.js (removed) 23.1 kB 🟢 -23.1 kB 🟢 -5.2 kB 🟢 -4.52 kB
assets/WidgetImageCrop-DP4bhJIE.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +5.52 kB 🔴 +4.87 kB
assets/WidgetImageCrop-Coc8iE1Z.js (removed) 22.3 kB 🟢 -22.3 kB 🟢 -5.52 kB 🟢 -4.86 kB
assets/SubscriptionPanelContentWorkspace-DWp8puwH.js (new) 21.8 kB 🔴 +21.8 kB 🔴 +5.18 kB 🔴 +4.58 kB
assets/SubscriptionPanelContentWorkspace-DvktweiM.js (removed) 21.8 kB 🟢 -21.8 kB 🟢 -5.18 kB 🟢 -4.59 kB
assets/CurrentUserPopoverWorkspace-UKEHJL3e.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.08 kB 🔴 +4.51 kB
assets/CurrentUserPopoverWorkspace-CWEl1cWc.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.08 kB 🟢 -4.52 kB
assets/FormItem-CtmdezrC.js (new) 20.2 kB 🔴 +20.2 kB 🔴 +4.86 kB 🔴 +4.25 kB
assets/FormItem-lN4rtFKq.js (removed) 20.2 kB 🟢 -20.2 kB 🟢 -4.87 kB 🟢 -4.25 kB
assets/SignInContent-kuDcxKLy.js (new) 19 kB 🔴 +19 kB 🔴 +4.82 kB 🔴 +4.21 kB
assets/SignInContent-DKqLHWVU.js (removed) 19 kB 🟢 -19 kB 🟢 -4.82 kB 🟢 -4.21 kB
assets/WidgetRecordAudio-DK7_13Df.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.95 kB 🔴 +4.43 kB
assets/WidgetRecordAudio--sbI9-Ff.js (removed) 17.3 kB 🟢 -17.3 kB 🟢 -4.96 kB 🟢 -4.43 kB
assets/MissingModelsWarning-BjODCsw_.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +4.7 kB 🔴 +4.17 kB
assets/Load3D-D87Qg8dw.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.05 kB 🔴 +3.53 kB
assets/Load3D-Czq4vcby.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.04 kB 🟢 -3.53 kB
assets/MissingModelsWarning-CXmNfZYq.js (removed) 16.1 kB 🟢 -16.1 kB 🟢 -4.41 kB 🟢 -3.92 kB
assets/WidgetInputNumber-C3Q_UtJG.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +4.26 kB 🔴 +3.79 kB
assets/WidgetInputNumber-DKMtwwvk.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -4.26 kB 🟢 -3.81 kB
assets/load3d-Ax5w4byl.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +4.21 kB 🔴 +3.64 kB
assets/load3d-BNxf7yOU.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.2 kB 🟢 -3.64 kB
assets/LazyImage-BKZ5ai9P.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.79 kB 🔴 +3.34 kB
assets/LazyImage-A5coqNc9.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.8 kB 🟢 -3.35 kB
assets/AudioPreviewPlayer-Cos8rxOo.js (new) 10.9 kB 🔴 +10.9 kB 🔴 +3.21 kB 🔴 +2.86 kB
assets/AudioPreviewPlayer-dt-P1Lx_.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -3.21 kB 🟢 -2.86 kB
assets/NodeConflictDialogContent-PpRjnYUZ.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.36 kB 🔴 +2.06 kB
assets/NodeConflictDialogContent-CcASYpO8.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.36 kB 🟢 -2.08 kB
assets/changeTracker-B8RZPuwA.js (new) 9.4 kB 🔴 +9.4 kB 🔴 +2.9 kB 🔴 +2.56 kB
assets/changeTracker-DCTwHaDz.js (removed) 9.4 kB 🟢 -9.4 kB 🟢 -2.9 kB 🟢 -2.56 kB
assets/nodeTemplates-BeqgzYbx.js (new) 9.34 kB 🔴 +9.34 kB 🔴 +3.28 kB 🔴 +2.88 kB
assets/nodeTemplates-CMqQLNDM.js (removed) 9.34 kB 🟢 -9.34 kB 🟢 -3.28 kB 🟢 -2.88 kB
assets/SelectValue-2uCozGCo.js (new) 8.94 kB 🔴 +8.94 kB 🔴 +2.27 kB 🔴 +1.99 kB
assets/SelectValue-CCewhfpC.js (removed) 8.94 kB 🟢 -8.94 kB 🟢 -2.27 kB 🟢 -1.99 kB
assets/InviteMemberDialogContent-Cj1B7FYM.js (new) 7.92 kB 🔴 +7.92 kB 🔴 +2.56 kB 🔴 +2.23 kB
assets/InviteMemberDialogContent-7TlyuPt0.js (removed) 7.92 kB 🟢 -7.92 kB 🟢 -2.56 kB 🟢 -2.24 kB
assets/WidgetWithControl-BjxsXeUR.js (new) 7.04 kB 🔴 +7.04 kB 🔴 +2.63 kB 🔴 +2.35 kB
assets/WidgetWithControl-Cl4Lmqbg.js (removed) 7.04 kB 🟢 -7.04 kB 🟢 -2.64 kB 🟢 -2.35 kB
assets/MissingNodesFooter-Bkyzwufn.js (new) 6.73 kB 🔴 +6.73 kB 🔴 +2.29 kB 🔴 +2.06 kB
assets/Load3DConfiguration-C7IZZP6G.js (removed) 6.36 kB 🟢 -6.36 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/Load3DConfiguration-pzPnB6i7.js (new) 6.36 kB 🔴 +6.36 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/MissingNodesContent-BpLUuoSZ.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +2.09 kB 🔴 +1.85 kB
assets/MissingNodesContent-CxLVVRF5.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -2.09 kB 🟢 -1.85 kB
assets/CreateWorkspaceDialogContent-oUmIy9T5.js (new) 5.55 kB 🔴 +5.55 kB 🔴 +2 kB 🔴 +1.75 kB
assets/CreateWorkspaceDialogContent-ChQJ1OTx.js (removed) 5.55 kB 🟢 -5.55 kB 🟢 -2 kB 🟢 -1.75 kB
assets/EditWorkspaceDialogContent-X3LzLDX1.js (new) 5.35 kB 🔴 +5.35 kB 🔴 +1.96 kB 🔴 +1.71 kB
assets/EditWorkspaceDialogContent-B-ISOZFw.js (removed) 5.35 kB 🟢 -5.35 kB 🟢 -1.96 kB 🟢 -1.7 kB
assets/ValueControlPopover-DMar1SvI.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.78 kB 🔴 +1.59 kB
assets/ValueControlPopover-B_isVTzZ.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.78 kB 🟢 -1.59 kB
assets/Preview3d-BM4VX7j2.js (new) 4.83 kB 🔴 +4.83 kB 🔴 +1.58 kB 🔴 +1.38 kB
assets/Preview3d-_JkAe4sG.js (removed) 4.83 kB 🟢 -4.83 kB 🟢 -1.58 kB 🟢 -1.37 kB
assets/CancelSubscriptionDialogContent-BG7kXznX.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.79 kB 🔴 +1.57 kB
assets/CancelSubscriptionDialogContent-CiyX20V0.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.79 kB 🟢 -1.57 kB
assets/MissingNodesFooter-CqEjfSUk.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.78 kB 🟢 -1.57 kB
assets/AnimationControls-5H1Cl0xI.js (new) 4.61 kB 🔴 +4.61 kB 🔴 +1.6 kB 🔴 +1.41 kB
assets/AnimationControls-ti0mlVCp.js (removed) 4.61 kB 🟢 -4.61 kB 🟢 -1.6 kB 🟢 -1.41 kB
assets/DeleteWorkspaceDialogContent-CMRJHD7n.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.64 kB 🔴 +1.43 kB
assets/DeleteWorkspaceDialogContent-DX7Y5pyy.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.64 kB 🟢 -1.43 kB
assets/LeaveWorkspaceDialogContent-Csg0ZeYB.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.59 kB 🔴 +1.38 kB
assets/LeaveWorkspaceDialogContent-xCw4A2xy.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.59 kB 🟢 -1.38 kB
assets/RemoveMemberDialogContent-Cb_Qa35W.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/RemoveMemberDialogContent-xEVgMF_B.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.54 kB 🟢 -1.34 kB
assets/RevokeInviteDialogContent-zFNtWMhk.js (new) 3.98 kB 🔴 +3.98 kB 🔴 +1.55 kB 🔴 +1.37 kB
assets/RevokeInviteDialogContent-Bdv2oQKe.js (removed) 3.97 kB 🟢 -3.97 kB 🟢 -1.55 kB 🟢 -1.36 kB
assets/WidgetBoundingBox-C24zoQ9e.js (new) 3.95 kB 🔴 +3.95 kB 🔴 +997 B 🔴 +862 B
assets/WidgetBoundingBox-q5CDrAhg.js (removed) 3.94 kB 🟢 -3.94 kB 🟢 -994 B 🟢 -859 B
assets/WidgetGalleria-DLvy9VuC.js (new) 3.61 kB 🔴 +3.61 kB 🔴 +1.39 kB 🔴 +1.25 kB
assets/WidgetGalleria-0KIS99zo.js (removed) 3.61 kB 🟢 -3.61 kB 🟢 -1.4 kB 🟢 -1.26 kB
assets/Slider-Cx21HyuR.js (new) 3.52 kB 🔴 +3.52 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/Slider-BplQh-9e.js (removed) 3.52 kB 🟢 -3.52 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/saveMesh-BrzYL6Q5.js (new) 3.43 kB 🔴 +3.43 kB 🔴 +1.47 kB 🔴 +1.31 kB
assets/saveMesh-DyQN3WFQ.js (removed) 3.43 kB 🟢 -3.43 kB 🟢 -1.48 kB 🟢 -1.31 kB
assets/WidgetTextarea-Dy6kiUCU.js (new) 3.14 kB 🔴 +3.14 kB 🔴 +1.3 kB 🔴 +1.14 kB
assets/WidgetTextarea-Bpv3VZfp.js (removed) 3.14 kB 🟢 -3.14 kB 🟢 -1.3 kB 🟢 -1.15 kB
assets/cloudSessionCookie-CqQXRikg.js (new) 3.12 kB 🔴 +3.12 kB 🔴 +1.1 kB 🔴 +968 B
assets/cloudSessionCookie-r5Cs-6ar.js (removed) 3.12 kB 🟢 -3.12 kB 🟢 -1.09 kB 🟢 -951 B
assets/WidgetImageCompare-1sy6l8-0.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.15 kB 🔴 +994 B
assets/WidgetImageCompare-B3jINlVY.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.15 kB 🟢 -996 B
assets/GlobalToast-DmVUxPOb.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.03 kB
assets/GlobalToast-DxVUCNqm.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.03 kB
assets/WidgetColorPicker-cHF-AvMS.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +1.23 kB 🔴 +1.11 kB
assets/WidgetColorPicker-BqmrCeg7.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -1.23 kB 🟢 -1.12 kB
assets/WidgetMarkdown-BP5qyCxZ.js (new) 2.88 kB 🔴 +2.88 kB 🔴 +1.22 kB 🔴 +1.07 kB
assets/WidgetMarkdown-CPEFuqeh.js (removed) 2.88 kB 🟢 -2.88 kB 🟢 -1.22 kB 🟢 -1.07 kB
assets/ApiNodesSignInContent-B27xi3hx.js (new) 2.69 kB 🔴 +2.69 kB 🔴 +1.05 kB 🔴 +922 B
assets/ApiNodesSignInContent-Ci5JOCeQ.js (removed) 2.69 kB 🟢 -2.69 kB 🟢 -1.05 kB 🟢 -956 B
assets/WidgetToggleSwitch-C_ZY5gwY.js (new) 2.5 kB 🔴 +2.5 kB 🔴 +1.09 kB 🔴 +990 B
assets/WidgetToggleSwitch-BvHa1rRy.js (removed) 2.5 kB 🟢 -2.5 kB 🟢 -1.09 kB 🟢 -981 B
assets/ImportFailedNodeContent-DLHL7-Dp.js (new) 2.48 kB 🔴 +2.48 kB 🔴 +970 B 🔴 +825 B
assets/ImportFailedNodeContent-4nRCLp8Z.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -973 B 🟢 -829 B
assets/NodeConflictFooter-iusxgYXs.js (new) 2.37 kB 🔴 +2.37 kB 🔴 +1.03 kB 🔴 +911 B
assets/NodeConflictFooter-CHi3Bou1.js (removed) 2.37 kB 🟢 -2.37 kB 🟢 -1.03 kB 🟢 -911 B
assets/MediaVideoTop-BXztKli7.js (new) 2.23 kB 🔴 +2.23 kB 🔴 +938 B 🔴 +805 B
assets/MediaVideoTop-CrUCDNPi.js (removed) 2.23 kB 🟢 -2.23 kB 🟢 -936 B 🟢 -799 B
assets/WidgetChart-Dz-i33ej.js (new) 2.21 kB 🔴 +2.21 kB 🔴 +951 B 🔴 +823 B
assets/WidgetChart-DwIDuha7.js (removed) 2.21 kB 🟢 -2.21 kB 🟢 -951 B 🟢 -824 B
assets/SubscribeToRun-BF1RjlX3.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +1.01 kB 🔴 +896 B
assets/SubscribeToRun-CAk_K6fr.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -1.01 kB 🟢 -894 B
assets/WidgetLayoutField-D00Eftv9.js (new) 1.95 kB 🔴 +1.95 kB 🔴 +876 B 🔴 +764 B
assets/WidgetLayoutField-BOWhzFLm.js (removed) 1.95 kB 🟢 -1.95 kB 🟢 -882 B 🟢 -761 B
assets/ImportFailedNodeFooter-B-3M9GrU.js (new) 1.88 kB 🔴 +1.88 kB 🔴 +869 B 🔴 +759 B
assets/ImportFailedNodeFooter-CX4Dlksw.js (removed) 1.88 kB 🟢 -1.88 kB 🟢 -867 B 🟢 -751 B
assets/WidgetInputText-Bu--9yi8.js (new) 1.86 kB 🔴 +1.86 kB 🔴 +873 B 🔴 +799 B
assets/WidgetInputText-BMQuA4sv.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -873 B 🟢 -803 B
assets/Media3DTop-BRnZCRYc.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +898 B 🔴 +769 B
assets/Media3DTop-BoSRvGOk.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -897 B 🟢 -765 B
assets/SettingDialogHeader-COMd9Nu_.js (new) 1.8 kB 🔴 +1.8 kB 🔴 +894 B 🔴 +801 B
assets/SettingDialogHeader-DmLNnFDL.js (removed) 1.8 kB 🟢 -1.8 kB 🟢 -896 B 🟢 -810 B
assets/BaseViewTemplate-XnByb1vt.js (new) 1.78 kB 🔴 +1.78 kB 🔴 +926 B 🔴 +807 B
assets/BaseViewTemplate-BPhntKB3.js (removed) 1.78 kB 🟢 -1.78 kB 🟢 -926 B 🟢 -810 B
assets/MediaImageTop-C6_liv9g.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +878 B 🔴 +752 B
assets/MediaImageTop-DpNsEU03.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -877 B 🟢 -748 B
assets/CloudRunButtonWrapper-Ivl7Nymi.js (new) 1.69 kB 🔴 +1.69 kB 🔴 +795 B 🔴 +727 B
assets/CloudRunButtonWrapper-CMtlgmF-.js (removed) 1.69 kB 🟢 -1.69 kB 🟢 -797 B 🟢 -716 B
assets/signInSchema-BvDrU2OO.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -564 B 🟢 -521 B
assets/signInSchema-DGcb0nfu.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +563 B 🔴 +520 B
assets/MediaAudioTop-o68UYik3.js (new) 1.43 kB 🔴 +1.43 kB 🔴 +762 B 🔴 +635 B
assets/MediaAudioTop-p4Ev072O.js (removed) 1.43 kB 🟢 -1.43 kB 🟢 -760 B 🟢 -631 B
assets/cloudBadges-CftW8RfO.js (new) 1.38 kB 🔴 +1.38 kB 🔴 +716 B 🔴 +625 B
assets/cloudBadges-CSsEKQMK.js (removed) 1.38 kB 🟢 -1.38 kB 🟢 -718 B 🟢 -624 B
assets/cloudSubscription-fLAspBWI.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +669 B 🔴 +578 B
assets/cloudSubscription-oc_Rfjwy.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -668 B 🟢 -580 B
assets/PanelTemplate-Co9CIrpq.js (new) 1.2 kB 🔴 +1.2 kB 🔴 +613 B 🔴 +535 B
assets/PanelTemplate-CIz8rKRB.js (removed) 1.2 kB 🟢 -1.2 kB 🟢 -614 B 🟢 -538 B
assets/MissingNodesHeader-DJHfQF1y.js (new) 1.09 kB 🔴 +1.09 kB 🔴 +583 B 🔴 +503 B
assets/MissingNodesHeader-BzeTTUc-.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -579 B 🟢 -503 B
assets/NodeConflictHeader-DXOchtCS.js (new) 1.09 kB 🔴 +1.09 kB 🔴 +568 B 🔴 +475 B
assets/Load3D-BieNHpBw.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -511 B 🟢 -454 B
assets/Load3D-DeOlbwnt.js (new) 1.09 kB 🔴 +1.09 kB 🔴 +508 B 🔴 +455 B
assets/NodeConflictHeader-DNyr6T7i.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -566 B 🟢 -477 B
assets/ImportFailedNodeHeader-CBKT1iLw.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +554 B 🔴 +474 B
assets/ImportFailedNodeHeader-iw2hd0OF.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -552 B 🟢 -470 B
assets/nightlyBadges-CkjTn10W.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -545 B 🟢 -484 B
assets/nightlyBadges-n0SUuvP-.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +545 B 🔴 +480 B
assets/Load3dViewerContent-325a0nSh.js (new) 1.01 kB 🔴 +1.01 kB 🔴 +480 B 🔴 +428 B
assets/Load3dViewerContent-EqzQAmrt.js (removed) 1.01 kB 🟢 -1.01 kB 🟢 -480 B 🟢 -426 B
assets/SubscriptionPanelContentWorkspace-BO9im73u.js (new) 945 B 🔴 +945 B 🔴 +447 B 🔴 +391 B
assets/SubscriptionPanelContentWorkspace-DO3GPn3P.js (removed) 945 B 🟢 -945 B 🟢 -448 B 🟢 -391 B
assets/ComfyOrgHeader-DiJp3aEW.js (new) 910 B 🔴 +910 B 🔴 +497 B 🔴 +462 B
assets/ComfyOrgHeader-Cb9w2YJJ.js (removed) 909 B 🟢 -909 B 🟢 -496 B 🟢 -434 B
assets/SettingDialogContent-CBaOVf9a.js (removed) 887 B 🟢 -887 B 🟢 -432 B 🟢 -381 B
assets/SettingDialogContent-DApTJFuY.js (new) 887 B 🔴 +887 B 🔴 +431 B 🔴 +381 B
assets/changeTracker-BfjihGrd.js (new) 772 B 🔴 +772 B 🔴 +396 B 🔴 +347 B
assets/changeTracker-HP9kBVxl.js (removed) 772 B 🟢 -772 B 🟢 -394 B 🟢 -342 B
assets/graphHasMissingNodes-CBFiOFVG.js (new) 761 B 🔴 +761 B 🔴 +373 B 🔴 +319 B
assets/graphHasMissingNodes-CxjcllCz.js (removed) 761 B 🟢 -761 B 🟢 -374 B 🟢 -323 B
assets/WidgetLegacy-BGE7fAno.js (removed) 760 B 🟢 -760 B 🟢 -396 B 🟢 -345 B
assets/WidgetLegacy-MYWcLi_f.js (new) 760 B 🔴 +760 B 🔴 +397 B 🔴 +344 B
assets/widgetTypes-BRoEExOD.js (new) 393 B 🔴 +393 B 🔴 +257 B 🔴 +240 B
assets/widgetTypes-CYQJBz0f.js (removed) 393 B 🟢 -393 B 🟢 -260 B 🟢 -245 B
assets/WidgetInputNumber-Bj6qgRUR.js (new) 392 B 🔴 +392 B 🔴 +230 B 🔴 +193 B
assets/WidgetInputNumber-DPZwg1zF.js (removed) 392 B 🟢 -392 B 🟢 -231 B 🟢 -210 B
assets/SettingDialogHeader-CGDof64L.js (new) 345 B 🔴 +345 B 🔴 +211 B 🔴 +203 B
assets/SettingDialogHeader-CocNh-Zu.js (removed) 345 B 🟢 -345 B 🟢 -211 B 🟢 -200 B
assets/src-Dzy5HNIt.js (new) 251 B 🔴 +251 B 🔴 +213 B 🔴 +194 B
assets/src-Q7PYLmIC.js (removed) 251 B 🟢 -251 B 🟢 -213 B 🟢 -188 B
assets/i18n-B_6pcUW6.js (removed) 199 B 🟢 -199 B 🟢 -162 B 🟢 -141 B
assets/i18n-F0vBCZTp.js (new) 199 B 🔴 +199 B 🔴 +160 B 🔴 +137 B
assets/WidgetBoundingBox-Dlh3X2pa.js (new) 131 B 🔴 +131 B 🔴 +100 B 🔴 +95 B
assets/WidgetBoundingBox-DNUpZ6Xj.js (removed) 131 B 🟢 -131 B 🟢 -100 B 🟢 -91 B
assets/auto-zCGpezkl.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-CzGozBag.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BaWekgk-.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BDDnqSnY.js 15.8 kB 15.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BoYLZfP6.js 15.7 kB 15.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BQBGh0Ya.js 15.5 kB 15.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BRoxhQgK.js 15.8 kB 15.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_sqX4RY.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cd2uuEbd.js 17.1 kB 17.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CXPUqoOz.js 16.6 kB 16.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-ijoJFfEv.js 16.3 kB 16.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-UTYbUnOi.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-YFdvkJDc.js 18.4 kB 18.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/constants-BQ60oUwg.js 579 B 579 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BUf7VGLC.js 185 kB 185 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CjzUpUX1.js 153 kB 153 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CkipomGw.js 160 kB 160 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CsePyJ5r.js 116 kB 116 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DfAYnku2.js 166 kB 166 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DMTXZerX.js 132 kB 132 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DnyQnLJu.js 137 kB 137 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Do99CjaL.js 135 kB 135 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DUNVKwSK.js 117 kB 117 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-PNDNfdBt.js 132 kB 132 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-q45wM3mC.js 140 kB 140 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BowH1VL1.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CdnhWEKS.js 332 kB 332 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CDV1thn5.js 405 kB 405 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Cee5fyaK.js 330 kB 330 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-COWMGhrk.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CY0w_Hvy.js 406 kB 406 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DdTkBm1y.js 354 kB 354 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DQZh9C3Z.js 442 kB 442 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DRM1T2Jx.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DUz23YQ5.js 375 kB 375 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Dxn6e0-h.js 365 kB 365 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-D7OXsRO9.js 665 B 665 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-Ca2S-reV.js 1.87 kB 1.87 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/telemetry-C9AnI0k5.js 226 B 226 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-BYdQ-wbS.js 245 B 245 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-DZ2L2V2o.js 445 B 445 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-DyQHILEf.js 1.1 kB 1.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 88 added / 88 removed

Copy link
Copy Markdown
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: 3

🤖 Fix all issues with AI agents
In `@src/components/dialog/content/ConfirmationDialogContent.vue`:
- Around line 34-46: Replace the raw <button> used for the "re-enable" link in
ConfirmationDialogContent.vue (inside the doNotAskAgain block) with the shared
TextButton (or IconTextButton if an icon is needed) so theming and focus styles
are consistent: import TextButton from the button components, add it to the
component's components map, and replace the element with <TextButton
class="underline cursor-pointer p-0 text-sm text-muted-foreground"
`@click`="openBlueprintOverwriteSetting">{{
t('missingModelsDialog.reEnableInSettingsLink') }}</TextButton> (preserve the
i18n-t template/link slot logic and the `@click` handler on
openBlueprintOverwriteSetting). Ensure you remove the raw button-specific
attributes (bg-transparent, border-none) since the TextButton handles styling.

In `@src/components/dialog/content/MissingModelsWarning.vue`:
- Around line 21-27: Replace the raw <button> in MissingModelsWarning.vue's
template slot "#link" with the repo's shared TextButton (or IconTextButton)
component to preserve design-system styles and focus behavior: import TextButton
from the button components directory at the top of the component, register it in
the components section, then swap the <button ...
`@click`="openShowMissingModelsSetting">...</button> for <TextButton
`@click`="openShowMissingModelsSetting">{{
t('missingModelsDialog.reEnableInSettingsLink') }}</TextButton> (remove the
manual classes applied to the raw button and rely on TextButton's styling);
ensure the click handler name openShowMissingModelsSetting remains unchanged so
behavior is preserved.

In `@src/components/dialog/content/MissingNodesFooter.vue`:
- Around line 5-9: The PrimeVue <Checkbox> usage (v-model="doNotAskAgain",
input-id="doNotAskAgainNodes") should be replaced with a native input element
bound to the same model: add an <input id="doNotAskAgainNodes"
v-model="doNotAskAgain" type="checkbox"> and apply Tailwind classes (e.g., h-4
w-4 cursor-pointer) to match the project's style pattern (see
ImageLayerSettingsPanel.vue for reference), and remove the corresponding
PrimeVue Checkbox import (the imported symbol "Checkbox") from the component
imports.
🧹 Nitpick comments (1)
src/platform/settings/components/SettingDialogContent.vue (1)

206-232: One-shot scroll attempt may silently miss if the panel DOM isn't ready by nextTick.

The settled flag makes this a single-attempt scroll. If the target element hasn't rendered by the first nextTick (e.g., due to lazy tab rendering, async content, or transitions), el will be null and the scroll/highlight silently skips with no retry.

Since useSettingUI already resolves the correct category up front and the tab is set immediately, this should work for the common case. But consider using requestAnimationFrame or a short setTimeout as a more resilient alternative to nextTick for DOM-dependent operations after tab transitions:

Suggested resilience improvement
       void nextTick(() => {
         stopScrollWatch()
-        const el = document.querySelector(
-          `[data-setting-id="${CSS.escape(scrollToSettingId)}"]`
-        )
-        if (!el) return
-        el.scrollIntoView({ behavior: 'smooth', block: 'center' })
-        el.classList.add('setting-highlight')
-        el.addEventListener(
-          'animationend',
-          () => el.classList.remove('setting-highlight'),
-          { once: true }
-        )
+        requestAnimationFrame(() => {
+          const el = document.querySelector(
+            `[data-setting-id="${CSS.escape(scrollToSettingId)}"]`
+          )
+          if (!el) return
+          el.scrollIntoView({ behavior: 'smooth', block: 'center' })
+          el.classList.add('setting-highlight')
+          el.addEventListener(
+            'animationend',
+            () => el.classList.remove('setting-highlight'),
+            { once: true }
+          )
+        })
       })

Copy link
Copy Markdown
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

🤖 Fix all issues with AI agents
In `@src/components/dialog/content/ConfirmationDialogContent.vue`:
- Around line 30-32: The template contains a native <label> element in
ConfirmationDialogContent.vue with an invalid PrimeVue prop
severity="secondary"; remove the severity="secondary" attribute from the label
(the element rendering the doNotAskAgain text) so the markup is valid and relies
on CSS/classes for styling instead.

In `@src/platform/settings/components/SettingDialogContent.vue`:
- Around line 206-232: The watcher around tabValue currently sets settled=true
immediately and calls stopScrollWatch() before confirming the target element
exists, causing retries to be skipped; modify the logic in the scroll-to block
that uses scrollToSettingId, settled, stopScrollWatch, watch(tabValue,...),
nextTick and onBeforeUnmount so that settled and stopScrollWatch() are only
set/called after
document.querySelector(`[data-setting-id="${CSS.escape(scrollToSettingId)}"]`)
successfully returns an element; keep the smooth scroll, add/remove of
'setting-highlight', and the animationend listener the same, but if the element
is not found, do not mark settled or stop the watcher so it can retry on
subsequent tabValue changes (and still clean up with onBeforeUnmount).
🧹 Nitpick comments (2)
src/components/dialog/content/MissingNodesFooter.vue (1)

96-98: Minor inconsistency: watcher-based persistence vs. onBeforeUnmount.

MissingModelsWarning.vue persists doNotAskAgain in onBeforeUnmount, while this component uses a watch that writes to the store on every toggle. Both work, but the watcher approach means an unnecessary store write when the user unchecks. Consider aligning with the onBeforeUnmount pattern for consistency, or keeping this if the intent is to persist immediately.

src/platform/settings/composables/useSettingUI.test.ts (1)

45-51: Consider importing SettingParams instead of defining a local mock interface.

MockSettingParams duplicates the shape of SettingParams. Importing the real type keeps the mock aligned and avoids drift if SettingParams changes.

Suggested change
-interface MockSettingParams {
-  id: string
-  name: string
-  type: string
-  defaultValue: unknown
-  category?: string[]
-}
+import type { SettingParams } from '@/platform/settings/types'

Then use Partial<SettingParams> or Pick<SettingParams, 'id' | 'name' | 'type' | 'defaultValue'> for the mock record type.

Based on learnings: "In TypeScript test files, avoid duplicating interface/type definitions. Import real type definitions from the component modules under test."

Add settingId parameter to showSettingsDialog that auto-navigates to the
correct category tab, scrolls to the setting, and briefly highlights it.

Add "don't show again" checkboxes with "re-enable in Settings" links to
missing nodes, missing models, and blueprint overwrite dialogs.
@Myestery Myestery force-pushed the feat/scroll-to-setting branch from 6f679a8 to 699693d Compare February 10, 2026 02:22
if (settled) return
settled = true
void nextTick(() => {
stopScrollWatch()
Copy link
Copy Markdown
Member

@benceruleanlu benceruleanlu Feb 10, 2026

Choose a reason for hiding this comment

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

stopScrollWatch() is called before verifying the target element exists. With immediate: true, this can run before lazy tab content is in the DOM, so querySelector may return null and we never retry.

type="checkbox"
class="h-4 w-4 cursor-pointer"
/>
<label for="doNotAskAgain" severity="secondary">{{
Copy link
Copy Markdown
Member

@benceruleanlu benceruleanlu Feb 10, 2026

Choose a reason for hiding this comment

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

nit: severity="secondary" is a PrimeVue-style prop, but this is a native <label>.

@@ -0,0 +1,139 @@
import { createPinia, setActivePinia } from 'pinia'
Copy link
Copy Markdown
Member

@benceruleanlu benceruleanlu Feb 10, 2026

Choose a reason for hiding this comment

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

tests please?

benceruleanlu
benceruleanlu previously approved these changes Feb 10, 2026
Myestery and others added 2 commits February 10, 2026 13:31
- Remove invalid severity="secondary" from native <label> element
- Fix scroll watcher premature settlement by only stopping after element is found
@Myestery Myestery merged commit e411a10 into main Feb 10, 2026
28 of 29 checks passed
@Myestery Myestery deleted the feat/scroll-to-setting branch February 10, 2026 22:00
viva-jinyi added a commit that referenced this pull request Feb 15, 2026
## Summary
Restores the scroll-to-setting and highlight animation that was lost
during the BaseModalLayout migration in #8270. Originally implemented in
#8761.

## Changes
- **What**: Re-added scroll-into-view + pulse highlight logic and CSS
animation to `SettingDialog.vue`, ported from the deleted
`SettingDialogContent.vue`

Fixes #3437

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8833-bugfix-Restore-scroll-to-setting-in-SettingDialog-3056d73d36508161abeee047a40dc1e5)
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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request]: Add arg to "go to setting" when opening settings dialog

2 participants