Comfy-Org / Comfy-Org/ComfyUI_frontend

ECS retirement condition 3 has no measurement channel: the shims it gates emit one deduped console.warn with no source

Open
#15,637 0 comments 0 reactions 1 assignee Claimed by @DrJKL View on GitHub
documentation Public API
Dominant language
TypeScript
Stars
2k
Forks
702
Avg merge
1d 7h
Merged PRs (30d)
490

Description

The ECS migration plan gates removal of the deprecated compatibility shims on evidence that no code path in this repo can produce.

`docs/architecture/ecs/ecs-migration-plan.md` §3 "Retire duplicate state and synchronization bridges" says a compatibility path can be removed per concern only when, among other conditions, "extension usage has been measured and a migration is published". `ecs-extension-compatibility-audit.md` §"Required follow-up evidence" names what must be measured: ecosystem use of `input.link`, `output.links`, and indexed `graph.links[id]`.

The channel that implies is deprecation telemetry. It does not exist.

Measured 2026-08-22 against `feature/ecs-migration` head `08f7232d4bfea282b1901723c7b4c2f156c92f59`:

- `LiteGraphGlobal.ts:285` routes deprecation reporting to `[console.warn]`. There is no production sink anywhere in `src/`.
- `feedback.ts:16-22` dedupes by message string, so each accessor emits at most **one** warning per session unless `LiteGraph.alwaysRepeatWarnings` (default `false`).
- All four slot call sites pass **no `source`** argument, so a host cannot attribute a read to a node type or a pack. `feedback.ts:8-11` documents `source` as the place unique data belongs, and `badgePosition` (`LGraphNode.ts:553,560`) does pass `this`. The two surfaces the retirement condition most needs to measure are the two that pass nothing.

`Comfy-Org/ComfyUI_ECS_Compat_Check` is a separate instrument and a good one, but its sensitivity is explicitly unmeasured by its own author, so a green run is not currently proof for this condition.

**Effect:** retirement condition 3 is cited as the blocker on two compatibility paths that are scheduled for removal (deprecated slot connectivity accessors, indexed `graph.links[id]`). A blocker that cannot be evaluated makes those items look tracked when nothing is advancing them.

**Decide one of:**

1. The plan's evidence list is wrong, and the compat-check harness alone satisfies condition 3. Amend §3 and the compat audit to say so, and state what harness result counts as sufficient.
2. The condition stands, and the shims need a `source` argument at the four slot call sites plus a production sink before it is achievable. That is the work item.

Either way the plan text should stop asking for a measurement with no channel.

Related: #15409 and #15545 are the same failure mode on the performance side.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.