Closed bug report

Mac: adom-vscode + Adom themes never installed, but every setup step says "done" (stale 1.1.47 in golden image, errors swallowed, launch check only logs MISSING); plus Hydrogen must never run two instances

anastasia · 15d ago ·closed by Kyle Bergstedt

@kyle: on anastasia's Mac, Hydrogen ran for two weeks with no adom-vscode and no Adom themes at all, while every setup step reported done. The root cause is below, plus the manual fix that worked and what Hydrogen needs to change. This is a follow-up to #12, which covers the duplicate-instance / Claude panel problem; this issue is mainly about adom-vscode, with the single-instance ask repeated as Ask 0.

Machine: Apple Silicon, 16 GB, Darwin 25.6.0. Hydrogen 0.1.421-dev.4 (also seen on 0.1.420). Workspace image from 2026-09-09, set up 2026-10-13.


TL;DR

  1. The golden image bakes in a stale /usr/local/bin/adom-vscode 1.1.47 (root-owned, dated 2026-09-09 12:58, not from any dpkg package).
  2. In the install-adom-vscode step, which adom-vscode finds that binary, so the step skips the download ("binary already installed"). It then runs /usr/local/bin/adom-vscode install 2>/dev/null || true and marks the step done no matter what happened.
  3. install-core-tools runs adom-wiki pkg install adom/adom-cli adom/adom-vscode-macos … || true. That never landed ~/project/adom_modules/adom/adom-vscode-macos, and its log, /tmp/hydrogen-core-tools-install.log, sits on the container's tmpfs /tmp, so it was wiped by the next container restart. That step is also done.
  4. Each launch, the re-assert script checks [ -f ~/project/adom_modules/adom/adom-vscode-macos/install.sh ] || { echo MISSING; exit 0; }. It only detects; it never installs. So Hydrogen logged [macos] adom-vscode macOS line: MISSING on every launch since at least 2026-10-23 and moved on.
  5. Meanwhile Hydrogen re-merges "workbench.colorTheme": "Adom Studio" on every start, even though that theme doesn't exist. VS Code silently fell back to Dark+.

Net effect for the user: stock code-server 4.136.2, no :8821 editor-control API, no Adom themes or fonts, no adom-vscode skills for the agents, and a setup screen that's all green.


Evidence

Setup says everything is done

~/Library/Application Support/adom-hydrogen/setup-steps-macos.json has every step, including install-adom-vscode, install-core-tools, install-hydrogen-skills and verify-setup, at status: done. setup-ever-completed.json is dated 2026-10-13.

What was actually in the workspace (before my fix)

