Commit Graph
687 Commits
Author SHA1 Message Date
Dariusz L 3fdec8c24e refactor(loaded): extract loaded model route handlers into service 2026-08-02 02:38:08 +02:00
Dariusz L d8aed83e04 refactor(directories): extract directory route handlers into DirectoryService 2026-08-02 02:25:08 +02:00
Dariusz L c2f44e7831 refactor(metadata): extract metadata route handlers into MetadataService and add tests 2026-08-02 02:14:10 +02:00
Dariusz L 627dd5a84a refactor(scanner): extract scanner route handlers into ScannerService and add tests 2026-08-02 02:05:27 +02:00
Dariusz L e5bbedad46 Update .gitignore 2026-08-02 01:58:32 +02:00
Dariusz L ffc63529ed test(downloads): add download route tests for headers, metadata, and error handling 2026-08-02 01:56:23 +02:00
Dariusz L 68321b7799 refactor(downloads): extract download route handlers into DownloadService and add tests 2026-08-02 01:50:27 +02:00
Dariusz L e9ffb8f632 refactor(hash): extract hash route handlers into HashService and add tests 2026-08-02 01:38:01 +02:00
Dariusz L a6634a5f61 test(search): add SearchOrchestrator component tests 2026-08-02 01:24:41 +02:00
Dariusz L 1f82523bef test(search): add search service component tests, coverage config, and dev dependencies 2026-08-02 01:15:45 +02:00
Dariusz L b9054f0d22 refactor(search): centralize route context dependency resolution in SearchDependencies 2026-08-02 01:04:10 +02:00
Dariusz L b4b03bb335 refactor(search): extract orchestrator, providers, and cache from SearchService
Replace the 1095-line monolithic SearchService with a thin facade that
delegates to SearchOrchestrator. Split the implementation into three
focused modules:

- search_orchestrator.py: request parsing, provider coordination, and
  response construction
- search_providers.py: per-source execution, progress callbacks, and
  async task creation
- search_cache.py: timestamping and stable cache stamping for results

