Commit Graph
177 Commits
Author SHA1 Message Date
Dariusz L 0e02bd9eb6 feat: add batch search cancellation and dynamic footer menu items 2026-06-06 02:59:42 +02:00
Dariusz L df8433457c feat: add per-workflow search state caching and background job deduplication 2026-06-06 02:54:59 +02:00
Dariusz L 1ed4941b6b feat: improve workflow tab click detection and stable graph signing
- Add isLikelyWorkflowTabClickTarget to distinguish workflow tab clicks
  from generic document clicks, preventing false 'workflow-change'
  triggers and unnecessary refresh cycles.
- Add getWorkflowSignatureData to produce a stable, normalized signature
  for workflow data (sorted nodes/links, top-level signature included).
- Update document-click handler to use a new 'workflow-tab-click' reason
  via the click-target heuristic.
- Simplify refreshForActiveWorkflowChange retry logic by removing the
  pending-graph-switch special case, since click origin is now explicit.
2026-06-06 02:11:15 +02:00
Dariusz L 145b061c78 fix: improve workflow change detection and graph signature stale checks
- Patch app.loadGraphData to dispatch custom event after loading,
  ensuring workflow handlers fire when switching active workflow
- Add document-click handler to catch workflow changes initiated by clicks
- Pass event options through removeEventListener for proper cleanup
- Detect possible pending graph switch on document-click and reduce
  max refresh attempts from 8 to 3 to avoid stale graph timers
2026-06-06 02:06:09 +02:00
Dariusz L 827017f7a0 Revert "revert: remove server-side settings persistence and revert to localStorage-only"
This reverts commit 888ab171c3.
2026-06-05 06:03:41 +02:00
Dariusz L 888ab171c3 revert: remove server-side settings persistence and revert to localStorage-only
The previous commit introduced server-side persistence for API keys and
preferences via a model_resolver_settings.json file and POST/GET routes.
This change reverts that behavior, returning to localStorage-only storage
for settings, which is simpler and avoids persisting sensitive credentials
to disk. Also removes the now-unnecessary .gitignore entry.
2026-06-05 06:03:04 +02:00
Dariusz L 96d6456310 feat: add server-side settings persistence for API keys and preferences 2026-06-05 06:00:06 +02:00
Dariusz L 5a8e68655f refactor: rename Model Linker to Model Resolver
Replace all link dialog terminology with resolver terminology
throughout the codebase, including module names, CSS classes,
IDs, JS variables, SVG gradient IDs, and log module names.
Remove the old web/linker/ tree and introduce the new web/resolver/
tree with parallel structure. Also replace core/linker.py with
core/resolver.py.
2026-06-05 05:53:39 +02:00
Dariusz L b8b6439354 refactor: move monolithic link dialog methods into domain-based modules 2026-06-05 04:32:56 +02:00
Dariusz L 51ebb17f89 refactor: modularize web/linker.js into separate ES module files 2026-06-05 04:23:41 +02:00
Dariusz L d38e1cbb67 Add inline credential validation endpoints and UI for CivitAI, HuggingFace, and Brave Search 2026-06-05 03:56:15 +02:00
Dariusz L c3fad878af Add persistent HuggingFace author index cache and reorganize options UI 2026-06-05 03:36:58 +02:00
Dariusz L 4b57d07ffa Add batch selection UI, footer command menus, and helper filters for missing models 2026-06-05 02:51:23 +02:00
Dariusz L c4ee8844d4 Improve footer button accessibility and visual disabled state
Adds ARIA labels, tooltips, and aria-disabled attributes to all footer
buttons (Apply, Auto-link, Download All). Enforces a visible disabled
state via the .ml-btn-is-disabled class instead of relying on the
native disabled attribute, which is compatible with the custom dialog.
2026-06-05 02:31:51 +02:00
Dariusz L 1618273c75 Replace local database icon with ComfyUI icon and update styling 2026-06-04 19:54:18 +02:00
Dariusz L f9e8ce3eb4 Add Local Database status and update feature for model-list.json
Add backend endpoints (/model_linker/model-list/status, /model_linker/model-list/update)
that let users check whether their bundled ComfyUI-Manager model-list.json is current
and download the latest version from GitHub, with SHA tracking and cache invalidation.

