← Commit history

Publish 0.1.1

Kyle Bergstedt ·8c8dde79f1 · ·parent a6e1bd3
50 files changed +55−20
docs/._hero.pngadded
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -4,7 +4,7 @@   "type": "bootstrap",   "title": "Hydrogen Desktop (macOS / Lima)",   "brief": "The macOS platform layer for Hydrogen Desktop.",-  "version": "0.1.0",+  "version": "0.1.1",   "description": "The macOS platform layer for Hydrogen Desktop, where the workspace runs in a Lima Ubuntu VM hosting the Adom-Workspace systemd-nspawn machine. Depends on adom/hd-bootstrap (the platform-generic HD layer) and adds everything specific to the Lima/nspawn runtime: the container/networking/ports/setup/topology/volume/workspace-lifecycle hd-* skills (the macOS-runtime bucket), the in-machine workspace-updater daemon, and the macOS code-server workbench seed. Sibling layers adom/hd-windows-bootstrap (WSL2) and adom/hd-ubuntu-bootstrap depend on the same adom/hd-bootstrap. This is the package the golden Lima image installs.",   "org": "adom",   "platform": "linux",
page.json+39−4
@@ -3,8 +3,8 @@   "type": "bootstrap",   "slug": "hd-mac-bootstrap",   "title": "Hydrogen Desktop (macOS / Lima)",-  "brief": "The macOS platform layer for Hydrogen Desktop — converges a Lima/nspawn workspace to the HD-on-Mac runtime.",-  "version": "0.1.0",+  "brief": "The macOS platform layer for Hydrogen Desktop.",+  "version": "0.1.1",   "license": "proprietary",   "visibility": {     "public": true@@ -15,7 +15,42 @@     "kind": "bootstrap"   },   "hero": {-    "type": "image",-    "path": "screenshots/hero.png"+    "type": "billboard",+    "headline": "Hydrogen Desktop for macOS",+    "subhead": "The Lima/nspawn workspace layer — AI-driven electronics design, native on Apple Silicon.",+    "screenshot": "docs/hero.png"+  },+  "description": "The macOS platform layer for Hydrogen Desktop, where the workspace runs in a Lima Ubuntu VM hosting the Adom-Workspace systemd-nspawn machine. Depends on adom/hd-bootstrap (the platform-generic HD layer) and adds everything specific to the Lima/nspawn runtime: the container/networking/ports/setup/topology/volume/workspace-lifecycle hd-* skills (the macOS-runtime bucket), the in-machine workspace-updater daemon, and the macOS code-server workbench seed. Sibling layers adom/hd-windows-bootstrap (WSL2) and adom/hd-ubuntu-bootstrap depend on the same adom/hd-bootstrap. This is the package the golden Lima image installs.",+  "org": "adom",+  "platform": "linux",+  "tags": [+    "bootstrap",+    "hydrogen-desktop",+    "hd",+    "macos",+    "mac",+    "lima",+    "nspawn"+  ],+  "needs_sudo": false,+  "scripts": {+    "postinstall": "./postinstall.sh"+  },+  "dependencies": {+    "adom/hd-bootstrap": "^0.2.0",+    "adom/adom-workspace-updater": "^0.1.0"+  },+  "files": [+    "postinstall.sh",+    "skills/**",+    "README.md",+    "SKILL.md",+    "page.json",+    "docs/**",+    "screenshots/**"+  ],+  "author": {+    "name": "Kyle Bergstedt",+    "email": "[email protected]"   } }\ No newline at end of file
screenshots/._hero.pngadded
⋯ 1 unchanged line ⋯
skills/._hd-api-macadded
⋯ 1 unchanged line ⋯
skills/._hd-browser-picker-macadded
⋯ 1 unchanged line ⋯
skills/._hd-captions-macadded
⋯ 1 unchanged line ⋯
skills/._hd-containeradded
⋯ 1 unchanged line ⋯
skills/._hd-container-statsadded
⋯ 1 unchanged line ⋯
skills/._hd-networkingadded
⋯ 1 unchanged line ⋯
skills/._hd-notifications-macadded
⋯ 1 unchanged line ⋯
skills/._hd-open-url-macadded
⋯ 1 unchanged line ⋯
skills/._hd-permissions-macadded
⋯ 1 unchanged line ⋯
skills/._hd-port-watcheradded
⋯ 1 unchanged line ⋯
skills/._hd-portsadded
⋯ 1 unchanged line ⋯
skills/._hd-recording-macadded
⋯ 1 unchanged line ⋯
skills/._hd-screen-lock-macadded
⋯ 1 unchanged line ⋯
skills/._hd-self-screenshot-macadded
⋯ 1 unchanged line ⋯
skills/._hd-setupadded
⋯ 1 unchanged line ⋯
skills/._hd-setup-stepsadded
⋯ 1 unchanged line ⋯
skills/._hd-topologyadded
⋯ 1 unchanged line ⋯
skills/._hd-ui-macadded
⋯ 1 unchanged line ⋯
skills/._hd-volumeadded
⋯ 1 unchanged line ⋯
skills/._hd-workspace-lifecycleadded
⋯ 1 unchanged line ⋯
skills/._hd-workspace-monitoringadded
⋯ 1 unchanged line ⋯
skills/hd-api-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-browser-picker-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-captions-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-container-stats/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-container-stats/SKILL.md+1−1
@@ -139,7 +139,7 @@ Or if the workspace is in a broken state:  **"Why is CPU showing 200% / 1600%?"** It's not — the displayed % is capped at 100 for the bar fill, but the tooltip shows the real number. CPU of `100% of 16 cores` means 1 full vCPU pegged. -**"Why does RAM stay constant at ~4% even when I'm doing nothing?"** Code-server, the relay, gallia, the adom-vscode HTTP API, etc. all run in the machine all the time. ~700 MB baseline is normal.+**"Why does RAM stay constant at ~4% even when I'm doing nothing?"** Code-server, the relay, the adom-vscode HTTP API, etc. all run in the machine all the time. ~700 MB baseline is normal.  **"The 'restart needed' badge appeared — what happened?"** Almost always a Lima/machine hiccup after Mac wake/sleep, leaving the machine or code-server unreachable. Click Restart Workspace in the Adom menu (top-left). HD will `machinectl terminate Adom-Workspace`, re-ensure code-server, and the badge clears. 
skills/hd-container/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-container/SKILL.md+5−5
@@ -30,13 +30,13 @@ You are running inside the **`Adom-Workspace` machine** managed by Hydrogen Desk  If you ever need to confirm: `cat /etc/os-release`, `uname -m` (expect `aarch64` on Apple Silicon), `/usr/lib/code-server/bin/code-server --version`. Don't speculate about alpine — it's Ubuntu 24.04, same distro as the cloud container (the cloud is amd64; this macOS port is arm64 + Rosetta for the x86-64 Adom CLIs). -## Setup is via HD's setup-steps, NOT gallia bootstrap.sh+## Setup is via HD's setup-steps, NOT the legacy bootstrap.sh -HD provisions this machine through its own **setup-steps** flow (Rust code in `hydrogen-desktop/src-tauri/crates/hd-app/src/setup_steps_macos.rs`, with the runtime mechanics in `hydrogen-desktop/src-tauri/crates/hd-app/src/runtime/macos.rs`), shown as the "Install Tools" panel in the HD UI. It is a **different code path** than cloud containers, which run `gallia/scripts/bootstrap.sh`.+HD provisions this machine through its own **setup-steps** flow (Rust code in `hydrogen-desktop/src-tauri/crates/hd-app/src/setup_steps_macos.rs`, with the runtime mechanics in `hydrogen-desktop/src-tauri/crates/hd-app/src/runtime/macos.rs`), shown as the "Install Tools" panel in the HD UI. It is a **different code path** than cloud containers, which run the legacy `scripts/bootstrap.sh`. -The machine cascade is **18 steps** (state file `setup-steps-macos.json`) vs the legacy Docker flow's 24. Most tooling is NOT installed by a step — it's BAKED into `adom-golden.tar.gz` at image-build time (gallia, the 8 Adom CLIs, the claude CLI + Code extension, code-server, VS Code settings, and all `hd-*` skills). The Docker `pull-image` / `create-container` / `start-container` steps are collapsed into a single step 1, `ensure-workspace`, which runs `machinectl import-tar` of `adom-golden.tar.gz` if the machine isn't already present. The relay is started by the `start-relay` step. See `hd-golden-image`.+The machine cascade is **18 steps** (state file `setup-steps-macos.json`) vs the legacy Docker flow's 24. Most tooling is NOT installed by a step — it's BAKED into `adom-golden.tar.gz` at image-build time (the 8 Adom CLIs, the adompkg skills, the claude CLI + Code extension, code-server, VS Code settings, and all `hd-*` skills). The Docker `pull-image` / `create-container` / `start-container` steps are collapsed into a single step 1, `ensure-workspace`, which runs `machinectl import-tar` of `adom-golden.tar.gz` if the machine isn't already present. The relay is started by the `start-relay` step. See `hd-golden-image`. -When debugging install issues here, the source of truth is `setup_steps_macos.rs` (and `runtime/macos.rs`) — its step IDs (`ensure-workspace`, `install-adom-vscode`, `set-env-vars`, `inject-api-key`, `start-relay`, `claude-auth`, etc.) map 1:1 to what ran on this machine. There is NO `install-claude-ext` / `install-claude-cli` / `install-gallia` / `write-vscode-settings` step anymore — those are baked. Do NOT chase bugs into `bootstrap.sh` first — that script lives in the baked image but HD itself never invokes it. (For the legacy Docker `setup_steps.rs` flow see the docker/ bucket.)+When debugging install issues here, the source of truth is `setup_steps_macos.rs` (and `runtime/macos.rs`) — its step IDs (`ensure-workspace`, `install-adom-vscode`, `set-env-vars`, `inject-api-key`, `start-relay`, `claude-auth`, etc.) map 1:1 to what ran on this machine. There is NO `install-claude-ext` / `install-claude-cli` / `install-skills` / `write-vscode-settings` step anymore — those are baked. Do NOT chase bugs into `bootstrap.sh` first — that script lives in the baked image but HD itself never invokes it. (For the legacy Docker `setup_steps.rs` flow see the docker/ bucket.)  ## VS Code extension caveats @@ -123,7 +123,7 @@ adom-desktop desktop_open_folder '{"path": "/Users/john/project"}'  - `ADOM_DESKTOP_MODE=local` — indicates HD local mode - `HD_RUNTIME=macos` — indicates the machine runtime (default); `docker` selects the legacy container runtime-- `GALLIA_SERVICE=local` — tells gallia this is a local workspace+- `ADOM_SERVICE=local` — marks this as a local workspace - `VSCODE_PROXY_URI=http://localhost:7380/proxy/{{port}}/` — code-server's proxy  ## Related skills
skills/hd-networking/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-notifications-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-open-url-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-permissions-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-port-watcher/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-ports/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-recording-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-screen-lock-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-self-screenshot-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-setup-steps/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-setup-steps/SKILL.md+4−4
@@ -1,6 +1,6 @@ --- name: hd-setup-steps-description: What HD's setup steps did to prepare your workspace — the 18-step install sequence that imports the Adom-Workspace golden image, injects your Adom session, wires up the relay, and walks the Claude auth gate. Use this skill when the user asks "what did setup do", "why is X installed", "re-run a setup step", "what's a virgin reset", or "why did step N fail". Trigger words — setup steps, install steps, setup panel, virgin reset, re-run step, Run All, what did setup do, why is X installed, setup failed, install-tools, hd setup, claude code extension install, gallia install, hd workspace ready.+description: What HD's setup steps did to prepare your workspace — the 18-step install sequence that imports the Adom-Workspace golden image, injects your Adom session, wires up the relay, and walks the Claude auth gate. Use this skill when the user asks "what did setup do", "why is X installed", "re-run a setup step", "what's a virgin reset", or "why did step N fail". Trigger words — setup steps, install steps, setup panel, virgin reset, re-run step, Run All, what did setup do, why is X installed, setup failed, install-tools, hd setup, claude code extension install, skills install, hd workspace ready. ---  # HD Setup Steps — what was done to prepare your workspace@@ -8,7 +8,7 @@ description: What HD's setup steps did to prepare your workspace — the 18-step Machine-runtime version (default). The legacy 24-step Docker cascade (`HD_RUNTIME=docker`) is in the docker/ bucket. -When you first launched Hydrogen Desktop (or after a virgin reset), HD ran a 18-step install sequence to turn a blank workspace into a fully-tooled Adom workspace — the `Adom-Workspace` machine. The heavy tooling (code-server, gallia, the 8 Adom CLIs, the claude CLI + Code extension, VS Code settings, and all `hd-*` skills) is already BAKED into the golden image; setup just imports that image, injects your Adom session, wires up the relay, and walks the Claude auth gate. This skill explains what each step did so you can help the user understand their environment, re-run failed steps, or wipe and rebuild. See `hd-golden-image` for the baked-image model.+When you first launched Hydrogen Desktop (or after a virgin reset), HD ran a 18-step install sequence to turn a blank workspace into a fully-tooled Adom workspace — the `Adom-Workspace` machine. The heavy tooling (code-server, the 8 Adom CLIs, the adompkg skills, the claude CLI + Code extension, VS Code settings, and all `hd-*` skills) is already BAKED into the golden image; setup just imports that image, injects your Adom session, wires up the relay, and walks the Claude auth gate. This skill explains what each step did so you can help the user understand their environment, re-run failed steps, or wipe and rebuild. See `hd-golden-image` for the baked-image model.  The cascade is executed by `setup_steps_macos.rs` (`step_defs_machine()` / `run_all_machine()`). `run_all_machine` is halt-on-failure, resume-not-restart, with per-step 3× auto-retry. In-machine work runs via `limactl shell hd-builder -- sudo nsenter -t <leader> -a -S 1001 -G 1001 -- bash -lc '<cmd>'` (the machine's DEFAULT user is `adom`, UID 1001, home `/home/adom`; under systemd-nspawn there's no wsl.conf — the default user comes from the machine config / nsenter `-S 1001 -G 1001`; root variant drops `-S 1001 -G 1001`). There is NO `docker exec` and NO Docker image anywhere in this flow. @@ -37,11 +37,11 @@ The cascade is executed by `setup_steps_macos.rs` (`step_defs_machine()` / `run_  ### Steps that NO LONGER EXIST (baked into the golden image) -These are NOT setup steps anymore — they are baked at image-build time: `install-gallia`, `install-hd-skills`, `verify-adom-desktop`, `install-claude-cli`, `install-claude-ext`, `write-vscode-settings`, `set-trusted-domains`, `clean-layout`. If a user asks "what installed gallia / the Claude extension / my skills / VS Code settings", the answer is: **baked into the `adom-golden.tar.gz` golden image at build time, not a setup step.** See `hd-golden-image`.+These are NOT setup steps anymore — they are baked at image-build time: `install-hd-skills`, `verify-adom-desktop`, `install-claude-cli`, `install-claude-ext`, `write-vscode-settings`, `set-trusted-domains`, `clean-layout`. If a user asks "what installed the Claude extension / my skills / VS Code settings", the answer is: **baked into the `adom-golden.tar.gz` golden image at build time, not a setup step.** See `hd-golden-image`.  ## Common user questions -**"Why is X installed in my workspace?"** → If X is gallia, an Adom CLI, the claude CLI, the Claude Code extension, VS Code settings, or an `hd-*` skill, it was **baked into the golden image** — not run as a setup step. The setup steps only import the image, inject your session, wire the relay, and walk Claude auth. The setup panel (HD UI → bottom) lists every step with its current status.+**"Why is X installed in my workspace?"** → If X is an adompkg skill, an Adom CLI, the claude CLI, the Claude Code extension, VS Code settings, or an `hd-*` skill, it was **baked into the golden image** — not run as a setup step. The setup steps only import the image, inject your session, wire the relay, and walk Claude auth. The setup panel (HD UI → bottom) lists every step with its current status.  **"Setup failed at step N"** → The setup panel shows the error. Most common failures: step 1 (Lima VM `hd-builder` not available / failed to provision, or the `adom-golden.tar.gz` download), step 11 (test-adom-cli — carbon/hydrogen-proxy not reachable yet), step 12 (Claude credentials expired). Each step has a retry button (and the cascade already retried it 3×). 
skills/hd-setup/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-setup/SKILL.md+5−5
@@ -18,7 +18,7 @@ Machine-runtime version (default). The legacy 24-step Docker cascade  The HD setup process targets ZERO manual clicks for the user. The heavy lifting is already done at image-build time: the `Adom-Workspace` golden-image ships with code-server, gallia, the 8 Adom CLIs, the claude CLI + Code+image ships with code-server, the 8 Adom CLIs, the adompkg skills, the claude CLI + Code extension, VS Code settings, and all `hd-*` skills BAKED IN. Setup just imports that image, injects the user's session, wires up the relay, and walks the single human auth gate. If something is missing, HD downloads it — never@@ -57,10 +57,10 @@ per-step 3× auto-retry. State is tracked in `setup-steps-macos.json` ### Steps that NO LONGER EXIST (baked into the golden image)  These are NOT setup steps anymore — they are baked at image-build time and-must not be listed or "run": `install-gallia`, `install-hd-skills`,+must not be listed or "run": `install-hd-skills`, `verify-adom-desktop`, `install-claude-cli`, `install-claude-ext`,-`write-vscode-settings`, `set-trusted-domains`, `clean-layout`. gallia, the 8-Adom CLIs, the claude CLI + Code extension, code-server, settings, and all+`write-vscode-settings`, `set-trusted-domains`, `clean-layout`. The 8+Adom CLIs, the adompkg skills, the claude CLI + Code extension, code-server, settings, and all `hd-*` skills are baked into the `adom-golden.tar.gz` image. See `hd-golden-image`. @@ -185,7 +185,7 @@ a real layout; `welcome` opens Claude Code and sends the first prompt; the final `open-welcome` gate opens welcome.html in HD's right pane and HARD-FAILS if the Welcome tab doesn't appear. -> Note: gallia, the Adom CLIs, the claude CLI + Code extension, VS Code+> Note: the Adom CLIs, the adompkg skills, the claude CLI + Code extension, VS Code > settings, and `hd-*` skills are NOT setup steps — they are baked into > `adom-golden.tar.gz`. See `hd-golden-image`. 
skills/hd-topology/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-ui-mac/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-volume/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-workspace-lifecycle/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/hd-workspace-monitoring/._SKILL.mdadded
⋯ 1 unchanged line ⋯