[PR #3273] fix(ui): separate enabled node conflicts from potential conflicts #3156

Open
opened 2026-10-28 21:15:41 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/ComfyUI-Manager/pull/3273
Author: @yonghaozheng64-commits
Created: 9/12/2026
Status: 🔄 Open

Base: main ← Head: fix-enabled-node-conflicts


📝 Commits (1)

  • af580f7 fix(ui): distinguish enabled node conflicts from potential conflicts

📊 Changes

2 files changed (+118 additions, -7 deletions)

View changed files

📝 js/custom-nodes-manager.js (+17 -7)
➕ tests/test_node_conflicts.cjs (+101 -0)

📄 Description

Summary

Fixes #3092.

The legacy Manager UI builds node-name conflicts from the global catalog. This currently marks an enabled pack as conflicting even when its only peer is not installed or is disabled.

  • Count conflicts only between packs whose backend state is enabled.
  • Keep installation/enablement guidance: inactive packs display a separate potential conflict count and explicitly labeled peer list, considering enabled peers only.
  • Preserve node listings and existing URL/title mapping resolution.
  • Add eight dependency-free Node.js regression tests exercising the actual loadNodes method in an isolated VM with a mocked mappings response.

These remain catalog-based node-name overlaps, not proof of runtime registration collisions. No backend API, install permissions, dependencies, or local user data are changed.

Validation

  • node --test tests/test_node_conflicts.cjs: 8 passed.
  • python -m unittest discover -s tests -p "test_*.py": 45 passed.
  • JavaScript module syntax check and git diff --check: passed.
  • Running the tests against upstream main reproduces the enabled/uninstalled and enabled/disabled false positives (1 reported conflict instead of 0).
  • Includes active/active, inactive/inactive, mixed catalog, duplicate node names, reload after state changes, missing catalog packs, and URL/title fallback cases.
  • Full ComfyUI browser/end-to-end validation has not been performed.

Prepared with AI assistance and submitted for maintainer review. This branch is independent of plugin registration PR #3266.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/ComfyUI-Manager/pull/3273 **Author:** [@yonghaozheng64-commits](https://github.com/yonghaozheng64-commits) **Created:** 9/12/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix-enabled-node-conflicts` --- ### 📝 Commits (1) - [`af580f7`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/af580f7cd346ac7e758acbc9741849566d03b363) fix(ui): distinguish enabled node conflicts from potential conflicts ### 📊 Changes **2 files changed** (+118 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `js/custom-nodes-manager.js` (+17 -7) ➕ `tests/test_node_conflicts.cjs` (+101 -0) </details> ### 📄 Description ## Summary Fixes #3092. The legacy Manager UI builds node-name conflicts from the global catalog. This currently marks an enabled pack as conflicting even when its only peer is not installed or is disabled. - Count conflicts only between packs whose backend `state` is `enabled`. - Keep installation/enablement guidance: inactive packs display a separate **potential conflict** count and explicitly labeled peer list, considering enabled peers only. - Preserve node listings and existing URL/title mapping resolution. - Add eight dependency-free Node.js regression tests exercising the actual `loadNodes` method in an isolated VM with a mocked mappings response. These remain catalog-based node-name overlaps, not proof of runtime registration collisions. No backend API, install permissions, dependencies, or local user data are changed. ## Validation - `node --test tests/test_node_conflicts.cjs`: 8 passed. - `python -m unittest discover -s tests -p "test_*.py"`: 45 passed. - JavaScript module syntax check and `git diff --check`: passed. - Running the tests against upstream main reproduces the enabled/uninstalled and enabled/disabled false positives (1 reported conflict instead of 0). - Includes active/active, inactive/inactive, mixed catalog, duplicate node names, reload after state changes, missing catalog packs, and URL/title fallback cases. - Full ComfyUI browser/end-to-end validation has not been performed. Prepared with AI assistance and submitted for maintainer review. This branch is independent of plugin registration PR #3266. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/ComfyUI-Manager#3156
No description provided.