The panel chat streams now
Extended-thinking shows up live in a collapsible “see thinking” accordion, and the reply types in character-by-character, with a running thinking-token count. No more staring at a blank panel while the agent works.SDK slash commands in the composer
The orchestrator probes the Agent SDK for the commands your account exposes and surfaces the useful built-ins in the panel’s/ menu — /compact, /context,
/usage, /loop, /goal, /clear. (Your unrelated skills/plugins are filtered
out, so the menu stays relevant.) Panel-local commands — /reload, /reload-ui,
/restart — live there too.
One-click recovery for a wedged agent
If the agent backend ever stops responding (e.g. its shell handle dies after an account/token change),/restart brings it back: it kills the orchestrator
and its whole child tree and starts a fresh session — the only thing that
actually clears a wedged shell, since resuming would just restore it. It runs
entirely over a pure-Python route, so it works even when the agent can’t answer.
The process handling that powers it is now pid-reuse-safe: the pack
re-verifies a process’s identity (command line + recorded creation time)
immediately before every signal, so a recycled PID can never be mistaken for the
orchestrator — your unrelated shells and editors are never touched.
--channels is gone
The legacy interactive --channels mode (and the panel_say / panel_inbox /
panel_status tools) is fully removed. The panel runs only on the autonomous
orchestrator on its dedicated bridge port 9180, so nothing
can steal the panel’s port anymore. The pack is now ComfyUI Agent Panel
(comfyui-agent-panel) on the Comfy Registry.
Under the hood
- Race-free turn gate — the panel’s message queue can no longer deadlock and strand messages; one turn per batch with true read-receipts.
- Workflow converter (UI→API) hardening — the recurring “dangling link →
graph silently produces nothing” class is gone:
- a de-virtualization pre-pass rewrites Get/Set bus + Reroute wiring nodes straight to their real source before expansion, so the expander only ever sees real nodes;
- a subgraph-edge relink fixes subgraph→subgraph outputs (an A→B edge no longer drops when B expands before A);
- virtual
PrimitiveNodevalues (shared seed/steps) resolve at the top level; - V3 dynamic combos (
COMFY_DYNAMICCOMBO_V3) key nested inputs correctly (<combo>.<nested>), object_info backfill covers nodes missing from the bulk response, and VHS object-formwidgets_valuesmap by name.
- More render-verified packs — ideogram ×2 (V3 fix), z-image ControlNets ×2
(DWPose registers once
scikit-imageis pinned), qwen-image-edit, and a full LTX-2.3 rebuild:txt2vid+img2vidnow ship on the official Comfy-Org two-stage template (LTXAVTextEncoderLoader+ gemma abliterated LoRA + dynamic distilled LoRA + ×2 upscale) — sharp 1280×704 with synced audio, replacing the soft GGUF/DualCLIPLoader path. See the LTX-2.3 post. - Installers now resolve each cloned node’s
requirements.txtinto the ComfyUI venv (not system Python) — the root cause behind a long tail of “installed but won’t load” nodes. Why it matters.