mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-06 08:00:05 +00:00
* fix: normalize pack IDs to fix version detection for disabled packs When a pack is disabled, ComfyUI-Manager returns it with a version suffix (e.g., "ComfyUI-GGUF@1_1_4") while enabled packs don't have this suffix. This inconsistency caused disabled packs to incorrectly show as having updates available even when they were on the latest version. Changes: - Add normalizePackId utility to consistently remove version suffixes - Apply normalization in refreshInstalledList and WebSocket updates - Use the utility across conflict detection and node help modules - Ensure pack version info is preserved in the object's ver field This fixes the "Update Available" indicator incorrectly showing for disabled packs that are already on the latest version. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feature: test code added * test: packUtils test code added * test: address PR review feedback for test improvements - Remove unnecessary .not.toThrow() assertion in useManagerQueue test - Add clarifying comments for version normalization test logic - Replace 'as any' with vi.mocked() for better type safety --------- Co-authored-by: Claude <noreply@anthropic.com>
26 lines
867 B
TypeScript
26 lines
867 B
TypeScript
import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
|
|
import { NodeSourceType, getNodeSource } from '@/types/nodeSource'
|
|
import { normalizePackId } from '@/utils/packUtils'
|
|
|
|
export function extractCustomNodeName(
|
|
pythonModule: string | undefined
|
|
): string | null {
|
|
const modules = pythonModule?.split('.') || []
|
|
if (modules.length >= 2 && modules[0] === 'custom_nodes') {
|
|
// Use normalizePackId to remove version suffix
|
|
return normalizePackId(modules[1])
|
|
}
|
|
return null
|
|
}
|
|
|
|
export function getNodeHelpBaseUrl(node: ComfyNodeDefImpl): string {
|
|
const nodeSource = getNodeSource(node.python_module)
|
|
if (nodeSource.type === NodeSourceType.CustomNodes) {
|
|
const customNodeName = extractCustomNodeName(node.python_module)
|
|
if (customNodeName) {
|
|
return `/extensions/${customNodeName}/docs/`
|
|
}
|
|
}
|
|
return `/docs/${node.name}/`
|
|
}
|