Skip to content

gateway: the /gui/ board launches engines that have no web UI - #137

Merged
T-Crypt merged 1 commit into
mainfrom
T-Crypt/board-launch-api
Oct 22, 2026
Merged

T-Crypt merged 1 commit into
mainfrom
T-Crypt/board-launch-api

Conversation

@T-Crypt

@T-Crypt T-Crypt commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Problem

The /gui/ board shows a Launch button for every engine with a start command. The wake endpoint behind it also required a gui URL, so on an engine without one (Strata, a bare llama-server) Launch answered 404 and the button stayed on "Launching..." for good. Once such an engine came up some other way, its row showed Open, which navigated to undefined.

Change

  • POST /gui/{name}/wake accepts any engine with a start command. GET /gui/{name} (the wake page) still needs a gui URL, because its job is to send the browser to that UI.
  • On the board, an engine with no web UI shows Running once it answers, and a refused start shows its reason instead of hanging.
  • docs/gateway.md and CHANGELOG.

Scope note

The keyless plane can now start every engine with a start command, not only those with a gui too. The guards are unchanged: loopback or --allow-host names only, and a start must be a same-origin POST. The gateway's keyed API could already start these engines.

Proof

  • TestGUIPlaneLaunchAPIOnly: launching an API-only engine from the board. It fails on main (wake = 404) and passes here. It also checks that the engine ends up holding the lease, and that its wake page stays a 404.
  • The page script, driven under Node with a stub DOM, before and after:
    • main: API-only engine up shows "Open", enabled; a refused start stays on "Launching...".
    • this branch: "Running", disabled; a refused start shows "comfyui did not start" with the server's reason.
  • build, gofmt, vet, go test ./..., Windows build and vet, golangci-lint (0 issues).

The board drew a Launch button for every engine with a start command,
but the wake endpoint also required a gui URL, so Launch on Strata or a
llama-server answered 404 and the button stayed on "Launching...". The
endpoint now takes any engine with a start command; the per-engine wake
page still needs a gui URL, since it exists to send the browser there.

On the page, an engine with no web UI shows Running once it answers
instead of an Open button that navigated to "undefined", and a refused
start shows its reason.
@T-Crypt
T-Crypt merged commit bf3cc8a into main Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant