Commit Graph

3388 Commits

Author SHA1 Message Date
Comfy Org PR Bot
7d0e971f3a [chore] Update ComfyUI-Manager API types from ComfyUI-Manager@4e6f970 (#4782)
Co-authored-by: viva-jinyi <53567196+viva-jinyi@users.noreply.github.com>
2025-08-27 22:29:08 +09:00
Jin Yi
63b6af5e27 [fix] Add conflict detection when installed packages list updates
- Import useConflictDetection composable in comfyManagerStore
- Call performConflictDetection after refreshing installed packages list
- Ensures conflict status stays up-to-date when packages change
- Follows existing codebase patterns for composable usage
2025-08-27 22:29:08 +09:00
Jin Yi
42ad8ebc82 [fix] Fix conflict red dot not syncing
between components

  Resolve reactivity issue by sharing
  useStorage refs across all
  composable instances to ensure UI
  consistency.
2025-08-27 22:29:08 +09:00
Jin Yi
ff31e2d50a [fix] title text modified 2025-08-27 22:29:08 +09:00
Jin Yi
7389790e8e [feature] dual modal supported 2025-08-27 22:29:08 +09:00
Jin Yi
a1ea18c326 [fix] Restore conflict notification work and fix tests
- Fix missing footerProps property in DialogInstance interface
- Add missing InstalledPacksResponse type import in tests
- Add missing getImportFailInfoBulk method to test mock
- Remove unused ManagerComponents import causing type error
- All unit and component tests now pass successfully
2025-08-27 22:27:08 +09:00
Jin Yi
3e3448e0fd [restore] conflict notification commits restore 2025-08-27 22:27:07 +09:00
Jin Yi
6470869eb1 feat: Add loading state to PackInstallButton and improve UI (#5153) 2025-08-23 13:28:13 +09:00
Jin Yi
7d1659c04a Fix: Restore api.ts from main branch after incorrect rebase (#5150)
* fix: api.ts file is different with main branch

* Update locales [skip ci]

* fix: restore support dotprop access

* fix: apply locales based on manager/menu-items-migration

* fix: Add missing shortcuts translation section for CI tests

- Added shortcuts section with keyboardShortcuts key
- Fixes failing Playwright test looking for 'Keyboard Shortcuts' aria-label
- Issue was caused by incomplete rebase from main branch

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Add missing versionMismatchWarning translations for CI tests

- Added versionMismatchWarning section with all required keys
- Added general versionMismatch related keys (updateFrontend, dismiss, etc.)
- Fixes failing Playwright tests for version mismatch warnings
- These keys were lost during the rebase from main branch

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-22 10:41:39 -07:00
Jin Yi
3352c0627d fix: v2 prefix (#5145) 2025-08-21 15:54:27 +09:00
Christian Byrne
3c3ed2b532 [cleanup] Remove unused manager route enums (#4875) 2025-08-21 15:54:27 +09:00
Christian Byrne
2e4b510a50 [feat] Add v2/ prefix to manager service base URL (#4872) 2025-08-21 15:54:27 +09:00
Christian Byrne
b7f778bfc8 [feat] Add reactive feature flags foundation (#4817) 2025-08-21 15:54:27 +09:00
Jin Yi
808adc06ac [Manager] "Restarting" state after clicking restart button (#4637) 2025-08-21 15:54:27 +09:00
github-actions
a2df972c8a Update locales [skip ci] 2025-08-21 15:54:27 +09:00
Christian Byrne
8ceb5e4bef Fix errors from rebase (removed Tag component import and duplicated imports in api.ts) (#4608)
Co-authored-by: github-actions <github-actions@github.com>
2025-08-21 15:54:27 +09:00
Christian Byrne
ec923e209c [fix] Fix json syntax error from rebase (#4607) 2025-08-21 15:54:27 +09:00
github-actions
2d117b1144 Update locales [skip ci] 2025-08-21 15:54:26 +09:00
bymyself
0f97a6fd1b [Update to v2 API] update WS done message 2025-08-21 15:53:32 +09:00
bymyself
8a2747f29e dont show missing nodes button in legacy manager mode 2025-08-21 15:53:32 +09:00
bymyself
e8e558b431 improve command names 2025-08-21 15:53:32 +09:00
bymyself
cf174d30b9 use correct response shape 2025-08-21 15:53:32 +09:00
github-actions
226f84eaf1 Update locales [skip ci] 2025-08-21 15:53:32 +09:00
bymyself
7ec70e5487 add "Check for Updates", "Install Missing" menu items 2025-08-21 15:53:32 +09:00
github-actions
29cdd57de2 Update locales [skip ci] 2025-08-21 15:50:18 +09:00
bymyself
be7433be46 Add banner indicating how to use legacy manager UI 2025-08-21 15:50:18 +09:00
bymyself
61fa2fd25a move legacy option to startup arg 2025-08-21 15:50:18 +09:00
bymyself
fd3362ed0d await promises. update settings schema 2025-08-21 15:46:58 +09:00
bymyself
cd7d64ae5f re-arrange menu items 2025-08-21 15:46:58 +09:00
bymyself
d2d85650da switch to v2 manager API endpoints 2025-08-21 15:46:58 +09:00
github-actions
d96265a93b Update locales [skip ci] 2025-08-21 15:46:58 +09:00
bymyself
5846117f4e migrate manager menu items 2025-08-21 15:42:08 +09:00
filtered
ea9cb3cb45 Allow Macs to zoom with Cmd + wheel (#5143)
* Allow Mac to zoom with cmd+wheel

* Only zoom when exact modifier pressed
2025-08-20 22:18:04 -07:00
Jin Yi
11f5439d29 [feat] Add comprehensive Storybook stories for custom UI components (#5098) 2025-08-21 08:41:54 +09:00
Johnpaul Chiwetelu
20b0927783 Fix CopyToClipboard Issue (#5109)
* feat: enhance clipboard functionality with fallback support

* feat: refactor toast notifications for clipboard copy functionality

* refactor: simplify clipboard fallback logic by removing support check

* refactor: improve fallback copy textarea styling for better accessibility
2025-08-20 12:26:30 -07:00
filtered
e789227420 Add support for high-resolution wheel events (#5092)
* Add high res wheel event handling

Attempts to resolve high res wheel event handling.  First pass.

* [Test] Add comprehensive TDD tests for device detection spec

* Implement efficient timestamp-based device detection for mouse/trackpad

- Add timestamp-based detection without creating timers on every event
- Implement 500ms cooldown period to prevent rapid mode switching
- Support Linux wheel event buffering with divisibility detection
- Maintain backward compatibility with isTrackpadGesture()
- All 69 device detection tests passing

* Remove magic number and unused code from device detection

- Replace hardcoded 500ms with CanvasPointer.trackpadMaxGap constant
- Update trackpadMaxGap from 200ms to 500ms for cooldown period
- Remove unused lastIntegerDelta property that was only set but never read
- Update tests to remove references to removed property

* Update old CanvasPointer tests to match new device detection behavior

- Update tests to require two-finger panning (deltaX && deltaY) for trackpad detection
- Fix expectations to match new default mouse mode behavior
- Small values alone no longer automatically mean trackpad
- All 15 legacy tests now pass with new implementation

* Consolidate CanvasPointer tests and remove redundant test file

- Add backward compatibility test to comprehensive test file
- Remove old CanvasPointer.test.ts that was created on this branch
- Old file had 15 tests, mostly redundant or testing unused features
- New comprehensive file now has 70 tests with full coverage
- Preserves the only unique test (lastTrackpadEvent backward compatibility)

* Simplify conditional assignment with ternary operator

* Remove redundant code

* Simplify comments to remove redundant explanations for developers

* Refactor device detection for improved readability and maintainability

* Inline immediately-returned variable for conciseness

* Cleanup: Remove redundant code, fix style

* Update test expectations

* Guard against invalid state in event comparison

* Fix node.js setTimeout type issue

Caused by node.js types being loaded globally.

* Remove any type from unit test

* Address PR feedback

- Add static value to handle the high-res maximum buffer time.
- nits
2025-08-20 11:51:29 -07:00
Alexander Brown
4db9e3d7fb Fix: Shift+Click+Drag from outputs with Subgraph outputs (#5115)
* fix: Handle shift+click+drag to collectively move outputs when connected to a subgraph output

* [Bug]: Multiple issues with shift-dragging links to subgraph output node input slots
Fixes #4877
When shift clicking, ignore links that are no longer present in the subgraph.

* cleanup: Utility function to filter for relevant outputs when shift+clicking

* cleanup: Remove some pieces that are redundant in this context.
Different enough to warrant not extracting a common function yet.
2025-08-20 11:22:02 -07:00
Simula_r
1e9d4c7c37 Fix/widget ordering consistency (#5106)
* feat: input ordered nodes

* fix: ensure node input order upon creation using input_order

* refactor: back to the original state of migrations.ts

* refactor: remove console.logs

* test: fix widget ordering tests

* fix: any types
2025-08-20 11:07:40 -07:00
Arjan Singh
180f95182d [fix] reposition TaskItem info #4996 (#5113)
Position sidebar task items at top of tile
2025-08-20 10:16:42 -07:00
Jin Yi
2407748425 [feat] Add enhanced filter UI components with search and clear functionality (#5119)
* [feat] Add enhanced filter UI components with search and clear functionality

- Add SearchBox, clear all button, and item count to MultiSelect header
- Add 'fit-content' size option to button types for flexible sizing
- Update SingleSelect and ModelSelector components for consistency
- Add localization strings for item selection and clear all functionality

Co-Authored-By: Claude <noreply@anthropic.com>

* Update locales [skip ci]

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions <github-actions@github.com>
2025-08-20 09:36:19 -07:00
Christian Byrne
8d0a523ffd [refactor] Remove obsolete Kontext Edit Button (#5108)
* feat: Remove obsolete Kontext Edit Button

Removes the 'Kontext Edit Button' and its associated code, as it has been made obsolete by the new 'Subgraphs + Partial Execution' feature.

Fixes #5093

* Update locales [skip ci]

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-08-19 18:36:00 -07:00
pythongosssss
97e5291b05 Update to latest version of workflow icon (#5103) 2025-08-19 15:14:06 -07:00
Christian Byrne
28d74be363 add onRemove invoke to removeWidget method (#5102) 2025-08-19 10:39:20 -07:00
Johnpaul Chiwetelu
7d2d006c07 Convert Group Nodes to Subgraph (#4972)
* fix: Convert groupNodes to Subgraph Properly

* fix: Use correct positioning with requestAnimationFrame when groupnodes are converted to Subgraph
2025-08-18 20:58:56 -07:00
Sidharth
30d48f2356 feat: add a filter and check box to disable (#5014)
selected extensions
2025-08-18 20:07:55 -07:00
snomiao
451ef24ea6 [feat] Add Storybook setup and NodePreview story (#4861)
* [feat] Add Storybook setup and NodePreview story

- Install and configure Storybook v9.1.1 for Vue 3
- Set up Storybook configuration with Vite integration
- Add Pinia store support for Storybook environment
- Create comprehensive NodePreview.stories.ts with multiple node examples:
  - KSampler node (complex node with multiple inputs/outputs)
  - CLIP Text Encode node (simple text input node)
  - VAE Decode node (image processing node)
  - Example with long markdown description
- Configure project paths and aliases for Storybook
- Stories demonstrate various ComfyUI node types with realistic mock data
- Update tsconfig.eslint.json to include Storybook files
- Fix ESLint issues with imports and number precision
- Add Storybook ESLint plugin configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [feat] Improve Storybook configuration and setup

- Add comprehensive PrimeVue theme setup with ComfyUI preset
- Configure proper Vue app setup with Pinia stores, i18n, and services
- Remove unused onboarding addon from Storybook dependencies
- Improve Vite configuration with better chunking and alias resolution
- Add proper CSS imports and styling for ComfyUI components

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [docs] Add comprehensive Storybook documentation

- Add README.md explaining Storybook usage, benefits, and comparison with other tools
- Add CLAUDE.md with development guidelines for working with Storybook
- Include best practices, troubleshooting tips, and integration notes
- Address PR review feedback for better developer onboarding

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [refactor] Remove ts-expect-error comment from Storybook preview

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [bugfix] Fix TypeScript errors in Load3D components and GLTF test

- Fix type mismatches in Load3DScene eventConfig by casting string values to proper enum types (MaterialMode, CameraType, UpDirection)
- Fix Uint8Array vs ArrayBuffer type issues in GLTF test by using .buffer property
- Remove unused @ts-expect-error comment in Rectangle.ts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [feat] Add Chromatic GitHub Action for Storybook visual testing

- Add automated visual regression testing for Storybook components
- Configure workflow to run on main branch and PRs
- Auto-accept changes on main branch for baseline updates
- Uses build-storybook script for optimized builds

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [docs] Add Chromatic documentation to Storybook README

- Document Chromatic visual testing integration
- Add information about automated testing workflow
- Include best practices for visual regression testing
- Explain how to view and manage test results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore(chromatic.yaml): restrict push branches to main only for better workflow management

* [feat] Rebase branch onto main and update Storybook configuration

- Rebase sno-storybook branch onto origin/main with latest changes
- Update .storybook/main.ts with additional plugins and component configuration
- Add icons and component resolvers for Storybook support
- Update .gitignore with new entries
- Regenerate package-lock.json after rebase conflicts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [bugfix] Fix TypeScript errors in SubgraphNode type checking

Add proper type validation for subgraph node selection before calling
SubgraphNode-specific methods. This prevents undefined values from being
passed to functions expecting SubgraphNode parameters.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(vite.config.mts): correct path alias for src directory to ensure proper resolution in the project
refactor(vite.config.mts): adjust templates proxy configuration for better readability and maintainability

* [feat] Remove bun.lock as it's now ignored

* [bugfix] Fix Storybook builder require() error by converting main.ts to main.mjs

- Convert .storybook/main.ts to main.mjs to resolve ES module compatibility
- Use dynamic imports instead of static imports to avoid require() errors
- Add .storybook directory to tsconfig.json includes
- Storybook build and dev server now work correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore(storybook): replace main.mjs with main.ts for improved type safety and maintainability
fix(storybook): remove unused import map plugins in Storybook configuration to prevent potential issues
fix(storybook): update color palette store initialization to streamline code and improve readability

* [feat] Optimize Chromatic workflow with automated PR status comments

- Replace complex GitHub Script actions with edumserrano/find-create-or-update-comment@v3
- Add comprehensive PR comments showing Storybook build progress and results
- Include build metrics: components, stories, visual changes, and errors
- Add direct links to Chromatic builds and Storybook previews
- Reduce workflow complexity by ~60 lines while maintaining functionality
- Use native GitHub Actions expressions for cleaner maintainability

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>

* chore(chromatic.yaml): move permissions section inside the chromatic-deployment job for better organization and clarity

* [fix] Resolve Vite CJS deprecation warning in Storybook config

- Use dynamic import for mergeConfig to avoid CJS build warning
- Replace static import with dynamic import in viteFinal function
- Maintain type safety with separate type import
- Fixes "The CJS build of Vite's Node API is deprecated" warning

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(chromatic.yaml): change edit-mode from replace to append to preserve existing comments in pull request

* [fix] Replace __dirname with process.cwd() in Storybook config

__dirname is not available in all environments. Using process.cwd()
provides better compatibility and resolves path issues in Storybook.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feature: storybook-setting (#5088)

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jin Yi <jin12cc@gmail.com>
2025-08-18 20:05:28 -07:00
Jin Yi
727a3494e0 Modal Component & Custom UI Components (#4908) 2025-08-19 11:56:17 +09:00
Benjamin Lu
7a1a2dd654 fix: Make bottom panel tab titles reactive to language changes (#5077)
* computed extraMenuItems

* add i18n key option

* underline fix

* Update locales [skip ci]

* restore title

* Update locales [skip ci]

* refactor: Extract tab title logic to helper method for better readability

- Moved complex nested ternary logic from template to getTabDisplayTitle helper
- Improves code readability and maintainability
- Addresses review feedback about using computed/method for performance

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-08-18 19:27:21 -04:00
AustinMroz
75d7a3725b Fix widgets added after previews on subgraph nodes (#5084)
Image previews are displayed on nodes as a widget. If a new input is
added to a subgraph that already has an image preview, that widget is
incorrectly placed after the preview. This is fixed by instead counting
the number of existing inputs that are already linked to widgets.
2025-08-18 16:25:39 -07:00
Benjamin Lu
29ae9b4483 [fix] Rename viewer control components to prevent unplug warnings (#5080)
Renamed Load3D viewer control components to use ViewerXxxControls naming convention
to avoid conflicts with the unplug system's component name detection. This prevents
false positive warnings when components are registered in the global scope.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-18 13:45:40 -07:00