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.
Restart to update hangs on "Restarting...": the updater waits forever on Claude threads that aren't running a turn
Versions: ah 1.0.678 (build 5092a3a9, dirty) to 1.0.683 (insiders) · ab 2.1.185 (installed by ah at 09:36:50) · adom/core 4.15.3 · Windows
What I did: woke the PC this morning, saw the banner "Restart to update (1.0.678 → 1.0.683)", and clicked it.
Expected: Hydrogen relaunches on 1.0.683 within seconds.
What happened: the banner says "Restarting..." and stays there; 15+ minutes so far. Hydrogen is still running 1.0.678 (/updater/status: current_version 1.0.678, staged: true, staged_version 1.0.683). The installer in Temp is complete and matches the published SHA-256 (857968e2…f0a0).
Cause, from the log (%APPDATA%\hydrogen-desktop\hydrogen-desktop.log, excerpt attached):
09:39:12.510 [ai-threads] hook event #405: SessionStart (claude)
09:39:14.543 [ai-threads] hook event #406: SessionStart (claude)
09:39:20.046 [wake-heal] reload: editor reloaded: the adom-vscode extension host restarted
09:39:25.933 updater_install invoked (banner/UI)
09:39:26.560 [updater] staged installer for 1.0.680 failed its re-check (...): downloading again instead of running it
09:39:26.561 Downloading installer .../1.0.683/Adom.Hydrogen_1.0.683_x64-setup.exe -> ...\Temp\Adom.Hydrogen_1.0.683_x64-setup.exe
09:39:26.727 Staging installer .../1.0.683/Adom.Hydrogen_1.0.683_x64-setup.exe -> ...\Temp\Adom.Hydrogen_1.0.683_x64-setup.exe
09:39:27.233 SHA256 verified (857968e2...)
09:39:27.244 [updater] auto-install waiting: claude be6d5ed2; claude a5715cff (checks every minute)
09:39:27.377 Update 1.0.683 staged + verified, ready for instant apply
(then only heartbeats: no further [updater] line in 15+ minutes)
- The click is gated by the auto-install "wait for busy Claude threads" rule. The wait names two threads, and neither was running a turn. The editor's reload at wake restored this thread's panel (be6d5ed2: idle, no prompt until 09:54:26, when I started it after clicking update) and opened an empty one (a5715cff: no transcript, never prompted). Both counted as busy because a
SessionStartwith noStopafter it looks like a turn in progress. An empty panel never sendsStop, so the wait can never end. - No feedback. The banner shows "Restarting..." with no reason, no thread names, and no "Restart anyway". The log promises "checks every minute" but never logs a re-check.
- Race (minor): the click's
download_and_installand the background stager downloaded 1.0.683 to the same temp file at the same time (09:39:26.561 and .727). It verified this time, but two writers on one path can corrupt the installer. - Possibly related:
[cdp-gate] ai_tabs::spawn_ai_threads_sweeper held the gate for 53030sat 09:38:40 (overnight sleep). If the busy check reads thread state through that gate, a stuck holder could also keep it waiting.
Suggested fixes:
- Busy means a turn in progress. Count a thread as busy only between a
UserPromptSubmitand itsStop, not after a bareSessionStart. Also cap the wait, or re-check against the live tab list: a5715cff isn't even in/ai-threads. - A click is consent. Restart now, or at least turn the banner into "Waiting for 2 AI threads to finish: · Restart anyway".
- Log each re-check of the wait.
- Serialize the two downloads, or give them separate temp paths.
Workaround: quit Hydrogen from the tray and reopen it. The staged 1.0.683 applies on the next launch.