Skip to content

ComfyUI Base 3.9.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 08:00
· 34 commits to main since this release

ComfyUI Base 3.9.0: ComfyUI, Jupyter Terminal and each customer app are named links

Paul's ask of 2026-10-16: in RunPod's Connect tab, the canvas, each package's app and the terminal are
one-click links with names. RunPod names a port only on a template (GraphQL portsConfig, written by
saveTemplate; REST has no label field and a pod has none of its own), and its proxy links ports, not paths.

  • py/app_proxy.py: each app at the root of its own port (:/ -> 127.0.0.1:8188/apps//; ws, upload,
    view, history, queue, interrupt passed through; websockets piped; a "ComfyUI is starting" page while it does
    not answer). The boot starts it after ComfyUI; the install restarts it (boot.sh --apps) from
    state/apps.d/.list, which the BOOT stage writes from a package's APP_PORTS=("||").
  • podctl create (RunPod): ports 8188/http "ComfyUI", 8888/http "Jupyter Terminal", one /http per declared app,
    22/tcp, named through a private "comfy-base ports " template that carries the names and nothing else
    (made once per set of names; every field re-sent through saveTemplate, as runpodctl v3 does); a fresh
    JUPYTER_TOKEN per pod; --no-names. deploy --like keeps a names template and gives the clone its own token.
  • JupyterLab is never tokenless and never dark: the boot generates a token on any bind; on RunPod's public bind
    it names it once on the container log (the Logs tab), never the boot log.
  • podctl status prints the named links (the terminal's with its token); podctl jupyter adds the proxy link;
    podctl tunnel forwards the machine's app ports and prints named localhost links (a --private pod's names).
  • Docs: hosts/runpod/README.md "Named ports", handbook rule 9, 1.1, 4 (APP_PORTS), 6, 7, 10; HANDOFF.md.

Exercised on this Mac against fakes only (fake RunPod REST + GraphQL, a raw-socket ComfyUI, fake pods); the
console showing the names is owed on a real pod (HANDOFF.md 1).

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

The zip is what a pod installs. Handbook: comfyui-base-handbook.md