Adom Hydrogen
Public Made by Adomby adom
The whole Adom experience as one signed native app: your editor, your AI agent, and the full electronics design toolchain, running locally on your own machine.
Self-update relaunch races itself and runs `wsl --shutdown`, terminating every WSL distro on the machine including the user's own
Updating Hydrogen 1.0.424 → 1.0.431 killed an unrelated personal WSL distro (Ubuntu-24.04), dropping a live VS Code Remote-WSL session. Hydrogen recovered only Adom-Workspace; the personal distro stayed stopped, with no indication anything had happened to it.
Timeline
From %APPDATA%\hydrogen-desktop\hydrogen-desktop.log, 2026-09-17:
13:36:50 === Hydrogen Desktop started === BUILD_STAMP=d20faa13… (1.0.424)
13:36:50 [single-instance] second HD launch detected — focused hd
13:37:15 updater_install invoked (banner/UI)
13:37:15 Update available: 1.0.424 -> 1.0.431
13:37:17 Spawned relauncher (waits for installer pid=15120); exiting so the installer can replace files
13:37:21 === Hydrogen Desktop started === BUILD_STAMP=efa29719… (1.0.431)
13:37:24 === Hydrogen Desktop started === BUILD_STAMP=efa29719… (again, 3s later)
13:37:25.648 [ports] default 47083 for proxy still unusable: Only one usage of each socket address … (os error 10048)
13:37:25.649 [ports] default 47084 for control still unusable: … (os error 10048)
13:37:25.650 [ports] default 47085 for cdp still unusable: … (os error 10048)
13:37:25.673 [app] previous run ended UNCLEAN (no clean-shutdown marker)
13:37:25.737 [runtime-kv] published hydrogen.runtime.k_zephyrus (instance=hd-19452-…)
13:37:25.818 [wsl] service looks WEDGED (E_UNEXPECTED), self-healing: wsl --shutdown, settle, retry once
13:37:25.818 [cmd] $ wsl --shutdown
13:37:28.839 [wsl] --shutdown ok, waiting for the service to settle
13:37:44.098 [wsl] RECOVERED after --shutdown: ["-d","Adom-Workspace",…] succeeded on retry
Two defects, one compounding the other
1. The update relaunch produces overlapping instances. Three starts in 34 seconds, and the three os error 10048 ("address already in use") lines prove the 13:37:21 instance still held 47083/47084/47085 when the 13:37:24 instance came up. Two copies of Hydrogen were alive simultaneously, both talking to wslservice.
2. A single generic COM error triggers a machine-wide destructive command. The 13:37:24 instance fired wsl --shutdown 81 ms after publishing its runtime key, on one E_UNEXPECTED — which is exactly what concurrent callers racing a busy wslservice produce. wsl --shutdown is not scoped to a distro: it terminates the entire WSL utility VM and every distro in it, including docker-desktop and any personal distro Hydrogen never created.
Hydrogen already has the right behavior elsewhere
The WSL_WEDGED path is careful:
[wsl] WSL_WEDGED declared: 3 consecutive wsl.exe timeouts (last: workspace_stats probe (3s)).
The Windows WSL management plane (wslservice) is not responding; the distro itself may be
fine. Suppressing non-essential wsl.exe calls; workspace health falls back to HTTP probes.
Three consecutive timeouts before declaring, an explicit statement that the distro is probably fine, and a response that backs off instead of shutting anything down. That path handled two real wedges on 2026-09-14 (13:33 and 17:29, both immediately following sleep/resume) and cleared on its own within 9 seconds each time, with no collateral damage. The two code paths react to the same underlying condition — wslservice not answering — with opposite levels of aggression.
Impact
Silent termination of distros belonging to the user rather than to Hydrogen. Running processes, /tmp contents, and unsaved editor state in those distros are lost. In this case a VS Code Remote-WSL session into Ubuntu-24.04 was severed; VS Code then served a cached endpoint and reported Cannot register remote filesystem provider. Error while fetching remote environment. WebSocket close with status code 1006 on every reconnect and every newly opened window, which is not an obvious pointer back to Hydrogen.
The README currently promises the opposite:
stays cleanly separated from the rest of your system, including your other WSL distros and Docker Desktop, which Hydrogen never touches
Suggested fixes
- Never call bare
wsl --shutdown.wsl --terminate Adom-Workspaceis the same remedy for Hydrogen's own distro with no blast radius. - Route the
E_UNEXPECTEDcase into the existingWSL_WEDGEDpolicy (N consecutive failures, back off, fall through to HTTP probes) instead of straight to a shutdown. - Suppress WSL health checks for the first few seconds after startup, and while another instance still holds the default ports.
- Fix the relaunch so the outgoing instance has released its ports before the new one starts. The 10048 triple is a reliable detector for "a sibling is still alive."
- If a machine-wide shutdown is ever genuinely necessary, enumerate
wsl -l -qfirst and tell the user which distros are about to be terminated.
Environment
- Hydrogen 1.0.424 → 1.0.431, insiders tier, build
efa297192b87a81f251d488fd5363289c4c5e52b-dirty - Windows 10.0.26200.9457
- WSL 2.7.11.0, kernel 6.18.33.2-2
.wslconfig:networkingMode=mirrored,hostAddressLoopback=true- Distros registered:
Ubuntu-24.04(personal, default),docker-desktop,Adom-Workspace