π₯οΈ websummoner-ui 1.0.0
The session UI for WebSummoner: live browser screen over VNC, streaming logs, queue and usage statistics, for one hub or a whole cluster behind ggr-ui.
β οΈ Breaking
- Module path is
github.com/websummoner/websummoner-ui. That is the only breaking change: the flag is now--websummoner-uri, and--selenoid-uriis still accepted as an alias, so existing command lines and Compose files keep working.cm websummoner-ui startpasses the new flag.
π¨ The front end, rebuilt
- React 16 β 19,
react-scripts3.4.1 (2020) β 5.0.1, React Router 5 β 7, react-select 3 β 5, styled-components 5 β 6, RxJS 6 β 7 (rxjs-compatremoved), noVNC 1.1 β 1.7, xterm 4 β@xterm/xterm6. Node 24 or newer. - One theme file. Every colour, space and radius comes from
theme.js, which styled-components import directly and which is also published as CSS custom properties for plain stylesheets. A cool-ink dark base with the amber and coral brand accents β deliberately no blue. - Official browser logos for Chrome, Firefox, Edge, Opera, Brave, Yandex and Safari, embedded, instead of the invented marks.
- Live session and queue statistics in a dedicated stats container.
- Honest connection state. The UI no longer reports the grid as down while the SSE connection is still being established.
- Session deletion stays in the "deleting" state until the hub's stream removes the row; a
200only means the hub accepted the request, and the container teardown can take several more seconds. Only a failure clears the flag, so the user sees the error and can retry. - Tests for nearly every component and container, with coverage reported.
- npm
overridespin patched versions of vulnerable transitive packages (nth-check,svgo,serialize-javascript,qs,uuid,underscore,resolve-url-loader). Husky and pretty-quick are gone; Prettier 3 with the ESLint plugin replaces them.
βοΈ The Go backend
- The SSE broker and tick loop now live in this repository (
sse/), removing the dependency on the archivedaerokube/utilmodule. - The WebSocket upgrader is built once at start-up; mutating the proxy's default upgrader per request was a data race. Allowed origins are trimmed.
--selenoid-uriis bound to the same variable as--websummoner-uri, so either spelling works and the last one given wins.- Go 1.27;
gorilla/websocket1.5.3;x/crypto0.55;x/net0.58. - Unchecked errors and the unbuffered signal channel fixed;
golangci-lintpasses with the full default set.
ποΈ Image and CI
- Image
websummoner/websummoner-ui, stillFROM scratch, now ships a health-check binary with aHEALTHCHECKand the licence notices of the UI bundle and the Go modules. - Release binaries for linux amd64/arm64, darwin amd64/arm64 and windows amd64/arm64/386.
- Build, test, lint, docs and release workflows; Codecov and DeepSource; Dependabot; a Starlight documentation site at websummoner.riadvice.com/websummoner-ui.
Part of WebSummoner 1.0.0 Β· π Documentation Β· π¬ Discussions
WebSummoner is developed and maintained by RIADVICE under Apache-2.0. It builds on Selenoid by Aerokube and Ivan Krutov, and on the original UI by Kirill Merkushev.