mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-08 08:08:04 +00:00
## Summary Fixes FE-942 by clearing missing model indicators when promoted subgraph widgets are changed through the legacy canvas path. ## Changes - **What**: Resolves promoted widget error-clearing targets in `useErrorClearingHooks`, including legacy canvas path events from interior widgets. - **Dependencies**: None. ## Review Focus - Promoted widget validation errors clear by resolved interior widget name, while missing model/media state clears by source widget name. - Same-named promoted widgets are value-gated so changing one promoted model widget does not clear unchanged sibling indicators. - Core promoted widget event emission remains unchanged; the fix is scoped to the error-clearing hook. ## Validation - `pnpm test:unit src/composables/graph/useErrorClearingHooks.test.ts` - `pnpm test:unit src/core/graph/subgraph/promotedWidgetView.test.ts src/lib/litegraph/src/subgraph/SubgraphWidgetPromotion.test.ts` - `pnpm exec oxfmt --check src/composables/graph/useErrorClearingHooks.ts src/composables/graph/useErrorClearingHooks.test.ts src/stores/executionErrorStore.ts` - `pnpm exec oxlint src/composables/graph/useErrorClearingHooks.ts src/composables/graph/useErrorClearingHooks.test.ts src/stores/executionErrorStore.ts --type-aware` - `pnpm exec eslint src/composables/graph/useErrorClearingHooks.ts src/composables/graph/useErrorClearingHooks.test.ts src/stores/executionErrorStore.ts` - `pnpm typecheck` - `pnpm test:browser:local browser_tests/tests/propertiesPanel/errorsTabModeAware.spec.ts --project=chromium --grep Subgraph` - pre-push `knip --cache` ## Screenshots (if applicable) N/A
116 lines
2.7 KiB
JSON
116 lines
2.7 KiB
JSON
{
|
|
"id": "test-missing-model-promoted-widget",
|
|
"revision": 0,
|
|
"last_node_id": 2,
|
|
"last_link_id": 0,
|
|
"nodes": [
|
|
{
|
|
"id": 2,
|
|
"type": "subgraph-with-promoted-missing-model",
|
|
"pos": [450, 250],
|
|
"size": [400, 200],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": ["fake_model.safetensors"]
|
|
}
|
|
],
|
|
"links": [],
|
|
"groups": [],
|
|
"definitions": {
|
|
"subgraphs": [
|
|
{
|
|
"id": "subgraph-with-promoted-missing-model",
|
|
"version": 1,
|
|
"state": {
|
|
"lastGroupId": 0,
|
|
"lastNodeId": 1,
|
|
"lastLinkId": 1,
|
|
"lastRerouteId": 0
|
|
},
|
|
"revision": 0,
|
|
"config": {},
|
|
"name": "Subgraph with Promoted Missing Model",
|
|
"inputNode": {
|
|
"id": -10,
|
|
"bounding": [100, 200, 120, 60]
|
|
},
|
|
"outputNode": {
|
|
"id": -20,
|
|
"bounding": [500, 200, 120, 60]
|
|
},
|
|
"inputs": [
|
|
{
|
|
"id": "ckpt-name-input-id",
|
|
"name": "ckpt_name",
|
|
"type": "COMBO",
|
|
"linkIds": [1],
|
|
"pos": { "0": 150, "1": 220 }
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"widgets": [],
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "CheckpointLoaderSimple",
|
|
"pos": [250, 180],
|
|
"size": [315, 98],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"localized_name": "ckpt_name",
|
|
"name": "ckpt_name",
|
|
"type": "COMBO",
|
|
"widget": {
|
|
"name": "ckpt_name"
|
|
},
|
|
"link": 1
|
|
}
|
|
],
|
|
"outputs": [
|
|
{ "name": "MODEL", "type": "MODEL", "links": null },
|
|
{ "name": "CLIP", "type": "CLIP", "links": null },
|
|
{ "name": "VAE", "type": "VAE", "links": null }
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CheckpointLoaderSimple"
|
|
},
|
|
"widgets_values": ["fake_model.safetensors"]
|
|
}
|
|
],
|
|
"links": [
|
|
{
|
|
"id": 1,
|
|
"origin_id": -10,
|
|
"origin_slot": 0,
|
|
"target_id": 1,
|
|
"target_slot": 0,
|
|
"type": "COMBO"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"config": {},
|
|
"extra": {
|
|
"ds": {
|
|
"scale": 1,
|
|
"offset": [0, 0]
|
|
}
|
|
},
|
|
"models": [
|
|
{
|
|
"name": "fake_model.safetensors",
|
|
"url": "http://localhost:8188/api/devtools/fake_model.safetensors",
|
|
"directory": "checkpoints"
|
|
}
|
|
],
|
|
"version": 0.4
|
|
}
|