ComfyUI-Manager/comfyui_manager
Jedrzej Kosinski 396954feb6 feat: add pygit2 compatibility wrapper for standalone Desktop 2.0 installs
Add git_compat.py abstraction layer that wraps both GitPython and pygit2
behind a unified GitRepo interface. When CM_USE_PYGIT2=1 is set (by the
Desktop 2.0 Launcher for standalone installs), or when system git is not
available, the pygit2 backend is used automatically.

Key changes:
- New comfyui_manager/common/git_compat.py with abstract GitRepo base class,
  _GitPythonRepo (1:1 pass-throughs) and _Pygit2Repo implementations
- All 6 non-legacy files updated to use the wrapper:
  - comfyui_manager/glob/manager_core.py (14 git.Repo usages)
  - comfyui_manager/common/git_helper.py (7 git.Repo usages)
  - comfyui_manager/common/context.py (1 usage)
  - comfyui_manager/glob/utils/environment_utils.py (2 usages)
  - cm_cli/__main__.py (1 usage)
  - comfyui_manager/common/timestamp_utils.py (repo.heads usage)
- get_script_env() propagates CM_USE_PYGIT2 to subprocesses
- git_helper.py uses sys.path.insert to find git_compat as standalone script
- All repo handles wrapped in context managers to prevent resource leaks
- get_head_by_name returns _HeadProxy for interface consistency
- Submodule fallback logs clear message when system git is absent
- 47 tests comparing both backends via subprocess isolation

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d0ec5-cb9f-74df-a1a2-0c8154a330b3
2026-03-20 23:32:56 -07:00
..
common feat: add pygit2 compatibility wrapper for standalone Desktop 2.0 installs 2026-03-20 23:32:56 -07:00
data_models feat: Add Pydantic validation to import_fail_info_bulk endpoint 2025-07-31 14:15:21 +09:00
glob feat: add pygit2 compatibility wrapper for standalone Desktop 2.0 installs 2026-03-20 23:32:56 -07:00
js refactor: remove preview_method and component legacy features 2025-12-19 22:39:59 +09:00
legacy feat(cli): add update-cache command, purge reinstall fallback, and batch failure tracking (#2693) 2026-03-15 09:45:25 +09:00
__init__.py Fix for peername tuple size variability in get_client_ip (#2427) 2025-12-27 04:53:17 +09:00
alter-list.json Merge branch 'main' into draft-v4 2025-09-03 01:24:47 +09:00
channels.list.template fixed: missing channels.list.template 2025-04-23 08:58:47 +09:00
custom-node-list.json Merge branch 'main' into manager-v4 2025-11-26 22:14:11 +09:00
extension-node-map.json Merge branch 'main' into manager-v4 2025-11-26 22:14:11 +09:00
extras.json Merge branch 'main' into draft-v4 2025-09-03 01:24:47 +09:00
github-stats.json Merge branch 'main' into manager-v4 2025-11-26 22:14:11 +09:00
model-list.json Merge branch 'main' into manager-v4 2025-11-26 22:14:11 +09:00
prestartup_script.py feat(deps): add unified dependency resolver using uv pip compile (#2589) 2026-03-07 06:51:53 +09:00
README.md Merge branch 'main' into draft-v4 2025-06-01 06:23:11 +09:00

ComfyUI-Manager: Core Backend (glob)

This directory contains the Python backend modules that power ComfyUI-Manager, handling the core functionality of node management, downloading, security, and server operations.

Directory Structure

  • glob/ - code for new cacheless ComfyUI-Manager
  • legacy/ - code for legacy ComfyUI-Manager

Core Modules

  • manager_core.py: The central implementation of management functions, handling configuration, installation, updates, and node management.
  • manager_server.py: Implements server functionality and API endpoints for the web interface to interact with the backend.

Specialized Modules

  • share_3rdparty.py: Manages integration with third-party sharing platforms.

Architecture

The backend follows a modular design pattern with clear separation of concerns:

  1. Core Layer: Manager modules provide the primary API and business logic
  2. Utility Layer: Helper modules provide specialized functionality
  3. Integration Layer: Modules that connect to external systems

Security Model

The system implements a comprehensive security framework with multiple levels:

  • Block: Highest security - blocks most remote operations
  • High: Allows only specific trusted operations
  • Middle: Standard security for most users
  • Normal-: More permissive for advanced users
  • Weak: Lowest security for development environments

Implementation Details

  • The backend is designed to work seamlessly with ComfyUI
  • Asynchronous task queuing is implemented for background operations
  • The system supports multiple installation modes
  • Error handling and risk assessment are integrated throughout the codebase

API Integration

The backend exposes a REST API via manager_server.py that enables:

  • Custom node management (install, update, disable, remove)
  • Model downloading and organization
  • System configuration
  • Snapshot management
  • Workflow component handling