[GH-ISSUE #3215] [Manual review request] comfyui-agent-panel — 14 versions flagged on info-level python_network_operations, with JS false positives #1117

Closed
opened 2026-10-27 21:25:56 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @artokun on GitHub (Aug 27, 2026).
Original GitHub issue: https://github.com/Comfy-Org/ComfyUI-Manager/issues/3215

Registry version

  • Publisher: artokun
  • Node: comfyui-agent-panel
  • Version: 0.15.110 (and the 14 flagged versions behind it)
  • Version ID: 4a44cf38-2ba4-47c2-aeb9-e90807abe2e7
  • Current status: NodeVersionStatusPending (0.15.96 – 0.15.109 are all NodeVersionStatusFlagged)
  • Published: 2026-08-27
  • Artifact: https://cdn.comfy.org/artokun/comfyui-agent-panel/0.15.110/node.zip

Problem

Every version since 0.15.96 has been flagged on python_network_operations, all at info severity. The node's latest_version therefore still points at 0.15.85, so ComfyUI-Manager offers no update at all — is_updatable() compares against the newest Active build, and there has not been one for 25 releases. Explicit /install still works; the normal update path delivers nothing.

That gap now covers roughly two weeks of bug fixes for ~9,800 installs.

We are not asking for the rule to be relaxed. Three of the six findings are genuine network calls and we are happy to keep them on record. The other three are, we believe, false positives — and one of them is demonstrably mis-attributed.

The three we agree are real

file pattern what it is
__init__.py:674 $socket_stage_recv a loopback WebSocket handshake probe used to detect whether our own bridge port is already held
py/civitai_proxy.py $http5 aiohttp.ClientSession — the proxy exists because the browser cannot reach CivitAI directly (CORS, plus User-Agent/Referer bot-gate headers JS cannot set)
py/apps_routes.py $http5 aiohttp.ClientSession — run/status endpoints, server-side by design so the same surface backs our mobile client

All three are local-first and none contacts a third party except CivitAI, at explicit user request.

The three we believe are false positives

All are in JavaScript, matched by a rule named python_network_operations.

1. $socket3 is matching LiteGraph node wiring, not a socket.

web/js/comfyui-mcp-panel.js:10031

typeof subgraphInput.connect === "function" ? subgraphInput.connect(sourceSlot, sourceNode) : null;

subgraphInput.connect(...) connects two nodes in a workflow graph. It is LiteGraph's core API — the same call every node pack makes to wire a graph. No socket, no network.

2. $socket4 is matching Function.prototype.bind.

web/js/comfyui-mcp-panel.js:4039, :4354, :4424

const orig = appRef.loadGraphData.bind(appRef);
const orig = svc.saveWorkflow.bind(svc);

This is the standard JavaScript idiom for capturing a method before monkey-patching it. We already removed seven such sites in an earlier release specifically to reduce this signal; the remaining ones are load-bearing and cannot be rewritten without breaking the patch chain.

3. The reported evidence for that file points at a line with no network call.

The finding for web/js/comfyui-mcp-panel.js cites line 10035, whose content is:

throw new Error(`Could not link subgraph input "${inputName}" to widget "${sourceWidget.name}"`);

That is an error message. There is no connect, bind, send or socket of any kind on it. The line attribution appears to be off from whatever actually matched.

The two remaining JS matches are real WebSocket sends in a WebSocket client — sock.send(...) on our own already-open loopback connection to ComfyUI:

  • web/js/lib/rehello-gate.js:573 — entry.send();
  • web/js/lib/restart-tab-identity.js:150 — socket.send(JSON.stringify(payload));

The precedent that we think settles it

0.15.85 — the build the Registry currently serves as Active — contains all six of these files, plus four more that we have since removed.

Running the same rule over the 0.15.85 tree reports 10 matching files:

__init__.py                          still present today
py/apps_routes.py                    still present today
py/civitai_proxy.py                  still present today
web/js/comfyui-mcp-panel.js          still present today
web/js/lib/rehello-gate.js           still present today
web/js/lib/restart-tab-identity.js   still present today
web/js/lib/configure-app-mode.js     removed since
web/js/lib/run-prompt-snapshot.js    removed since
web/js/lib/run-scope-guard.js        removed since
web/js/lib/widget-null-safety.js     removed since

So the currently-served Active build is a strict superset of what is now being flagged. We also diffed 0.15.85 → 0.15.96 in full (52 files, 5,095 insertions): it introduced zero new matching patterns, and 11 of the 12 originally flagged files were byte-identical across it. The pack did not change; the ruleset did.

What we are asking

  1. Manual review and activation of 0.15.110, so latest_version moves and users can receive the backlog.
  2. If any source change is genuinely required, please name the pattern — we will make it. We have deliberately not obfuscated any of these calls, because hiding a real network call from the scanner seems worse than being flagged for it.
  3. Separately, and only if useful to you: scoping python_network_operations to Python files, and checking $socket3/$socket4 against JavaScript, would likely remove a class of false positives beyond this node. .connect( and .bind( are extremely common non-network JS idioms, and .bind( in particular is unavoidable in any pack that wraps a ComfyUI frontend method.

Happy to provide anything else — full scan output, the 0.15.85 comparison, or a diff of any release in the range.

Originally created by @artokun on GitHub (Aug 27, 2026). Original GitHub issue: https://github.com/Comfy-Org/ComfyUI-Manager/issues/3215 ### Registry version - Publisher: `artokun` - Node: `comfyui-agent-panel` - Version: `0.15.110` (and the 14 flagged versions behind it) - Version ID: `4a44cf38-2ba4-47c2-aeb9-e90807abe2e7` - Current status: `NodeVersionStatusPending` (0.15.96 – 0.15.109 are all `NodeVersionStatusFlagged`) - Published: 2026-08-27 - Artifact: https://cdn.comfy.org/artokun/comfyui-agent-panel/0.15.110/node.zip ### Problem Every version since **0.15.96** has been flagged on `python_network_operations`, all at **`info`** severity. The node's `latest_version` therefore still points at **0.15.85**, so ComfyUI-Manager offers no update at all — `is_updatable()` compares against the newest **Active** build, and there has not been one for 25 releases. Explicit `/install` still works; the normal update path delivers nothing. That gap now covers roughly two weeks of bug fixes for ~9,800 installs. We are not asking for the rule to be relaxed. Three of the six findings are genuine network calls and we are happy to keep them on record. The other three are, we believe, false positives — and one of them is demonstrably mis-attributed. ### The three we agree are real | file | pattern | what it is | |---|---|---| | `__init__.py:674` | `$socket_stage_recv` | a loopback WebSocket handshake probe used to detect whether our own bridge port is already held | | `py/civitai_proxy.py` | `$http5` | `aiohttp.ClientSession` — the proxy exists *because* the browser cannot reach CivitAI directly (CORS, plus User-Agent/Referer bot-gate headers JS cannot set) | | `py/apps_routes.py` | `$http5` | `aiohttp.ClientSession` — run/status endpoints, server-side by design so the same surface backs our mobile client | All three are local-first and none contacts a third party except CivitAI, at explicit user request. ### The three we believe are false positives All are in **JavaScript**, matched by a rule named `python_network_operations`. **1. `$socket3` is matching LiteGraph node wiring, not a socket.** `web/js/comfyui-mcp-panel.js:10031` ```js typeof subgraphInput.connect === "function" ? subgraphInput.connect(sourceSlot, sourceNode) : null; ``` `subgraphInput.connect(...)` connects two **nodes in a workflow graph**. It is LiteGraph's core API — the same call every node pack makes to wire a graph. No socket, no network. **2. `$socket4` is matching `Function.prototype.bind`.** `web/js/comfyui-mcp-panel.js:4039`, `:4354`, `:4424` ```js const orig = appRef.loadGraphData.bind(appRef); const orig = svc.saveWorkflow.bind(svc); ``` This is the standard JavaScript idiom for capturing a method before monkey-patching it. We already removed seven such sites in an earlier release specifically to reduce this signal; the remaining ones are load-bearing and cannot be rewritten without breaking the patch chain. **3. The reported evidence for that file points at a line with no network call.** The finding for `web/js/comfyui-mcp-panel.js` cites **line 10035**, whose content is: ```js throw new Error(`Could not link subgraph input "${inputName}" to widget "${sourceWidget.name}"`); ``` That is an error message. There is no `connect`, `bind`, `send` or socket of any kind on it. The line attribution appears to be off from whatever actually matched. The two remaining JS matches are real WebSocket sends **in a WebSocket client** — `sock.send(...)` on our own already-open loopback connection to ComfyUI: - `web/js/lib/rehello-gate.js:573` — `entry.send();` - `web/js/lib/restart-tab-identity.js:150` — `socket.send(JSON.stringify(payload));` ### The precedent that we think settles it **0.15.85 — the build the Registry currently serves as `Active` — contains all six of these files, plus four more that we have since removed.** Running the same rule over the 0.15.85 tree reports **10** matching files: ``` __init__.py still present today py/apps_routes.py still present today py/civitai_proxy.py still present today web/js/comfyui-mcp-panel.js still present today web/js/lib/rehello-gate.js still present today web/js/lib/restart-tab-identity.js still present today web/js/lib/configure-app-mode.js removed since web/js/lib/run-prompt-snapshot.js removed since web/js/lib/run-scope-guard.js removed since web/js/lib/widget-null-safety.js removed since ``` So the currently-served Active build is a **strict superset** of what is now being flagged. We also diffed 0.15.85 → 0.15.96 in full (52 files, 5,095 insertions): it introduced **zero** new matching patterns, and 11 of the 12 originally flagged files were byte-identical across it. The pack did not change; the ruleset did. ### What we are asking 1. Manual review and activation of **0.15.110**, so `latest_version` moves and users can receive the backlog. 2. If any source change is genuinely required, please name the pattern — we will make it. We have deliberately **not** obfuscated any of these calls, because hiding a real network call from the scanner seems worse than being flagged for it. 3. Separately, and only if useful to you: scoping `python_network_operations` to Python files, and checking `$socket3`/`$socket4` against JavaScript, would likely remove a class of false positives beyond this node. `.connect(` and `.bind(` are extremely common non-network JS idioms, and `.bind(` in particular is unavoidable in any pack that wraps a ComfyUI frontend method. Happy to provide anything else — full scan output, the 0.15.85 comparison, or a diff of any release in the range.
Author
Owner

@artokun commented on GitHub (Aug 27, 2026):

Withdrawing this request — please disregard, and thank you for the time.

We have since reduced the findings on our side from six files to two, so a manual review is no longer the right ask. We will let the normal scan path run and follow up separately if the remaining two turn out to need a conversation.

Closing rather than leaving it open in your queue.

<!-- gh-comment-id:5436359703 --> @artokun commented on GitHub (Aug 27, 2026): Withdrawing this request — please disregard, and thank you for the time. We have since reduced the findings on our side from six files to two, so a manual review is no longer the right ask. We will let the normal scan path run and follow up separately if the remaining two turn out to need a conversation. Closing rather than leaving it open in your queue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/ComfyUI-Manager#1117
No description provided.