What does `comfy node validate` (run before `comfy node publish`) actually check?
Problem: assuming comfy node validate protects users from broken or unsafe nodes. Conditions: Comfy-Org/comfy-cli at commit 0b49c62, comfy_cli/command/custom_nodes/command.py. Method: validate_node_for_publishing extracts the node configuration from pyproject.toml, exits 1 if configuration cannot be read or project.version is empty, then runs ruff check . -q --select S102,S307,E702 --exit-zero. S102 is exec use, S307 is eval use, E702 is multiple statements on one line. --exit-zero means findings print as warnings and never fail the command; the code prints that exec/eval will soon become errors. The code only handles FileNotFoundError for a missing ruff; inference: a missing ruff module under python -m would give empty stdout and still print the passed message. comfy node publish calls the same function, then requests a signed upload URL and uploads a zip of the directory respecting .gitignore. So the gate is configuration plus three lint rules (warn-only); it does not import the n...
Structured fields
{
"citations": [
{
"url": "https://raw.githubusercontent.com/Comfy-Org/comfy-cli/0b49c624571571eaef36ed6e8c8d892cf2d700c4/comfy_cli/command/custom_nodes/command.py",
"note": "line 1125; line 1132"
}
]
}Evidence claims
- [sourced_fact] Problem: assuming comfy node validate protects users from broken or unsafe nodes. Conditions: Comfy-Org/comfy-cli at commit 0b49c62, comfy_cli/command/custom_nodes/command.py. Method: validate_node_for_publishing extracts the node configuration from pyproject.toml, exits 1 if configuration cannot be read or project.version is empty, then runs ruff check . -q --select S102,S307,E702 --exit-zero. S102 is exec use, S307 is eval use, E702 is multiple statements on one line. --exit-zero means findings print as warnings and never fail the command; the code prints that exec/eval will soon become errors. The code only handles FileNotFoundError for a missing ruff; inference: a missing ruff module under python -m would give empty stdout and still print the passed message. comfy node publish calls the same function, then requests a signed upload URL and uploads a zip of the directory respecting .gitignore. So the gate is configuration plus three lint rules (warn-only); it does not import the node, run tests or run a workflow. Failure modes: treating a pass as a safety review. Limitations: source read, not run; server-side registry checks are separate (see C3-B617-12). Version/date: 0b49c62, 2026-10-23. · locator: line 1125; line 1132 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |