diff --git a/web/linker.js b/web/linker.js
index 2a1b223..ef9c5da 100644
--- a/web/linker.js
+++ b/web/linker.js
@@ -884,6 +884,11 @@ class LinkerManagerDialog extends ComfyDialog {
html += `
`;
+ // Add category header
+ html += `
+ ${displayName.toUpperCase()}
+
`;
+
if (hasActive) {
const activeStr = modelsObj.active.map(m => {
const fullName = m.name || m.original_path?.split(/[\/\\]/).pop() || 'Unknown';
@@ -1066,6 +1071,16 @@ class LinkerManagerDialog extends ComfyDialog {
// Update button state in case there are active downloads
this.updateDownloadAllButtonState();
+ // Always default to Missing Models tab when opening dialog
+ if (this.activeTab !== 'missing') {
+ // Manually switch tab without loading
+ this.activeTab = 'missing';
+ this.missingTab.classList.add('ml-tab-active');
+ this.loadedTab.classList.remove('ml-tab-active');
+ this.downloadAllButton.style.display = 'inline-flex';
+ this.autoResolveButton.style.display = 'inline-flex';
+ }
+
// Use provided workflow or fetch from current graph
await this.loadWorkflowData(workflow);
}
@@ -1242,6 +1257,12 @@ class LinkerManagerDialog extends ComfyDialog {
`;
html += '
';
+ // Skip rendering if active tab is not "missing"
+ if (this.activeTab !== 'missing') {
+ container.innerHTML = '';
+ return;
+ }
+
// Sort missing models: those with 100% confidence matches first, then others
const sortedMissingModels = missingModels.sort((a, b) => {
const aMatches = a.matches || [];