Check Result
/usr/local/bin/adom-vscode --version adom-vscode 1.1.47 (stale, from the golden image)
code-server --list-extensions [email protected] only; no adom.adom-vscode, no adom.adom-theme
~/.local/share/adom-vscode/flavor does not exist
~/project/adom_modules/adom/ adom-bridge, adom-bridge-macos, adom-google, fusion-bridge-macos, kicad-bridge, premiere-bridge, pup-bridge; no adom-vscode-macos, no adom-theme
:8821 nothing listening
/tmp/*.log none (tmpfs, wiped on container restart)
code-server stock 4.136.2 … with Code 1.136.1, "nameLong": "code-server", apt-held
Active theme Dark+, with settings.json saying Adom Studio

The code paths (from the 0.1.421-dev.4 binary)

install-adom-vscode:

if ! which adom-vscode …; then
    curl -fsSL "https://wiki.adom.inc/api/v1/pages/adom-vscode/files/bin/adom-vscode?org=adom" -o /tmp/adom-vscode-dl
    sudo mv /tmp/adom-vscode-dl /usr/local/bin/adom-vscode …
    step done "curl … -o /usr/local/bin/adom-vscode" "binary installed"
else
    step skip "which adom-vscode" "binary already installed"      # <- stale 1.1.47 satisfies this
fi
step run "adom-vscode install" "installing extension + skill..."
/usr/local/bin/adom-vscode install 2>/dev/null || true            # <- errors discarded
step done "adom-vscode install" "extension + skill deployed"      # <- always "done"

Two more problems here:

  • This path fetches the upstream adom/adom-vscode binary, not the macOS line.
  • It installs to /usr/local/bin, while the macOS line installs to ~/.local/bin.

install-core-tools:

LOG=/tmp/hydrogen-core-tools-install.log                          # <- tmpfs in the nspawn machine
ADOM_WIKI_REGISTRY="$REGISTRY" "$CLI" pkg install adom/adom-cli adom/adom-vscode-macos --allow-sudo … || true

Launch-time re-assert:

PKG="$HOME/project/adom_modules/adom/adom-vscode-macos"
[ -f "$PKG/install.sh" ] || { echo MISSING; exit 0; }             # <- never tries to install

Manual fix (worked)

As adom inside Adom-Workspace, with adom-wiki 1.0.2:

ADOM_WIKI_REGISTRY=https://wiki.adom.inc adom-wiki pkg install adom/adom-vscode-macos --allow-sudo
adom-vscode reload
adom-vscode theme set "Adom Studio"

The install returned rc=0 and reported adom/adom-vscode-macos 1.1.113 (app) and adom/adom-theme 2.3.9 (skill). Afterwards:

  • code-server --list-extensions shows [email protected] and [email protected].
  • The flavor marker reads macos 1.1.113.
  • ~/project/adom_modules/adom/adom-vscode-macos/ and adom-theme/ both exist now, so the launch check should report already instead of MISSING.
  • adom-vscode health reports v1.1.113 running on port 8821 (47 verbs).
  • The theme picker has Adom Studio, Adom Studio Dark, Adom Studio Dark (Brighter Text), Adom Kickstand and Adom Slate. Adom Studio is applied live.
  • Fonts went to ~/.local/share/fonts/adom-theme: JetBrains Mono, Familjen Grotesk, and Satoshi (4/4 faces).
  • The adom-vscode skill pack installed 5 of 6 sub-skills.
  • Claude Code relaunched cleanly after the reload, at 16:47:09.

Remaining problems after the fix

  1. Two adom-vscode binaries on PATH. ~/.local/bin/adom-vscode is 1.1.113 (macos), and /usr/local/bin/adom-vscode is still 1.1.47. Hydrogen calls /usr/local/bin/adom-vscode reload|panel hide|sidebar hide by absolute path, so it drives the old binary against the new extension.
  2. Version skew in the theme pack. The registry installs adom/adom-theme 2.3.9, but its installer printed "VS Code theme pack v2.3.7 installed", and code-server lists [email protected].
  3. Missing sub-skill. adom-vscode-modes returns 404 at https://wiki.adom.inc/api/v1/pages/adom-vscode/files/skills/adom-vscode-modes/SKILL.md. The macOS line's skill pack still points at the upstream page for that file.
  4. Not yet verified across a Hydrogen relaunch. I didn't relaunch Hydrogen, to avoid interrupting the user. The next launch should say already. If it says CHANGED or FAILED, or the themes disappear, that's a second bug.

Asks

  1. Never run two Hydrogens at once (anastasia's top ask, see #12). Today the installed 0.1.420 and a 0.1.421-dev.4 launched from the DMG ran side by side for 2+ hours. The newer one lost every port bind (1431, 47080, 47084, 9001, 8770) but still restarted code-server, re-merged settings, rewrote ~/.adom/hydrogen-direct-api-port and took Bridge ownership. Two workbenches then shared one code-server, and the Claude panel broke. Hydrogen should guarantee exactly one instance:
    • Same version launched twice: focus the running instance and exit.
    • Newer version launched while an older one runs: the new one tells the old one to shut down gracefully, for example over the control port (:47084) or the direct API, waits for it to exit and release its ports, then binds them itself. Hard-kill only after a timeout.
    • Older version launched while a newer one runs: refuse, and focus the newer one.
    • Never continue headless after a failed :1431 bind ("window will not load"). That half-alive state, still mutating the workspace, is the worst outcome.
  2. Stop swallowing install failures. Drop 2>/dev/null || true on the steps that matter, or check the result afterwards: code-server --list-extensions | grep -q '^adom\.adom-vscode$' and adom-vscode health. Only mark install-adom-vscode / install-core-tools done when the extension is actually registered and :8821 answers.
  3. Don't trust which adom-vscode. Either remove the stale 1.1.47 from the golden image, or check adom-vscode --version | grep -q '(macos)' and the flavor marker before skipping.
  4. Make the launch re-assert self-heal. When the macOS line is MISSING, run adom-wiki pkg install adom/adom-vscode-macos instead of only logging it, with backoff and a surfaced error if it fails.
  5. Persist install logs. Write them under ~/.local/state/hydrogen/ or the Mac side, not the tmpfs /tmp, so they survive container restarts and can go in diagnostics bundles.
  6. One adom-vscode on PATH. The macOS line should replace or symlink /usr/local/bin/adom-vscode, or Hydrogen should call ~/.local/bin/adom-vscode.
  7. Guard the theme setting. Only write workbench.colorTheme: "Adom Studio" once adom.adom-theme is installed, or log a warning when it isn't. Today the result is a silent fallback to Dark+.
  8. Fix the adom-theme 2.3.9 → 2.3.7 skew and the adom-vscode-modes 404.
  9. Make verify-setup actually verify this. It passed with no Adom extension present.

Logs and paths

  • Mac: ~/Library/Application Support/adom-hydrogen/adom-hydrogen.log* (grep adom-vscode macOS line) and setup-steps-macos.json
  • Container: ~/project/adom_modules/adom/adom-vscode-macos/, ~/.local/share/adom-vscode/flavor, ~/.local/share/code-server/extensions/, ~/.local/share/code-server/logs/20261026T164200/

Filed via Claude Code on anastasia's behalf.

1 Reply

Kyle Bergstedt closed this · 4d ago
Kyle Bergstedt reopened this · 4d ago
Kyle Bergstedt · 4d ago

fixed: the launch check reinstalls adom-vscode-macos when missing, core-tools and adom-vscode steps fail unless the extension is really there, doctor checks real packages. 0.1.429-dev.12 also relinks the stale /usr/local/bin/adom-vscode 1.1.47 to the current one and keeps the skills log in ~/.local/state/hydrogen

Kyle Bergstedt closed this · 4d ago

Log in to reply.