a44c52f5be
feat(cli): add uv-compile command and --uv-compile flag for batch dependency resolution
...
Add two CLI entry points for the unified dependency resolver:
- `cm_cli uv-compile`: standalone batch resolution of all installed
node pack dependencies via uv pip compile
- `cm_cli install --uv-compile`: skip per-node pip, batch-resolve all
deps after install completes (mutually exclusive with --no-deps)
Both use a shared `_run_unified_resolve()` helper that passes real
cm_global values (pip_blacklist, pip_overrides, pip_downgrade_blacklist)
and guarantees PIPFixer.fix_broken() runs via try/finally.
Update DESIGN, PRD, and TEST docs for consistency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 06:44:15 +09:00
ca8698533d
test(deps): add E2E scripts and update test documentation
...
Add automated E2E test scripts for unified dependency resolver:
- setup_e2e_env.sh: idempotent environment setup (clone ComfyUI,
create venv, install deps, symlink Manager, write config.ini)
- start_comfyui.sh: foreground-blocking launcher using
tail -f | grep -q readiness detection
- stop_comfyui.sh: graceful SIGTERM → SIGKILL shutdown
Update test documentation reflecting E2E testing findings:
- TEST-environment-setup.md: add automated script usage, document
caveats (PYTHONPATH, config.ini path, Manager v4 /v2/ prefix,
Blocked by policy, bash ((var++)) trap, git+https:// rejection)
- TEST-unified-dep-resolver.md: add TC-17 (restart dependency
detection), TC-18 (real node pack integration), Validated
Behaviors section, normalize API port to 8199
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 08:59:08 +09:00
df072a101f
test(deps): add manual test cases for unified dependency resolver
...
Add environment setup guide and 16 test cases covering:
- Normal batch resolution (TC-1), disabled state (TC-2)
- Fallback paths: uv unavailable (TC-3), compile fail (TC-4),
install fail (TC-5), generic exception (TC-16)
- install.py preservation (TC-6), runtime defer (TC-13)
- Input sanitization: dangerous patterns (TC-7), path separators
(TC-8), index-url separation (TC-9), credential redaction (TC-10)
- Disabled pack exclusion (TC-11), no-deps path (TC-12)
- Both unified resolver guard paths (TC-14), post-fallback (TC-15)
Includes API reference, traceability matrix, and out-of-scope items.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 07:40:34 +09:00
e60a66b1e6
feat(deps): add unified dependency resolver using uv pip compile
...
- Add UnifiedDepResolver module with 7 FRs: collect, compile, install pipeline
- Integrate startup batch resolution in prestartup_script.py (module scope)
- Skip per-node pip install in execute_install_script() when unified mode active
- Add use_unified_resolver config flag following use_uv pattern
- Input sanitization: reject -r, -e, --find-links, @ file://, path separators
- Handle --index-url/--extra-index-url separation with credential redaction
- Fallback to per-node pip on resolver failure or uv unavailability
- Add 98 unit tests across 20 test classes
- Add PRD and Design docs with cm_global integration marked as DEFERRED
2026-02-07 06:02:53 +09:00