Skip to content

Conversation

@DrJKL
Copy link
Contributor

@DrJKL DrJKL commented Oct 30, 2025

Summary

Indicate to the user that we're hard at work parsing their JSON behind the scenes.

Changes

  • What: Turn on the loading spinner while processing a workflow
  • What else: Refactored the code around figuring out how to grab the data from the file to make this easier

┆Issue is synchronized with this Notion page by Unito

@github-actions
Copy link

github-actions bot commented Oct 30, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/02/2025, 12:52:33 AM UTC

📈 Summary

  • Total Tests: 497
  • Passed: 462 ✅
  • Failed: 0
  • Flaky: 5 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 453 / ❌ 0 / ⚠️ 5 / ⏭️ 30
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

github-actions bot commented Oct 30, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/02/2025, 12:40:23 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Oct 30, 2025

Bundle Size Report

Summary

  • Raw size: 12.2 MB baseline 12.2 MB — 🟢 -1.91 kB
  • Gzip: 2.48 MB baseline 2.48 MB — 🔴 +180 B
  • Brotli: 1.95 MB baseline 1.95 MB — 🔴 +134 B
  • Bundles: 58 current • 58 baseline • 17 added / 17 removed

Category Glance
App Entry Points 🟢 -1.93 kB (3.27 MB) · Vendor & Third-Party 🔴 +20 B (5.32 MB) · Other ⚪ 0 B (2.55 MB) · Graph Workspace ⚪ 0 B (724 kB) · Panels & Settings ⚪ 0 B (295 kB) · UI Components ⚪ 0 B (12.3 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.27 MB (baseline 3.27 MB) • 🟢 -1.93 kB

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Bi09VAX8.js (removed) 2.89 MB 🟢 -2.89 MB 🟢 -596 kB 🟢 -450 kB
assets/index-C9ug8KAY.js (new) 2.89 MB 🔴 +2.89 MB 🔴 +596 kB 🔴 +450 kB
assets/index-BrtceXfI.js (removed) 381 kB 🟢 -381 kB 🟢 -76.6 kB 🟢 -62.1 kB
assets/index-DqeA2a1v.js (new) 381 kB 🔴 +381 kB 🔴 +76.6 kB 🔴 +62 kB
assets/index-CTaa0S1t.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +575 B 🔴 +486 B
assets/index-DBIBylGG.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -579 B 🟢 -488 B

Status: 3 added / 3 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-bdYMVU06.js (new) 724 kB 🔴 +724 kB 🔴 +141 kB 🔴 +109 kB
assets/GraphView-VwPi3-WD.js (removed) 724 kB 🟢 -724 kB 🟢 -141 kB 🟢 -109 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-Ch1pkuDl.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.48 kB 🟢 -2.17 kB
assets/UserSelectView-DbSXWA0c.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.48 kB 🔴 +2.17 kB

Status: 1 added / 1 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CreditsPanel-CmNi8_e_.js (removed) 22.9 kB 🟢 -22.9 kB 🟢 -5.45 kB 🟢 -4.76 kB
assets/CreditsPanel-I-X1LeGT.js (new) 22.9 kB 🔴 +22.9 kB 🔴 +5.45 kB 🔴 +4.76 kB
assets/KeybindingPanel-C-cJokqn.js (removed) 15.3 kB 🟢 -15.3 kB 🟢 -3.78 kB 🟢 -3.33 kB
assets/KeybindingPanel-D63kek7I.js (new) 15.3 kB 🔴 +15.3 kB 🔴 +3.78 kB 🔴 +3.33 kB
assets/ExtensionPanel-CEASoXqq.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -2.84 kB 🟢 -2.49 kB
assets/ExtensionPanel-nfT1Ke00.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +2.84 kB 🔴 +2.49 kB
assets/AboutPanel-CDw-1T9q.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +2.68 kB 🔴 +2.34 kB
assets/AboutPanel-DYchuq2m.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -2.68 kB 🟢 -2.34 kB
assets/ServerConfigPanel-DBKElmZ1.js (removed) 8.23 kB 🟢 -8.23 kB 🟢 -2.18 kB 🟢 -1.91 kB
assets/ServerConfigPanel-DnBzA-t8.js (new) 8.23 kB 🔴 +8.23 kB 🔴 +2.18 kB 🔴 +1.91 kB
assets/UserPanel-CTnLkwK2.js (new) 7.94 kB 🔴 +7.94 kB 🔴 +2.07 kB 🔴 +1.81 kB
assets/UserPanel-DZA3Z3Lk.js (removed) 7.94 kB 🟢 -7.94 kB 🟢 -2.08 kB 🟢 -1.81 kB
assets/settings-B-df0dZe.js 20.7 kB 20.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CI6OKvJn.js 22.9 kB 22.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CXGVj_nD.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DfQ6dSJj.js 31.6 kB 31.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DJ2QgDzm.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRNLPMG6.js 23.7 kB 23.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DVVycxDc.js 19.9 kB 19.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-G6Dybj1b.js 24.1 kB 24.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-M6_GZccG.js 26 kB 26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-CFmfcjGp.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -2.78 kB 🟢 -2.45 kB
assets/ComfyQueueButton-D6RZThde.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +2.78 kB 🔴 +2.45 kB
assets/UserAvatar.vue_vue_type_script_setup_true_lang-C9bSkTC5.js 1.12 kB 1.12 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

Data & Services — 11.4 kB (baseline 11.4 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-BizHoD0A.js (new) 8.61 kB 🔴 +8.61 kB 🔴 +2.08 kB 🔴 +1.78 kB
assets/keybindingService-BZ3bhRRQ.js (removed) 8.61 kB 🟢 -8.61 kB 🟢 -2.08 kB 🟢 -1.78 kB
assets/serverConfigStore-BXxesUPS.js (new) 2.79 kB 🔴 +2.79 kB 🔴 +889 B 🔴 +782 B
assets/serverConfigStore-DT2Lu933.js (removed) 2.79 kB 🟢 -2.79 kB 🟢 -893 B 🟢 -783 B

Status: 2 added / 2 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 5.32 MB (baseline 5.32 MB) • 🔴 +20 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-DTJaZ2wB.js (new) 3.22 MB 🔴 +3.22 MB 🔴 +685 kB 🔴 +549 kB
assets/vendor-other-TH7eWvUO.js (removed) 3.22 MB 🟢 -3.22 MB 🟢 -685 kB 🟢 -548 kB
assets/vendor-tiptap-B1kYNUlJ.js (removed) 232 kB 🟢 -232 kB 🟢 -45.7 kB 🟢 -37.7 kB
assets/vendor-tiptap-BovKm-bo.js (new) 232 kB 🔴 +232 kB 🔴 +45.7 kB 🔴 +37.7 kB
assets/vendor-vue-CE9hyBb0.js (new) 92.4 kB 🔴 +92.4 kB 🔴 +23.9 kB 🔴 +20.8 kB
assets/vendor-vue-PgD4wNjE.js (removed) 92.4 kB 🟢 -92.4 kB 🟢 -23.9 kB 🟢 -20.8 kB
assets/vendor-primevue-PESgPnbc.js 517 B 517 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-JDoAqkQm.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 3 added / 3 removed

Other — 2.55 MB (baseline 2.55 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/commands-B2KZRBmX.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Bw-ckyga.js 13.9 kB 13.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_NmM85I.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuozCW4W.js 14 kB 14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DGfVUJCR.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-dOJNDogK.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiE551e.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Fw7mvqSy.js 13.1 kB 13.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-FXnO1W4Q.js 13.2 kB 13.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bgu6_Hvd.js 59.5 kB 59.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bv0L0qvp.js 93 kB 93 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C3Doz3n_.js 67.6 kB 67.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C7eBl607.js 70.7 kB 70.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CHiV9ds2.js 76.4 kB 76.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CIc79Nts.js 68.5 kB 68.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DK5LmuBm.js 58.8 kB 58.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-J1nit7cj.js 66.3 kB 66.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-W97XgvAQ.js 80.4 kB 80.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-8Ef8lY1m.js 196 kB 196 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BdF8EiZl.js 200 kB 200 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bv9Y8Cvp.js 229 kB 229 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-cMdB_wHv.js 179 kB 179 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CvNWbbtX.js 194 kB 194 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CwDWxzVz.js 215 kB 215 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CyPAVHpA.js 191 kB 191 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D6QTD6bJ.js 181 kB 181 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DKn6VmRJ.js 192 kB 192 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

@DrJKL DrJKL force-pushed the drjkl/feat/loading branch from ce6d9f9 to b31926b Compare October 30, 2025 19:54
@DrJKL DrJKL force-pushed the drjkl/feat/loading branch from b62ce76 to c202ce9 Compare November 1, 2025 20:41
@github-actions
Copy link

github-actions bot commented Nov 1, 2025

🔧 Auto-fixes Applied

This PR has been automatically updated to fix linting and formatting issues.

⚠️ Important: Your local branch is now behind. Run git pull before making additional changes to avoid conflicts.

Changes made:

  • ESLint auto-fixes
  • Prettier formatting

@DrJKL DrJKL force-pushed the drjkl/feat/loading branch from 3f69e50 to 9f8abe9 Compare November 1, 2025 21:44
@DrJKL DrJKL changed the title WIP: Loading state for dropped workflows Feat: Loading state while loading dropped workflows Nov 1, 2025
@DrJKL DrJKL marked this pull request as ready for review November 1, 2025 23:49
@dosubot dosubot bot added the size:XL This PR changes 500-999 lines, ignoring generated files. label Nov 1, 2025
@DrJKL DrJKL requested review from arjansingh and simula-r November 1, 2025 23:50
@DrJKL DrJKL force-pushed the drjkl/feat/loading branch from 709496d to ecff6d5 Compare November 1, 2025 23:50
@DrJKL DrJKL requested a review from AustinMroz November 1, 2025 23:56
@DrJKL DrJKL added the claude-review Add to trigger a PR code review from Claude Code label Nov 1, 2025
Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

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

Comprehensive PR Review

This review is generated by Claude. It may not always be accurate, as with human reviewers. If you believe that any of the comments are invalid or incorrect, please state why for each. For others, please implement the changes in one way or another.

Review Summary

PR: Feat: Loading state while loading dropped workflows (#6464)
Impact: 287 additions, 263 deletions across 8 files

Issue Distribution

  • Critical: 0
  • High: 3
  • Medium: 6
  • Low: 3

Category Breakdown

  • Architecture: 1 issues
  • Security: 1 issues
  • Performance: 1 issues
  • Code Quality: 9 issues

Key Findings

Architecture & Design

The refactoring successfully extracts file parsing logic into dedicated modules (parser.ts, json.ts), significantly improving code organization and maintainability. The loading spinner integration, while functional, creates direct coupling between file handling and UI state that could be better abstracted.

Security Considerations

IMPORTANT: The drag-and-drop functionality introduces a potential SSRF vulnerability where arbitrary URLs from drag events are fetched without validation. This should be addressed before merge by implementing URL validation or domain whitelisting.

Performance Impact

The changes are generally positive for performance through code consolidation, though there's a minor inefficiency in the eventUtils nested array operations that could be optimized.

Integration Points

The refactoring maintains backward compatibility for the most part, with proper deprecation of old methods. However, the PNG metadata function signature change to explicit typing could potentially break external consumers.

Positive Observations

  • Excellent refactoring: Dramatically reduces code duplication by extracting ~200 lines of repetitive file parsing logic
  • Improved error handling flow: Centralized error handling through consistent patterns
  • Better user experience: Loading spinner provides clear feedback during file processing
  • Consistent testing: New eventUtils module includes appropriate unit tests
  • Clean separation: File format detection logic properly separated from business logic

Critical Issues to Address

  1. Security: SSRF vulnerability in URL fetching from drag events (line 24, eventUtils.ts)
  2. Error handling: Missing try-catch blocks around JSON.parse operations in multiple locations
  3. State management: Potential spinner state leaks if async operations fail

References

Next Steps

  1. Address critical security issue before merge - implement URL validation for drag-dropped URIs
  2. Add comprehensive error handling around JSON parsing operations
  3. Consider architectural improvements for loading state management
  4. Add unit tests for the new parser.ts module covering edge cases

This is a comprehensive automated review. For architectural decisions requiring human judgment, please request additional manual review.

@github-actions github-actions bot removed the claude-review Add to trigger a PR code review from Claude Code label Nov 2, 2025
Copy link
Contributor

@christian-byrne christian-byrne left a comment

Choose a reason for hiding this comment

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

LGTM

this.showErrorOnFileLoad(file)
}

// @deprecated
Copy link
Contributor

Choose a reason for hiding this comment

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

Should it indicate the resolution path?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I need to see if anyone else is using this. Things like this should just be module scope unexported functions, or if they have to be on the class, marked as private.

But to answer your question directly: Yes, yes it should.

@christian-byrne christian-byrne merged commit 31e405a into main Nov 2, 2025
27 checks passed
@christian-byrne christian-byrne deleted the drjkl/feat/loading branch November 2, 2025 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants