← Commit history

Delete skills/hd-runtime-mode/SKILL.md

John Lauer ·a3a55a4c3a ·2mo ago ·parent b289c0c
1 file changed −81
skills/hd-runtime-mode/SKILL.mddeleted−81
@@ -1,81 +0,0 @@-----name: hd-runtime-mode-description: >-  Which workspace runtime your Hydrogen Desktop is using — a WSL2 Ubuntu distro-  (default) or a legacy Docker container (HD_RUNTIME=docker) — how to tell which-  one you're in, what changes between them, and which runtime-specific skills to-  trust. READ THIS FIRST when anything about the workspace's container/distro,-  networking, volumes, ports, or setup steps seems contradictory: the answer-  almost always depends on the runtime. Trigger words — runtime, wsl, wsl2,-  docker mode, HD_RUNTIME, Adom-Workspace, which runtime, container or distro,-  workspace runtime, container runtime unhealthy, am I in docker or wsl.------# HD Runtime Mode — WSL2 (default) vs Docker (legacy)--Hydrogen Desktop hosts your workspace one of two ways. Everything Claude knows-about "the container" — its filesystem, networking, ports, stats, and setup-steps — depends on which one is active. **Check the runtime before trusting any-runtime-specific advice.**--| `HD_RUNTIME` | Runtime | What the workspace is | Setup cascade | State file |-|---|---|---|---|---|-| unset / `wsl2` | **WslDistro — DEFAULT** | WSL2 Ubuntu distro `Adom-Workspace` (`wsl --import`) | 27 steps | `setup-steps-wsl.json` |-| `docker` | DockerDesktop — legacy fallback | Docker container (Docker Desktop) | 24 steps | `setup-steps.json` |--WSL2 is the default — you only get Docker if `HD_RUNTIME=docker` was set before-HD launched. The selector is `runtime/mod.rs::select_runtime()`; the WSL setup-executor is `setup_steps_wsl.rs`, the Docker one is `setup_steps.rs`. Both paths-are kept alive on purpose: the Docker runtime is a pristine fallback in case a-machine can't run WSL2.--## Which runtime am I in? (authoritative checks)--1. **Startup log line:** `[app] Active workspace runtime: WslDistro` (or-   `DockerDesktop`). This is the single source of truth.-2. **WSL only:** `wsl -l -v` shows `Adom-Workspace  Running`; HD logs-   `[wsl-trigger] backend poller armed (...setup-trigger-wsl.json)` and-   `[run_all_wsl] ...`.-3. **Docker only:** a `hydrogen-*` container appears in `docker ps`.-4. From inside the workspace, ask HD: `GET "$(cat ~/.adom/hd-control-url)/wsl/status"`-   (loopback `http://127.0.0.1:<dynamic>`) succeeds (with distro info) on the WSL runtime.--### ⚠️ Benign noise: `[docker] Container runtime unhealthy — exec failed, needs restart`-This line can appear **even on the WSL2 path** — a legacy `hd-docker` heartbeat-polls for a Docker container that doesn't exist and logs "unhealthy". It is-cosmetic and does NOT mean you're in Docker mode. The real WSL health signal is-`[wsl] Workspace unhealthy …`. Confirm the runtime via check #1, never by this line.--## What actually differs between the runtimes--| Concern | WSL2 (default) | Docker (legacy) |-|---|---|---|-| Workspace | `Adom-Workspace` distro, imported from the pre-baked `adom-golden.tar.gz` | container from a ~390 MB image |-| Run a command in it | `wsl -d Adom-Workspace -u adom -- <cmd>` | `docker exec <container> <cmd>` |-| Your files | `/home/adom/project` in the distro's ext4 fs (no volume); browse from Windows at `\\wsl$\Adom-Workspace\…` | Docker named volume; copy out via `docker cp` |-| Ports | code-server binds `0.0.0.0:7380`; WSL2 auto-forwards `0.0.0.0` listeners to Windows `localhost` | single `-p 7380:8080` map; other ports via `/proxy/<port>/` |-| Reach the host | `127.0.0.1` (WSL2 mirrored networking shares loopback with the Windows host); HD's live control URL is in `~/.adom/hd-control-url` | `host.docker.internal` (Docker-provided) |-| Wipe/reset | `wsl --unregister Adom-Workspace` (only that distro) | `docker rm` + volume/image removal |--## Which skills to trust--HD only installs the skills for the **active** runtime (plus the shared ones), so-in most workspaces you'll already have the right set. The runtime-specific skills-exist in two buckets in the HD repo — `wsl2/` and `docker/` — and share names:--- `hd-networking`, `hd-ports`, `hd-port-watcher`, `hd-volume`, `hd-container`,-  `hd-topology`, `hd-container-stats`, `hd-setup`, `hd-setup-steps`-- WSL-only workspace skills: `hd-workspace-lifecycle`, `hd-workspace-monitoring`-- Docker-only skills: `hd-docker-desktop`, `hd-docker-lifecycle`,-  `hd-docker-monitoring`--If you ever see Docker-specific advice (`docker exec`, named volumes, `-p` port-maps) while check #1 says `WslDistro`, you're reading the wrong bucket — defer to-the WSL2 mechanics above.--## Switching runtimes (rare; usually a dev/support action)-HD reads `HD_RUNTIME` from its environment at process start.-- → WSL2 (default): ensure `HD_RUNTIME` is unset or `wsl2`, relaunch HD. If a-  prior run set Docker: `setx HD_RUNTIME wsl2` then relaunch.-- → Docker (fallback): `setx HD_RUNTIME docker`, relaunch HD (requires Docker-  Desktop running).