The docker floor's own rationale (spec/host-tools.json:11) says "the probe reads the engine version, not the Desktop application version winget tracks separately, so the floor is written against the number the probe actually sees." That claim does not hold on a WSL host where the docker CLI on PATH is a separate client binary from Docker Desktop's Engine.
host_gate.py's probe for docker, declared generically at spec/host-tools.json:8 as ["docker", "--version"], and install-tools.sh's docker_version() (host-setup/linux/install-tools.sh:549-552) both parse the Docker version X.Y.Z line, which is docker's own client version banner, not the engine it talks to.
What this looks like on a current host
Docker Desktop reports itself up to date. docker --version and docker version on the same host disagree by a full minor line:
$ docker --version
Docker version 29.1.3, build 29.1.3-0ubuntu3~25.10.1
$ docker version
...
Server: Docker Desktop 4.86.0 (236216)
Engine:
Version: 29.7.2
The client binary on PATH here is packaged separately from Desktop's own bundled CLI, its build string, 29.1.3-0ubuntu3~25.10.1, is an Ubuntu package revision, not a Desktop release artifact, and it talks to Desktop's daemon over the same WSL-integration socket. host_gate.py and install-tools.sh --report both read the client's 29.1.3 and fail the 29.6.2 floor from issue #695, while the Engine actually running (29.7.2) clears it comfortably, and Desktop itself (4.86.0) is newer than the 4.85.0 the floor was anchored to.
Shapes that would close it
Not a recommendation, just what seems available:
- Read the Engine version instead, for example
docker version --format '{{.Server.Version}}' (or the Server: block of docker version), inside a WSL distribution specifically, since that is what Desktop's own update cadence actually governs. The native (non-WSL) install path can keep reading docker --version, since there the client and the docker-ce engine are the same package.
- Drop the floor's engine-version claim if the client version is kept as the probe deliberately, and reword
spec/host-tools.json:11 so a future reader does not rely on the client and the Engine tracking together, which this host shows they do not.
Found while testing host-setup/ and scripts/host_gate.py on an Ubuntu 25.10 WSL2 host under Docker Desktop 4.86.0.
The
dockerfloor's own rationale (spec/host-tools.json:11) says "the probe reads the engine version, not the Desktop application version winget tracks separately, so the floor is written against the number the probe actually sees." That claim does not hold on a WSL host where thedockerCLI onPATHis a separate client binary from Docker Desktop's Engine.host_gate.py's probe fordocker, declared generically atspec/host-tools.json:8as["docker", "--version"], andinstall-tools.sh'sdocker_version()(host-setup/linux/install-tools.sh:549-552) both parse theDocker version X.Y.Zline, which isdocker's own client version banner, not the engine it talks to.What this looks like on a current host
Docker Desktop reports itself up to date.
docker --versionanddocker versionon the same host disagree by a full minor line:The client binary on
PATHhere is packaged separately from Desktop's own bundled CLI, its build string,29.1.3-0ubuntu3~25.10.1, is an Ubuntu package revision, not a Desktop release artifact, and it talks to Desktop's daemon over the same WSL-integration socket.host_gate.pyandinstall-tools.sh --reportboth read the client's29.1.3and fail the29.6.2floor from issue #695, while the Engine actually running (29.7.2) clears it comfortably, and Desktop itself (4.86.0) is newer than the4.85.0the floor was anchored to.Shapes that would close it
Not a recommendation, just what seems available:
docker version --format '{{.Server.Version}}'(or theServer:block ofdocker version), inside a WSL distribution specifically, since that is what Desktop's own update cadence actually governs. The native (non-WSL) install path can keep readingdocker --version, since there the client and thedocker-ceengine are the same package.spec/host-tools.json:11so a future reader does not rely on the client and the Engine tracking together, which this host shows they do not.Found while testing
host-setup/andscripts/host_gate.pyon an Ubuntu 25.10 WSL2 host under Docker Desktop 4.86.0.