UNPKG

comfyui-mcp

Version:

Local-first, agent-native control plane for ComfyUI — MCP server + autonomous sidebar agent that drives your live graph in natural language on ANY LLM: Claude/ChatGPT/Gemini on your subscription (no API key), free local models via Ollama (fully offline),

53 lines • 2.8 kB
/** * #1808 — panel_set_property(matchTitle) on Fast Groups Bypasser/Muter stores * the property but does not reliably rebuild the toggle list. * * Verified against rgthree-comfy `src_web/comfyui/fast_groups_muter.ts` and * `services/fast_groups_service.ts`, not inferred from the report: * * 1. Fast Groups nodes do NOT implement onPropertyChanged. The panel invokes * that callback when present; these nodes never define it, so a successful * set is a stored value plus setDirtyCanvas — not a live re-filter. * * 2. The toggle list is rebuilt by refreshWidgets() on FAST_GROUPS_SERVICE * (8 ms after add, then every ~500 ms). addFastGroupNode schedules that * first tick BEFORE matchTitle is usually written, so a newly added node * paints every group in the workflow. * * 3. Leftover-row removal is `while (widgets[index]) removeWidget(index++)`. * RgthreeBaseNode.removeWidget accepts a numeric index, so incrementing * after a splice skips the row that just slid into `index`. 22 unfiltered * rows with 4 matches stall at 13 (4 kept + every other leftover). * * 4. panel_query_graph keys widgets by name. Every Fast Groups toggle is * named RGTHREE_TOGGLE_AND_NAV and distinguished only by label, so a * never-built list is widgets:{} and a built list collapses to one key — * empty does NOT mean "no matching groups". * * The property write is real. The rebuild is rgthree's, and it is racy. The * shipped panel_set_property path therefore stops claiming a live re-filter * and tells the caller to re-read and set again rather than delete+re-add. */ export const FAST_GROUPS_FILTER_PROPERTIES = [ "matchTitle", "matchColors", "sort", "customSortAlphabet", "toggleRestriction", "showNav", "showAllGraphs", ]; export function isFastGroupsFilterProperty(name) { return typeof name === "string" && FAST_GROUPS_FILTER_PROPERTIES.includes(name); } /** Appended after a successful set of a Fast Groups filter property. */ export function fastGroupsFilterPropertyNote() { return ("\n\nIf this is a Fast Groups Bypasser/Muter: the property is stored, but rgthree " + "does NOT implement onPropertyChanged — the toggle list rebuilds on its own " + "refreshWidgets service tick. That rebuild can leave leftover Enable rows " + "(splice-while-removing skips every other leftover) or an empty widgets:{} " + "(the list has not been built yet, not \"no matches\"). Re-read the node with " + "panel_query_graph {ids:[…], fields:'detail'}. If the canvas still shows groups " + "that do not match, set the property again — do not delete and re-add the node."); } //# sourceMappingURL=rgthree-fast-groups-property.js.map