Fix sequential scenario test that was failing in Env 9 due to improper
state management between scenarios.
Root Cause:
In scenario "CNR enabled + Nightly disabled":
1. Install Nightly → auto-disables CNR
2. Disable Nightly → both packages now disabled
3. Test expects: CNR enabled, Nightly disabled
4. Actual state: both disabled (CNR not re-enabled)
Fix:
Added enable operation after disabling Nightly to restore CNR to enabled state.
This ensures the scenario accurately represents "CNR enabled + Nightly disabled"
instead of leaving both packages disabled.
Changes:
- Added enable CNR operation after disabling Nightly in scenario 2
- Updated ui_id to be more descriptive (disable_nightly, enable_cnr)
- Ensures proper state transition: both enabled → Nightly disabled → CNR re-enabled
Test Results:
- Before: 9/10 environments passing (90%)
- After: 10/10 environments passing (100%)
- All 63 tests passing across all environments
Session Progress:
- Session start: 7/10 environments (60/63 tests)
- After parameter fix: 9/10 environments (62/63 tests)
- Final: 10/10 environments (63/63 tests ✅)
- Total improvement: +3 environments, +3 tests (+42.9%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit includes two fixes that improve test suite reliability
and fix a production bug:
1. Production Fix (manager_core.py:1819):
- Fixed enabled state detection in get_installed_nodepacks()
- Changed from `is_enabled = not y.endswith('.disabled')` to `is_enabled = True`
- Packages in custom_nodes/ (not in .disabled/) are always enabled
- This was a real bug causing incorrect API responses
2. Test Isolation Fix (test_case_sensitivity_integration.py:299):
- Added cleanup_test_env() at end of test_case_sensitivity_full_workflow
- Prevents disabled packages from polluting subsequent tests
- Fixes test_disable_package failure in parallel test execution
Test Results:
- Pass rate improved from 93.2% to 96.6%
- Fixed 2 test failures
- Remaining 2 failures are due to enable operation bugs (separate issue)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove package-level caching in cnr_utils and node_package modules to enable
proper dynamic custom node installation and version switching without ComfyUI
server restarts.
Key Changes:
- Remove @lru_cache decorators from version-sensitive functions
- Remove cached_property from NodePackage for dynamic state updates
- Add comprehensive test suite with parallel execution support
- Implement version switching tests (CNR ↔ Nightly)
- Add case sensitivity integration tests
- Improve error handling and logging
API Priority Rules (manager_core.py:1801):
- Enabled-Priority: Show only enabled version when both exist
- CNR-Priority: Show only CNR when both CNR and Nightly are disabled
- Prevents duplicate package entries in /v2/customnode/installed API
- Cross-match using cnr_id and aux_id for CNR ↔ Nightly detection
Test Infrastructure:
- 8 test files with 59 comprehensive test cases
- Parallel test execution across 5 isolated environments
- Automated test scripts with environment setup
- Configurable timeout (60 minutes default)
- Support for both master and dr-support-pip-cm branches
Bug Fixes:
- Fix COMFYUI_CUSTOM_NODES_PATH environment variable export
- Resolve test fixture regression with module-level variables
- Fix import timing issues in test configuration
- Register pytest integration marker to eliminate warnings
- Fix POSIX compliance in shell scripts (((var++)) → $((var + 1)))
Documentation:
- CNR_VERSION_MANAGEMENT_DESIGN.md v1.0 → v1.1 with API priority rules
- Add test guides and execution documentation (TESTING_PROMPT.md)
- Add security-enhanced installation guide
- Create CLI migration guides and references
- Document package version management
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Previously, only `uv` installed inside a venv was properly handled. Now `uv` installed outside the venv is also supported.
* Even if `use_uv=False`, `uv` is used as a fallback when `pip` is unavailable.
* Even if `use_uv=True`, `pip` is used as a fallback when `uv` is unavailable.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2125
- Mismatch issue between ltdrdata/ and Comfy-Org/
modified: /v2/customnode/installed – cnr_id was being returned in a normalized form
modified: /v2/customnode/installed – when both an enabled nodepack and a disabled nodepack existed, modified to report only the enabled nodepack
fixed: Removed unnecessary warning messages printed during nodepack installation
This PR adds nuke-nodes-comfyui to the ComfyUI Manager registry.
Features:
- Professional compositing nodes replicating Nuke functionality
- 15+ nodes including merge, grade, transform, and blur operations
- Designed for professional compositing workflows in ComfyUI
- Well-documented with installation instructions
Repository: https://github.com/sumitchatterjee13/nuke-nodes-comfyui
* Add ComfyUI-S4Tool-Image to custom nodes list
Add ComfyUI-S4Tool-Image to custom nodes list
* Update custom-node-list.json
Add custom-node : ComfyUI-S4Motion
* Add ComfyUI-S4Tool-Text to custom node list
Text rendering and styling nodes for ComfyUI. This extension provides a basic text renderer, multiple font loaders, and a style node that adds stroke, shadow, gradient fill, and opacity control.
* Add ComfyUI-Prepack to custom node list
A small, practical bundle of ComfyUI nodes that streamlines common workflows.
* Update custom-node-list.json
---------
Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>