Modify scheduleInitialUrnLocalMatchRefresh to accept container and data parameters,
track refresh tasks as an array of async functions, and use Promise.allSettled
to wait for all tasks before updating the UI. This ensures that the missing
models browser is refreshed only after all initial URN local match refreshes
have completed, preventing UI updates during ongoing async operations.
Also adjust renderMissingModel to conditionally render known download panels
based on downloadSource availability.
- Added methods to manage search source definitions and their enabled state via localStorage
- Added UI toggles in the options dialog for each search source
- Updated CSS for source icons in the options
- Refactored source selection logic to use enabled sources
- Ensured at least one source remains enabled (defaults to local)
- Add collapseSidebar option to LinkerManagerDialog.close (defaults to true)
- When dialog is docked and collapseSidebar is true, close ComfyUI sidebar
- Modify ModelLinker to pass { collapseSidebar: false } to avoid closing sidebar
- Add ml-tab-label span elements for better tab label structure
- Update padding and hover/focus states for consistent styling
- Remove isolation property and simplify transition handling
- Set opacity: 0 for ::after pseudo-element by default
- Replace unicode text ('⛶', '×') with SVG icons for fullscreen/close buttons
- Add new SVG icons (windowMaximize, windowRestore, x) to icon_utils.js
- Update CSS selectors to scope window button styles under #model-linker-modal
- Remove border/box-shadow from buttons, add hover states
- Increase button size to 46x40px with full height
- Add aria-label attributes for accessibility
- Adjust dialog controls layout with stretch alignment
- Move tab elements before dialog controls in DOM order
- Update tab styling: smaller min-height, rounded corners, subtle backgrounds
- Add ml-dialog-brand and ml-dialog-controls flex classes
- Adjust active tab border and background opacity
- Add new utility classes: ml-is-hidden, ml-is-visible, ml-is-inline-flex
- Add ml-is-muted and ml-is-error for text color states
- Add ml-is-success-action for success button styling
- Add ml-icon-img for icon vertical alignment
- Replace style.display = 'block/none' with classList toggles in linker.js
- Update getIconHtml to use ml-icon-img class instead of inline styles
- Changed icon mapping for lora-archive, lora_manager_archive, and lora-manager-archive from 'archive' to 'loraManager'
- Added new loraManager SVG icon in icon_utils.js
- Removed redundant 'Not needed' status display before search controls in download section
- Add getMissingNodeDisplay() helper to centralize node label formatting
- Make missing list rows keyboard-accessible (Enter/Space selection)
- Add clickable locate buttons for missing nodes to center in graph
- Style focus states for accessibility (outline, box-shadow)
- Add refreshCw icon to icon_utils.js for combo refresh buttons
- Refactor row HTML structure for better semantics
- Add CSS for .ml-local-alternatives-toggle component with hover/focus states
- Update missing browser button styles to use compact link button
- Adjust disabled footer button opacity for better visibility
- Replace alternatives div with toggle button in linker.js
- Enhance MLToggleHidden to support aria-expanded and dynamic label/state updates
- Implement CSS styles for missing models browser interface (.ml-missing-browser and related classes)
- Add JavaScript methods for handling missing models:
* getMissingModelKey, getMissingFilename, getBestLocalMatch
* getMissingModelSummaryStats, getMissingSourceStatus
* renderMissingSourcesSummary, hasRenderableSearchState
- Replace missing models rendering logic with new implementation
- Support for exact/partial match statistics and source status indicators
- Remove transform transitions and animations from action buttons
- Restyle buttons with consistent sizing, colors, and hover states
- Convert anchor tags to buttons with proper type attributes
- Add click handlers for opening links in new tabs with security attributes
- Clear subfolder list when repopulating options
- Replace HTML <select> elements with custom div-based dropdown components
- Add CSS variable --ml-download-control-height for consistent control sizing
- Update search source and category selectors to use custom styled dropdowns
- Improve responsive layout with grid template columns and media queries
- Add keyboard and mouse event handling for custom dropdowns
- Ensure consistent styling across all form controls
Add helper methods to normalize and split model and version names, render versioned model names in search results, cards, loading states and CivitAI links, include version metadata on rows, and add CSS styling for model version text. Improves display clarity when models include version names and avoids duplicated filenames.
Add getDownloadSourceTableRow to render known/download-source rows
Include known download source in search results and prevent duplicates
Add wireSearchDownloadButtons to attach download handlers
Allow custom search button text and render download target controls
Minor UI/formatting fixes and URN refresh alignment
Add estimated progress timers and helpers to show smoother search progress across sources. Track per-run timers, compute eased percentages, update progress state on completion/error, and adjust CSS for running state and transitions.
Improve UX for model relinking: add context menu actions (Show Info, Open on CivitAI, Open containing folder), sanitize CivitAI descriptions, persist info dialog size, and adjust CSS spacing and visibility.
Improve text on buttons, info-panel rows, settings tooltips, and menu
labels to more accurately describe what each element does rather than
stating the obvious. No functional changes.
- Rename web/utils/{css-loader→css_loader,ErrorHandler→error_handler,IconUtils→icon_utils,ResourceManager→resource_manager} and web/log_system/{LoggerUtils→log_funcs} to lowercase_kebab-case naming convention
- Update all cross-import paths in the recreated utils and linker.js accordingly
- Add removeResolvedFromPopup / markEntryAsResolved to visually mark resolved entries in the ComfyUI Missing Models popup
- Add updateNodesDirectly to update graph node widgets in-place without triggering a full workflow reload
- Add checkAndOpenForMissingModels with isAutoOpenEnabled/setAutoOpenEnabled to auto-open the linker dialog when a workflow with missing models is loaded
- Add helper methods getMissingSearchKey, getSearchState, mergeSearchResults for per-entry search state caching and merging
Move the inline search-control HTML block into a dedicated renderSearchControls()
method on LinkerManagerDialog so the search bar can be reused from multiple code paths.
Previously, the search controls were only rendered when no download source was known.
Now they are also shown when a download URL exists, giving users the ability to run a
search alongside the resolved download source.
Also normalises line endings on one affected line.
Update the HuggingFace Token tooltip to provide precise guidance on
creating a fine-grained token with only Read access to public gated
repos, explicitly noting that Write, Inference, Webhooks, Billing,
Jobs, and org permissions are not needed.