Add unit tests for the new components in
tests/test_search_service_components.py. Preserve the existing HTTP
route behavior by keeping SearchService.search_sources as the stable
route-facing API.
2026-08-02 00:56:18 +02:00
Dariusz L 632ce2a4ce Add route registry tests 2026-08-02 00:42:10 +02:00
Dariusz L 380e5d4f9b refactor: replace generic DependencyCallable with explicit Protocols for model services 2026-08-02 00:32:57 +02:00
Dariusz L 1dd1b50635 refactor: introduce typed dependency dataclasses for model services
Replace dynamic MODEL_SERVICE_DEPENDENCIES injection with frozen dataclasses
(CivitAISearchDependencies, CustomUrlDependencies, ModelDetailsDependencies)
to make service dependencies explicit and type-safe. Update model services to
construct via RouteContext, and add tests enforcing minimal dataclass fields.
2026-08-02 00:25:45 +02:00
Dariusz L c247c4a7a4 refactor: split model_service into focused service classes
Break down the monolithic model_service into smaller, single-responsibility
services: CivitAISearchService, CustomUrlService, and ModelDetailsService.
Introduce ModelServiceDependencies base class to centralize RouteContext
dependency injection. Update model_service to act as a thin facade that
delegates to the specialized services. Add unit tests validating the new
service boundaries and basic request validation behavior.
2026-08-02 00:17:45 +02:00
Dariusz L 5fd9bc5802 refactor: extract model route handlers into ModelService 2026-08-02 00:10:25 +02:00
Dariusz L be0794e36d refactor: extract workflow route handlers into WorkflowService 2026-08-01 23:56:17 +02:00
Dariusz L 91fa8f391d refactor(search): extract search orchestration into SearchService 2026-08-01 23:50:56 +02:00
Dariusz L 9b5567f8e1 Add route tests and ClassVar typing to refactoring targets 2026-08-01 23:36:43 +02:00
Dariusz L db7977fb55 refactor(routes): split large route modules into focused submodules
Break monolithic model_info, search, and workflow route files into
smaller modules by responsibility: civitai_search, custom_url,
model_details, search_support, source_search, workflow_analysis,
hashes, and loaded_models. Update registry imports to preserve the
existing route registrations and API surface. Add partition coverage
tests to ensure no route endpoints are dropped or duplicated.
2026-08-01 23:19:56 +02:00
Dariusz L 6ff887f004 refactor: introduce RouteContext for route dependency registration 2026-08-01 23:09:51 +02:00
Dariusz L 4815cee748 Update huggingface-author-index.json 2026-08-01 22:51:04 +02:00
Dariusz L c7a0f2f78c fix: prefer selected-file hash over inherited workflow or source hash 2026-08-01 22:50:13 +02:00
Dariusz L d906a14804 refactor: split route registry into dedicated route modules 2026-08-01 22:32:20 +02:00
Dariusz L b12cc65a10 refactor: extract API routes into core/routes package
Move the inline route definitions out of __init__.py into a new core/routes
package (registry, base_models, helpers, settings, version). Add the
JobProgressTracker utility in core/progress.py and extract version discovery
logic into core/version.py. Update tests to cover the refactored structure.
2026-08-01 21:57:51 +02:00
Dariusz L 422899e91b feat(resolver): keep model description separate from version notes 2026-08-01 21:12:53 +02:00
Dariusz L e3affba329 Add Model Resolver version status feature 2026-08-01 20:56:02 +02:00
Dariusz L 201936b79a feat(downloader): add SHA-256 verification for Python downloads
Implement streaming SHA-256 verification for Python download backend,
writing to a .part file first and publishing to the final path only after
the hash matches the source metadata. Mismatched downloads are preserved
at .badsha instead of being silently deleted. Close the download response
in a finally block to avoid leaking handles on cancellation or errors.
2026-08-01 20:28:18 +02:00
Dariusz L 74e4971e05 Update pyproject.toml v1.1.0 2026-08-01 17:08:06 +02:00
Dariusz L 7ba80de5d4 style(resolver): improve context menu accessibility and spacing 2026-08-01 17:07:56 +02:00
Dariusz L 9cbc3098c6 Preserve missing browser detail width across rerenders 2026-08-01 15:15:18 +02:00
Dariusz L 95699e72a8 Reorganize CSS design tokens and update README 2026-08-01 15:03:57 +02:00
Dariusz L 2abcf15406 chore(css): remove unused CSS custom properties from css-variables.css 2026-08-01 15:00:40 +02:00
Dariusz L 45c3aa19f1 Replace hardcoded CSS sizes with custom properties for resolver UI 2026-08-01 14:56:13 +02:00
Dariusz L e732f9c408 css: centralize repeated transition tokens into CSS variables 2026-08-01 14:52:41 +02:00
Dariusz L a4bc220b0f css: centralize repeated tokens into CSS variables for font stacks, shadows, and button heights 2026-08-01 14:46:34 +02:00
Dariusz L 851e7d5246 Replace CSS custom properties with literal values in resolver styles 2026-08-01 14:35:33 +02:00
Dariusz L e9ac7fb70b refactor(web/css): replace hardcoded colors with CSS custom properties
Adds new badge, gradient, and surface variables to css-variables.css,
then uses them across resolver-main.css and resolver-shell.css to
centralize theme values and simplify future color adjustments.
2026-08-01 14:28:09 +02:00
Dariusz L c31e724a8f refactor: replace additional hardcoded CSS values with design tokens in resolver stylesheets 2026-08-01 14:22:00 +02:00
Dariusz L 1f6d15da38 refactor: replace hardcoded CSS values with design tokens 2026-08-01 14:15:56 +02:00
Dariusz L 57a5a12aac chore: replace hardcoded CSS values with design tokens in resolver stylesheets 2026-08-01 13:59:10 +02:00
Dariusz L 7ba2a4c28a Increase resolver UI font size to 14px for better readability 2026-08-01 13:53:20 +02:00
Dariusz L d4cccde2c2 refactor: switch resolver UI to custom CSS variables and add dock drag preview 2026-08-01 13:48:02 +02:00
Dariusz L 25b09799fb Simplify Missing Models browser splitter resize behavior 2026-07-31 21:24:11 +02:00
Dariusz L df4d4a36ac Improve Missing Models browser resize behavior 2026-07-31 20:54:33 +02:00
Dariusz L 2afdf6d15d Update pyproject.toml v1.0.9 2026-07-29 17:03:58 +02:00
Dariusz L a8ba99800c Expand HuggingFace author fallback to multiple known publishers
Support both Comfy-Org and Kijai author indexes as known HuggingFace fallbacks, aggregate their status in the backend, refresh the cached author index, and update the frontend UI and tests.
2026-07-29 16:18:25 +02:00
Dariusz L cb032c7c3d feat: track missing models for LoRA loader workflow signatures 2026-07-29 15:53:26 +02:00
Dariusz L 8822bb0064 Preserve Missing Models browser geometry during refresh 2026-07-28 19:05:43 +02:00