diff --git a/web/linker.js b/web/linker.js index 3b78c80..842a1f5 100644 --- a/web/linker.js +++ b/web/linker.js @@ -258,6 +258,18 @@ class LinkerManagerDialog extends ComfyDialog { return html; } + buildContextMenuModelData(model = {}, fallbackName = '') { + const resolvedPath = model.path || model.resolved_path || ''; + const filename = model.filename || fallbackName || resolvedPath.split(/[\/\\]/).pop() || ''; + return { + ...model, + name: model.name || filename, + original_path: model.original_path || filename, + resolved_path: resolvedPath, + category: model.category || '' + }; + } + renderLocalMatchesContent(missing, missingIndex = 0) { const allMatches = missing.matches || []; const filteredMatches = allMatches.filter(m => m.confidence >= 70); @@ -284,7 +296,8 @@ class LinkerManagerDialog extends ComfyDialog { const matchPath = match.model?.relative_path || match.filename || ''; const formattedPath = this.formatPath(matchPath, 45); const isBestMatch = matchIndex === 0 && match.confidence >= 95; - const modelData = encodeURIComponent(JSON.stringify(match.model || {})); + const contextModel = this.buildContextMenuModelData(match.model || {}, match.filename || ''); + const modelData = encodeURIComponent(JSON.stringify(contextModel)); html += `
`; html += this.getConfidenceBadge(match.confidence); @@ -303,7 +316,8 @@ class LinkerManagerDialog extends ComfyDialog { const match = otherMatches[mIdx]; const confClass = match.confidence >= 70 ? 'ml-badge-medium' : 'ml-badge-low'; const altBtnId = `resolve-alt-${missingIndex}-${missing.node_id}-${missing.widget_index}-${mIdx}`; - const modelData = encodeURIComponent(JSON.stringify(match.model || {})); + const contextModel = this.buildContextMenuModelData(match.model || {}, match.filename || ''); + const modelData = encodeURIComponent(JSON.stringify(contextModel)); html += `
`; html += `${match.confidence}%`; html += `${match.filename || match.path?.split(/[/\\]/).pop()}`;