Add corresponding UI in the Options dialog under a new 'Local Database' section
with status display, remote check, and update controls.
2026-06-04 19:48:12 +02:00
Dariusz L 8d7799e0af Propagate exact-match model list size to popular results and fix HuggingFace file page URLs 2026-06-04 19:39:19 +02:00
Dariusz L 85a1f24007 Persist pending selections and search state per workflow and refresh on workflow-switch 2026-06-04 19:21:34 +02:00
Dariusz L 711e8033b1 Allow force-switching to the active tab in switchTab and use it from the scheduler config save flow 2026-06-04 18:59:43 +02:00
Dariusz L 6102972ea8 Add copy mode switching, refactor copy section UI, and harden XSS handling 2026-06-04 18:55:12 +02:00
Dariusz L a277d3d6b6 Fix XSS in copy section and tighten UI spacing 2026-06-03 18:21:04 +02:00
Dariusz L ae4398fb56 Use provider-specific icons for CivitAI and HuggingFace options nav 2026-06-03 18:12:44 +02:00
Dariusz L 37011c080a Remove horizontal padding from missing detail pane card body 2026-06-03 17:21:32 +02:00
Dariusz L f01656fe40 Allow queue panel to collapse to 0px during edge-drag open 2026-06-03 16:52:17 +02:00
Dariusz L 1cf5b448cb Improve queue panel resize UX with edge-drag collapse preview and collapse-to-edge toggle 2026-06-03 16:43:20 +02:00
Dariusz L 5f3262e266 Improve panel resize performance with RAF throttling and flex layout 2026-06-03 16:07:59 +02:00
Dariusz L 719b84fe6a Remove padding from queue items for flush, borderless layout 2026-06-03 15:31:51 +02:00
Dariusz L ca25ba382a Improve initial URN local match refresh handling
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.
2026-05-29 22:46:03 +02:00
Dariusz L 693290ebd6 Refactor URN resolution: extract helper methods, add promise-based caching for URN data and local matches 2026-05-29 19:16:15 +02:00
Dariusz L d6660dad26 Add search source enable/disable settings with persistence
- 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)
2026-05-29 19:06:01 +02:00
Dariusz L c4e86edf94 Add CivArchive model source to Model Linker extension 2026-05-29 18:45:52 +02:00
Dariusz L 2b27a05961 Restyle queue items and add HTML escaping for security 2026-05-29 17:57:05 +02:00
Dariusz L 4dd3c99833 Refactor queue panel visibility into updateQueueVisibility method and refresh splitter styling 2026-05-29 17:52:54 +02:00
Dariusz L 15e51951a5 Update linker options panel: CSS redesign, add icons to nav buttons, update title 2026-05-29 16:53:17 +02:00
Dariusz L 9df0400fae Refactor button styling to use CSS variables and add support for model linker modal 2026-05-29 16:34:40 +02:00
Dariusz L 235525e454 Update externalLink and internalLink SVG icons 2026-05-29 16:13:29 +02:00
Dariusz L 7ecea75af0 Adjust fullscreen behavior when docked and update SVG icons to use stroke-width:2 and round line caps 2026-05-29 15:44:51 +02:00
Dariusz L ebe8c0a4ea Add draggable splitter to adjust width of missing model detail pane in linker UI 2026-05-29 15:23:28 +02:00
Dariusz L 53cdee3f61 Update dialog close to conditionally collapse sidebar
- 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
2026-05-29 15:11:28 +02:00
Dariusz L eb08ab9b9d Update match path resolution and tooltip rendering in LinkerManagerDialog 2026-05-29 04:10:01 +02:00
Dariusz L 22b00d9279 Refactor viewport calculation for node positioning with dock obstruction handling 2026-05-29 04:01:06 +02:00
Dariusz L 4abf5bb725 Add persistence for sidebar open state (floating/docked) and improve sidebar toggle behavior 2026-05-29 03:52:14 +02:00
Dariusz L af2a3cd645 Add docking functionality to Model Linker dialog 2026-05-29 03:38:23 +02:00
Dariusz L ba9ae41f1e Refactor: introduce CSS variables for model type colors and update linker UI to use them 2026-05-28 15:57:04 +02:00
Dariusz L 93c5cad1d5 feat: add type-based chip styling and dynamic class assignment for model types 2026-05-28 15:54:28 +02:00
Dariusz L b5beace334 Update drag handling: use topbar for dragging, add cursor styles, and exclude certain elements from drag initiation 2026-05-28 15:12:00 +02:00
Dariusz L 6124005f6c Use CSS variable for missing panel backgrounds
Added --ml-missing-bg variable and replaced hardcoded background
values with var(--ml-missing-bg) for consistency across missing
state UI components.
2026-05-28 06:45:31 +02:00
Dariusz L 4ed0247005 Refactor tab UI: add ml-tab-label spans, adjust hover/focus states, and simplify transitions
- 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
2026-05-28 06:36:44 +02:00
Dariusz L f2ca72881e Fix model-linker drag handle alignment and sizing
- Add align-self: flex-start for proper positioning
- Change dimensions to 30x30px square
- Adjust border-radius to 8px
- Add margin-top and box-sizing for consistent layout
2026-05-28 06:28:43 +02:00
Dariusz L 015db24f52 fix: disable pointer-events and transition on active tab
Prevent mouse events and animation on the active tab element in the model linker UI.
2026-05-28 06:25:25 +02:00