Skip to content

1.0.0

Latest

Choose a tag to compare

@GhaziTriki GhaziTriki released this 03 Sep 02:30
· 1 commit to master since this release

πŸ–₯️ 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-uri is still accepted as an alias, so existing command lines and Compose files keep working. cm websummoner-ui start passes the new flag.

🎨 The front end, rebuilt

  • React 16 β†’ 19, react-scripts 3.4.1 (2020) β†’ 5.0.1, React Router 5 β†’ 7, react-select 3 β†’ 5, styled-components 5 β†’ 6, RxJS 6 β†’ 7 (rxjs-compat removed), noVNC 1.1 β†’ 1.7, xterm 4 β†’ @xterm/xterm 6. 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 200 only 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 overrides pin 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 archived aerokube/util module.
  • 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-uri is bound to the same variable as --websummoner-uri, so either spelling works and the last one given wins.
  • Go 1.27; gorilla/websocket 1.5.3; x/crypto 0.55; x/net 0.58.
  • Unchecked errors and the unbuffered signal channel fixed; golangci-lint passes with the full default set.

πŸ—οΈ Image and CI

  • Image websummoner/websummoner-ui, still FROM scratch, now ships a health-check binary with a HEALTHCHECK and 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.