Skip to content

v0.0.5

tagged this 21 Feb 13:01
---Description
* .gitignore: Ignore .mypy_cache
* pyproject.toml: Add backoff and requests deps, remove comfyui_utils, env-based MCPO API key and ComfyUI host in start_mcpo script
* src/comfyui_mcp/__about__.py: Version bump
* src/comfyui_mcp/argument_parser.py: Extra params for workflow submit, formatting fixes
* src/comfyui_mcp/base_types.py: Pydantic models for submission, queue, and result
* src/comfyui_mcp/exceptions.py: Custom exceptions for new workflow submission system
* src/comfyui_mcp/function_utils.py: Formatting fixes
* src/comfyui_mcp/server.py: Formatting fixes
* src/comfyui_mcp/workflow_loader.py: Use the new ComfyUI client for workflow list and conversion
* src/comfyui_mcp/workflow_utils.py: Replacement ComfyUI client with async wait_for_completion and execute_workflow
* tests/comfyui_mcp/test_base_types.py: Tests for queue, history, job status, and prompt response models
* tests/comfyui_mcp/test_server.py: Update to use new ComfyUI client mocks and AsyncMock
* tests/comfyui_mcp/test_workflow_loader.py: Update to use new ComfyUI client mocks
* tests/comfyui_mcp/test_workflow_utils.py: Full coverage for ComfyUIClient methods and async workflows

---Motivation
* Suspected websocket disconnects after workflow starts but before final state payload is sent back causing lost results
    * Missing files in the result payload do complete in comfy
    * History in comfyui is correct for submitted jobs
    * Partial results are not always contiguous but can be
* This change replaces websocket-based submission with HTTP polling for stronger guarantees that results wont get lost due to transient issues
* Async wait_for_completion prevents blocking during concurrent calls

---Testing
* hatch test --cover (110 passed, 99% coverage)
* hatch build (sdist + wheel)
* Manual start_mcpo with env vars against live ComfyUI instance
* Auth probe confirmed: 401 without key, 200 with correct key
Assets 2
Loading