The list of available controller versions now keeps only the latest patch of each older minor release
Release notes for each version are now readable sentences
Updated Go dependencies, including gRPC, golang.org/x/crypto and golang.org/x/net, to address published security advisories
The VM controller now reports its version to the backend when it starts
Requests to a service that is turned off in the image config or excluded by the site service list now fail with a service-disabled error instead of service-unavailable
When secure transfer is enabled and the list names no recognised protocol, uploads are now disabled instead of left unrestricted, and unrecognised protocol names are logged as warnings
Constellation terminal streams are now closed on both ends when either side closes
File uploads no longer add an empty path for each selected file
On Windows VMs, commands the VM controller runs no longer open a PowerShell window
Fix CI workflows and slim build images
Fail Windows user registration cleanly when the home directory can't be moved
SLURM batch nodes now close and log a failed client handshake instead of panicking in the connection handler
Image config list fields such as the user directories to create and the tunnel groups now keep their configured order when a config amendment is merged in, instead of being shuffled on every VM start
The VM controller now exits with a readable error message when it cannot read its configuration or open its database at startup, instead of crashing with a panic
Stream errors for unknown or duplicate streams are now reported to the connecting client instead of being sent as empty messages. This also stops two connections from exchanging empty messages indefinitely when both sides have forgotten a stream
A batch controller whose SLURM setup fails now reports the cause through the slurm service and the core init errors instead of silently leaving the service out
The allowed transfer protocols list in the image config is now only applied when secure transfer is enabled, so an image with secure transfer off no longer restricts uploads to encrypted zips
Windows VMs now set each of the VM ID, VM name and VM config ID environment variables independently, so an empty or failing value no longer prevents the others from being set
The VM controller no longer crashes when a connected client sends an empty encrypted message. The offending connection is now closed with an error and other connections and the controller itself keep running
Fixed a crash in the VM controller when a request to another VM, such as a SLURM worker node or a constellation member, failed to send because that connection had closed. Such failures are now reported as a connection closed error instead
Detaching from a terminal now releases its stream and stops the controller from sending output to it, instead of leaking a goroutine per attach