refactor: remove package-level caching to support dynamic installation
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>
This commit is contained in:
18
openapi.yaml
18
openapi.yaml
@@ -42,13 +42,13 @@ components:
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/InstallPackParams'
|
||||
- $ref: '#/components/schemas/UpdatePackParams'
|
||||
- $ref: '#/components/schemas/UpdateAllPacksParams'
|
||||
- $ref: '#/components/schemas/UpdateComfyUIParams'
|
||||
- $ref: '#/components/schemas/FixPackParams'
|
||||
- $ref: '#/components/schemas/UninstallPackParams'
|
||||
- $ref: '#/components/schemas/DisablePackParams'
|
||||
- $ref: '#/components/schemas/EnablePackParams'
|
||||
- $ref: '#/components/schemas/ModelMetadata'
|
||||
- $ref: '#/components/schemas/UpdateComfyUIParams'
|
||||
- $ref: '#/components/schemas/UpdateAllPacksParams'
|
||||
required: [ui_id, client_id, kind, params]
|
||||
TaskHistoryItem:
|
||||
type: object
|
||||
@@ -206,7 +206,10 @@ components:
|
||||
description: The version of the pack that is installed (Git commit hash or semantic version)
|
||||
cnr_id:
|
||||
type: [string, 'null']
|
||||
description: The name of the pack if installed from the registry
|
||||
description: The name of the pack if installed from the registry (normalized lowercase)
|
||||
original_name:
|
||||
type: [string, 'null']
|
||||
description: The original case-preserved name of the pack from the registry
|
||||
aux_id:
|
||||
type: [string, 'null']
|
||||
description: The name of the pack if installed from github (author/repo-name format)
|
||||
@@ -238,6 +241,10 @@ components:
|
||||
type: string
|
||||
enum: [strong, normal, normal-, weak]
|
||||
description: Security level configuration (from most to least restrictive)
|
||||
NetworkMode:
|
||||
type: string
|
||||
enum: [public, private, offline]
|
||||
description: Network mode configuration
|
||||
RiskLevel:
|
||||
type: string
|
||||
enum: [block, high+, high, middle+, middle]
|
||||
@@ -316,7 +323,7 @@ components:
|
||||
skip_post_install:
|
||||
type: boolean
|
||||
description: Whether to skip post-installation steps
|
||||
required: [selected_version, mode, channel]
|
||||
required: [selected_version]
|
||||
UpdateAllPacksParams:
|
||||
type: object
|
||||
properties:
|
||||
@@ -711,8 +718,7 @@ components:
|
||||
security_level:
|
||||
$ref: '#/components/schemas/SecurityLevel'
|
||||
network_mode:
|
||||
type: [string, 'null']
|
||||
description: Network mode (online, offline, private)
|
||||
$ref: '#/components/schemas/NetworkMode'
|
||||
cli_args:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
|
||||
Reference in New Issue
Block a user