You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test: address the automated review on the custom-node suite
Twenty-four of twenty-five findings applied. Three were worth more than the
line they pointed at.
The COMBO output-name one was proposed as an index-based rename. Production
names an output `output_name[index] || output_<index>` with no string
coercion, so a non-string entry leaves the live slot's name as the raw array,
and connectivity matches on slot.name === producer.slotName - renaming would
have traded a duplicate-drop for a guaranteed SLOT_CONTRACT_MISMATCH. Those
outputs go to unknownSlots instead. Tracing it turned up a second bug: a
FALSY non-string entry was named after the slot type where production gives
output_0. RawNodeDef.output_name was the actual lie at string[] - ComfyUI
sets output_name = RETURN_NAMES if present else RETURN_TYPES, so combo
outputs really do ship option arrays there. It is unknown[] now.
The facet-order test was said to over-pin ordering. diffShapes ends in
.sort(), so emission order is erased, and probesEqual compares element by
element - relaxing to arrayContaining would have dropped a live contract. The
real flaw was a fixture too weak to tell the two hypotheses apart; it now is.
The updatedAt assertions were called tautological. They compare the entry's
timestamp against the index's top-level one, which are different fields and
would fail on divergence. Rewritten for clarity anyway, which did close a
real gap: expect.any(Number) on the captured value is now load-bearing.
Also removed a comment claiming a detection-proof row greps a label that no
row greps, and a "geometry ledger" reference left over from the cut S14 tier.
The remaining findings: a 40-minute job timeout sized from the 12-18.8 minute
observed range, the ComfyUI pin declared once so the published summary cannot
advertise a ref the run never used, manifest repo URLs validated before
git clone, fail-fast on the video fixture and the input directory, dead row-14
case arms removed, --strictPort on the one script that assumes 5173, real
waiting instead of isVisible's ignored timeout, HUNG_BACKEND aborting the
outer batch loop so later batches stop recording false timeouts over a wedged
queue, a computed drag-sweep bound instead of setTimeout(0), per-node probe
isolation so a throwing pack names itself, profile and manifest shape
validation, a real off() in the suite fake, graphNodeIds coverage on both
branches, and a rejecting-page harness replacing four hand-rolled copies.
Declined: re-throwing on startup-settings failure. That swallow predates this
PR by two years, every setting it guards is either irrelevant at --workers=1
or set explicitly per spec, the fixture already asserts the resulting
precondition, and re-throwing would turn any devtools-less or auth-gated
backend from one console.error into a full-suite failure - which has happened
(run 30309274120, 359 tests). The real defect is that the swallow cannot tell
an absent endpoint from a broken write, and that belongs in its own PR against
the shared fixture.
0 commit comments