Commit Graph
100 Commits
Author SHA1 Message Date
Dr.Lt.DataandClaude Opus 4.6 b11aee7c1e fix(deps): harden input sanitization, expand test coverage, bump version
Security:
- Add _INLINE_DANGEROUS_OPTIONS regex to catch pip options after package
  names (--find-links, --constraint, --requirement, --editable, --trusted-host,
  --global-option, --install-option and short forms)
- Stage index URLs in pending_urls, commit only after full line validation
  to prevent URL injection from rejected lines

Tests:
- Add 50 new tests: inline sanitization, false-positive guards, parse
  helpers (_parse_conflicts, _parse_install_output), exception paths
  (91 → 141 total, all pass)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 05:35:23 +09:00
Dr.Lt.DataandClaude Opus 4.6 ca8698533d test(deps): add E2E scripts and update test documentation
CI / Validate OpenAPI Specification (push) Has been cancelled
CI / Code Quality Checks (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
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
Dr.Lt.DataandClaude Opus 4.6 3d9c9ca8de fix(deps): support multiple index URLs per line and optimize downgrade check
- Rewrite _split_index_url() to handle multiple --index-url /
  --extra-index-url options on a single requirements.txt line using
  regex-based parsing instead of single split.
- Cache installed_packages snapshot in collect_requirements() to avoid
  repeated subprocess calls during downgrade blacklist checks.
- Add unit tests for multi-URL lines and bare --index-url edge case.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 08:46:42 +09:00
Dr.Lt.DataandClaude Opus 4.6 da7e6f4454 fix(deps): prevent read_config() from overriding resolver fallback state
read_config() in manager_core.py unconditionally re-read
use_unified_resolver from config.ini, undoing the False set by
prestartup_script.py on resolver fallback. This caused runtime
installs to still defer deps even after a startup batch failure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:26:06 +09:00
Dr.Lt.DataandClaude Opus 4.6 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
Dr.Lt.DataandClaude Opus 4.6 bd38ff25a1 fix(deps): reset use_unified_resolver flag on startup fallback
When the unified resolver fails at startup (compile error, install
error, uv unavailable, or generic exception), the runtime flag was
not being reset to False. This caused subsequent runtime installs
to incorrectly defer pip dependencies instead of falling back to
per-node pip install.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:40:27 +09:00
Dr.Lt.Data 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
Dr.Lt.Data ef8703a3d7 security(api): add path traversal and CRLF injection protection
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
- Add is_safe_path_target() and get_safe_file_path() utilities
- Validate history id and snapshot target parameters in API endpoints
- Sanitize config string values to prevent CRLF injection
2026-01-08 18:35:03 +09:00
Dr.Lt.Data f85a12f2a2 bump version to 4.0.4
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
2025-12-27 04:56:48 +09:00
Dr.Lt.Data 3f0fc85b95 refactor(core): add verbose config, improve module lookup, fix is_valid_url
- Add verbose config option to control CNR fetch logging
- Improve get_module_name with cnr_id/aux_id fallback via repo_cnr_map
- Fix is_valid_url misuse of try/finally that could cause runtime errors
- Move SSH_URL_PATTERN to module-level constant for performance
2025-12-27 03:57:19 +09:00
Dr.Lt.Data b9def4cb6e refactor: remove preview_method and component legacy features
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
Preview Method Removal:
- Remove preview method UI from Manager settings panel
- Remove /v2/manager/preview_method API endpoint (legacy)
- Remove set_preview_method() and get_current_preview_method() functions
- Remove preview_method from config read/write operations
- Clean up latent_preview imports

Use ComfyUI Settings > Execution > Live preview method instead.

Component Feature Removal:
- Delete components-manager.js entirely
- Remove ComponentBuilderDialog, load_components, set_component_policy
- Remove component policy UI from Manager settings panel
- Remove /v2/manager/policy/component API endpoint
- Remove /v2/manager/component/save and /loads API endpoints
- Remove component_policy from config read/write operations
- Remove manager_components_path from context
2025-12-19 22:39:59 +09:00
Dr.Lt.Data a542695e9c chore: bump version to 4.0.3b6 and fix git_helper path
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
- Update version from 4.0.3b5 to 4.0.3b6 in pyproject.toml
- Fix git_helper.py path to include 'common' subdirectory in context.py
2025-12-18 18:45:31 +09:00
Dr.Lt.Data 2779c66b39 feat(version): apply semver-based version sorting to glob and add master fallback
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
- Apply PR #2334 changes to glob/manager_core.py (was only in legacy)
- Add master branch fallback when remote/HEAD reference is unavailable
2025-12-15 03:39:13 +09:00
Dr.Lt.Data 952613c07b fix(api): improve import_fail_info_bulk lookup for cnr_id and aux_id
- Add aux_id format (author/repo) support in normalize_to_github_id()
- Fix get_module_name() to use URL normalization for unknown_active_nodes
- Use NormalizedKeyDict in reload() to maintain normalized key lookup
2025-12-15 02:54:30 +09:00
Dr.Lt.DataandClaude Opus 4.5 8e8b6ca724 fix(git): handle divergent branches safely + datetime fallback
- Use --ff-only flag to detect non-fast-forward situations
- Create backup branch before resetting divergent local branch
- Reset to remote branch when fast-forward is not possible
- Add timestamp_utils.py for Mac datetime module compatibility
- Migrate all datetime usages to centralized utilities
- Bump version to 4.0.3b5

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 22:45:05 +09:00
Dr.Lt.Data 3425fb7a14 docs: update manager data path to __manager
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
2025-12-03 02:38:15 +09:00
Dr.Lt.Data c69e7bcf03 feat(security): use system user directory for manager data
Use folder_paths.get_system_user_directory("manager") to protect manager config and data from HTTP endpoint access.

Ref: comfyanonymous/ComfyUI#10966
2025-12-03 02:34:57 +09:00
Dr.Lt.Data 85ebcd9897 In response to the patch that separates manager_requirements.txt from requirements.txt, this update additionally refreshes manager_requirements.txt when it is present.
Publish to PyPI / build-and-publish (push) Has been cancelled
Python Linting / Run Ruff (push) Has been cancelled
https://github.com/ltdrdata/ComfyUI/commit/79fb96488aa3842b9799a96e570535c6aed8e963
2025-11-26 22:35:03 +09:00
Dr.Lt.Data 69b6f1a66b Merge branch 'main' into manager-v4 2025-11-26 22:14:11 +09:00
Dr.Lt.Data e4a90089ab fixed: a bug where updating ComfyUI using Update: ComfyUI Stable Version did not updating ComfyUI's dependencies 2025-11-26 21:54:28 +09:00
Dr.Lt.Data 674b9f3705 update DB 2025-11-26 21:41:55 +09:00
Dr.Lt.Data 4941fb8aa0 fixed: scanner.py
Python Linting / Run Ruff (push) Waiting to run
2025-11-26 08:58:02 +09:00
Dr.Lt.Data 183af0dfa5 update DB
Python Linting / Run Ruff (push) Waiting to run
2025-11-25 12:59:01 +09:00
Dr.Lt.Data 45ac5429f8 "update DB" 2025-11-25 12:46:44 +09:00
Dr.Lt.Data c771977a95 update DB
Python Linting / Run Ruff (push) Waiting to run
2025-11-24 23:10:06 +09:00
Dr.Lt.Data 668d7bbb2c update DB 2025-11-24 22:56:38 +09:00
Dr.Lt.Data a9a8d05115 update DB 2025-11-24 22:54:26 +09:00
Dr.Lt.Data dc5bddbc17 update DB
Python Linting / Run Ruff (push) Waiting to run
2025-11-24 02:00:50 +09:00
Dr.Lt.Data c96fdb3c7a update DB 2025-11-22 10:36:00 +09:00
Dr.Lt.Data c090abcc02 update DB 2025-11-22 09:46:14 +09:00
Dr.Lt.Data 10fbfb88f7 update DB 2025-11-22 09:43:20 +09:00
Dr.Lt.Data 095cc3f792 Merge PR #2297: Add PDF Tools and update AAA Metadata System
Resolved merge conflict with PR #2297 by integrating:
- PDF Tools - Advanced PDF Processing & OCR (new entry)
- AAA Metadata System (updated with enhanced description and metadata)
- HYPIR Image Restoration (preserved from main branch)

All entries use consistent spacing and JSON formatting.
2025-11-22 09:33:58 +09:00
Dr.Lt.Data 7ac10f9442 update DB 2025-11-22 09:25:07 +09:00
Dr.Lt.Data 44ba79aa31 update DB 2025-11-22 09:15:50 +09:00
Dr.Lt.Data 033acffad1 update DB 2025-11-22 08:42:06 +09:00
Dr.Lt.Data dc9b6d655b update DB 2025-11-22 08:40:02 +09:00
Dr.Lt.Data e328353664 update DB 2025-11-21 00:33:43 +09:00
Dr.Lt.Data ff335ff1a0 update DB 2025-11-19 23:12:01 +09:00
Dr.Lt.Data cb3036ef81 modified: scanner.py – updated main so it can be imported 2025-11-19 22:43:28 +09:00
Dr.Lt.Data f762906188 update DB 2025-11-19 22:42:14 +09:00
Dr.Lt.Data 1a0d24110a update DB 2025-11-19 22:38:35 +09:00
Dr.Lt.Data a8a7024a84 update DB 2025-11-19 18:46:14 +09:00
Dr.Lt.Data d93d002da0 improved: scanner.py - bugfix about preemption and support extraction only mode 2025-11-19 13:00:26 +09:00
Dr.Lt.Data baaa0479e8 update DB 2025-11-19 01:43:47 +09:00
Dr.Lt.Data cc3bd7a056 update DB 2025-11-18 12:59:21 +09:00
Dr.Lt.Data 4ecefb3b71 improved: scanner.py - supports scanning v3 nodes 2025-11-18 12:48:02 +09:00
Dr.Lt.Data f24b5aa251 update DB 2025-11-17 12:27:39 +09:00
Dr.Lt.Data de547da4cd update DB 2025-11-17 00:37:26 +09:00
Dr.Lt.Data 0f884166a6 update DB 2025-11-16 23:03:10 +09:00
Dr.Lt.Data 8fdff20243 update DB 2025-11-16 23:01:34 +09:00
Dr.Lt.Data 343645be6a update DB 2025-11-16 22:58:58 +09:00
Dr.Lt.Data be6516cfd3 update DB 2025-11-15 13:32:22 +09:00
Dr.Lt.Data 61f1e516a3 update DB 2025-11-15 08:27:09 +09:00
Dr.Lt.Data aa625e30b6 update DB 2025-11-15 08:25:30 +09:00
Dr.Lt.Data 5b3ee49530 update DB 2025-11-15 08:21:27 +09:00
Dr.Lt.Data 70decc740f update DB 2025-11-13 00:27:19 +09:00
Dr.Lt.Data 5b5c83f8c5 update DB 2025-11-12 23:52:37 +09:00
Dr.Lt.Data 737e6ad5ed update DB 2025-11-12 23:50:51 +09:00
Dr.Lt.Data eef0654de2 update DB 2025-11-12 23:49:43 +09:00
Dr.Lt.Data 997a00b8a2 update DB 2025-11-12 23:48:24 +09:00
Dr.Lt.Data 135befa101 update DB 2025-11-12 23:45:41 +09:00
Dr.Lt.Data 449fa3510e update DB 2025-11-12 23:42:29 +09:00
Dr.Lt.Data 09f8d5cb2d update DB 2025-11-11 01:56:51 +09:00
Dr.Lt.Data aedc99cefd bump version 2025-11-11 00:42:32 +09:00
Dr.Lt.Data a95186965e update DB 2025-11-11 00:40:41 +09:00
Dr.Lt.Data f45d878d21 update DB 2025-11-11 00:39:23 +09:00
Dr.Lt.Data 6ad12b7652 update DB 2025-11-11 00:37:15 +09:00
Dr.Lt.Data 1b645e1cc3 update DB 2025-11-11 00:31:40 +09:00
Dr.Lt.Data 5a5b989533 update DB 2025-11-11 00:27:17 +09:00
Dr.Lt.Data 72aa95cacf update DB 2025-11-10 12:56:58 +09:00
Dr.Lt.Data 14ef448937 update DB 2025-11-08 13:51:59 +09:00
Dr.Lt.Data 41e53a1f2a update DB 2025-11-08 13:40:04 +09:00
Dr.Lt.Data 6c206b1c72 update DB 2025-11-08 13:36:48 +09:00
Dr.Lt.Data 3b8d25eb31 update DB 2025-11-08 13:34:23 +09:00
Dr.Lt.Data 0fcdcc93a2 update DB 2025-11-07 12:37:02 +09:00
Dr.Lt.Data 461d5e72fe update DB 2025-11-07 00:42:18 +09:00
Dr.Lt.Data 3f030a2121 update DB 2025-11-06 00:37:25 +09:00
Dr.Lt.Data 7fb8e8662f update DB 2025-11-05 07:48:33 +09:00
Dr.Lt.Data dd3ab9cff2 update DB 2025-11-05 00:33:32 +09:00
Dr.Lt.Data 97b518de12 update DB 2025-11-04 23:25:04 +09:00
Dr.Lt.Data d2a795c866 update DB 2025-11-04 07:54:26 +09:00
Dr.Lt.Data b2126d8ba5 update DB 2025-11-03 18:23:26 +09:00
Dr.Lt.Data 6386411d21 update DB 2025-11-03 12:33:07 +09:00
Dr.Lt.Data 4250244136 update DB 2025-11-03 07:40:01 +09:00
Dr.Lt.Data 77c4f9993d update DB 2025-11-02 12:26:36 +09:00
Dr.Lt.Data c7c8417577 update DB 2025-11-02 08:49:24 +09:00
Dr.Lt.Data 9d0985ded8 update DB 2025-11-01 13:39:08 +09:00
Dr.Lt.Data 5f37a82c3c update DB 2025-11-01 11:47:07 +09:00
Dr.Lt.Data 026bf1dfd7 update DB 2025-10-31 12:58:49 +09:00
Dr.Lt.Data 643a6e5080 update DB 2025-10-31 08:01:20 +09:00
Dr.Lt.Data c3c152122d update DB 2025-10-30 07:53:35 +09:00
Dr.Lt.Data afeac097e5 update DB 2025-10-29 07:45:00 +09:00
Dr.Lt.Data 26da78cf15 update DB 2025-10-27 12:57:21 +09:00
Dr.Lt.Data 179a1e1ca0 update DB 2025-10-26 14:27:17 +09:00
Dr.Lt.Data 133cdfb203 update DB 2025-10-26 13:10:07 +09:00
Dr.Lt.Data 2b79edd9be update DB 2025-10-26 13:03:24 +09:00
Dr.Lt.Data f4e3817fcc update DB 2025-10-26 13:01:34 +09:00
Dr.Lt.Data 87f57551ea update DB 2025-10-26 13:00:06 +09:00
Dr.Lt.Data 8c0581eebc update DB 2025-10-26 12:52:31 +09:00
Dr.Lt.Data a72f9f422c update DB 2025-10-25 11:09:04 +09:00