bootstrap
Adom Hydrogen (platform base)
Public Made by Adomby adom
Layer Hydrogen's workspace onto a standard Adom workstation.
← Commit history
package.json+1−1@@ -4,7 +4,7 @@ "type": "bootstrap", "title": "Hydrogen Desktop Bootstrap (apps + skills)", "brief": "Layer Hydrogen Desktop's workspace onto a standard Adom workstation.",- "version": "0.2.26",+ "version": "0.2.27", "description": "Hydrogen Desktop's PLATFORM-GENERIC workspace layer on top of adom/core. Installs adom/core for the full Adom ecosystem, then adds everything common to running inside Hydrogen Desktop on ANY platform: the platform-generic hd-* skills (BUNDLED in this package by design; wsl2 skills ride adom/hd-windows-bootstrap, mac skills ride adom/hd-mac-bootstrap) and the generic HD editor configuration (Claude Code CLI + extension, VS Code settings, trusted domains). Platform-specific layers depend on THIS: adom/hd-windows-bootstrap, adom/hd-mac-bootstrap.", "org": "adom", "tags": [
page.json+1−1@@ -4,7 +4,7 @@ "type": "bootstrap", "title": "Hydrogen Desktop Bootstrap (apps + skills)", "brief": "Layer Hydrogen Desktop's workspace onto a standard Adom workstation.",- "version": "0.2.26",+ "version": "0.2.27", "description": "Hydrogen Desktop's PLATFORM-GENERIC workspace layer on top of adom/core. Installs adom/core for the full Adom ecosystem, then adds everything common to running inside Hydrogen Desktop on ANY platform: the platform-generic hd-* skills (BUNDLED in this package by design; wsl2 skills ride adom/hd-windows-bootstrap, mac skills ride adom/hd-mac-bootstrap) and the generic HD editor configuration (Claude Code CLI + extension, VS Code settings, trusted domains). Platform-specific layers depend on THIS: adom/hd-windows-bootstrap, adom/hd-mac-bootstrap.", "org": "adom", "tags": [
skills/hd-avatar/SKILL.mdadded+60@@ -0,0 +1,60 @@+---+name: hd-avatar+description: >+ Change the user's Adom avatar (profile picture) and make Hydrogen Desktop show the new one+ immediately. Use when the user says "change my avatar", "update my profile picture", "set my+ avatar to this image", "use this photo as my picture", "reset my avatar", "remove my profile+ picture", or hands you an image to use as their avatar. Covers the Carbon upload, the HD+ control-API path, and — critically — how to make HD repaint so the old picture isn't left+ stale in the title bar and profile menu. Trigger words: avatar, profile picture, profile photo,+ change my avatar, update avatar, set avatar, reset avatar, remove avatar, my picture, headshot.+---++# hd-avatar — change the avatar, and make HD show it++The avatar appears in HD's title bar and as the header of the profile menu (the **Identity+Card** — see the `identity-card` skill). Two things matter: uploading it, and making the+running HD pick it up.++## Change it (from the container)++```bash+adom-cli carbon user avatar-upload /path/to/image.png # any image; 204 on success+adom-cli carbon user avatar-delete # back to the generated default+```++## THEN tell HD, or it stays stale++HD caches the signed-in user object at launch. The upload succeeds, but HD keeps painting the+OLD picture until it re-reads the profile. One call fixes that:++```bash+CTRL="$(cat ~/.adom/hd-control-url)" # HD's live control port+curl -s -X POST "$CTRL/user/refresh" # HD re-reads /user and repaints instantly+```++Do this **immediately after** any avatar or profile change so the user sees it without+reopening anything. If you skip it, HD still self-heals the next time the profile menu is+opened (it re-reads on open) or on the next HD launch — but the user will notice the lag.++## Why there is no cache-busting to do++Avatar URLs are **content-hashed** — `https://cdn.adom.inc/avatars/<hash>.png`. A different+image is a different URL, so the CDN can never serve a stale picture and you never need+`?v=` tricks. The ONLY staleness is HD's in-memory user object, which is exactly what+`/user/refresh` clears.++## The user can also do it themselves++In HD: click the avatar in the profile menu (a camera badge appears on hover) → pick an image →+HD uploads it and repaints. That path uses the same Carbon endpoint via+`POST <control>/user/avatar` with `{"filename": "...", "data": "<base64>"}`, and+`DELETE <control>/user/avatar` resets to the default.++## Verify, don't assume++```bash+adom-cli carbon user get # avatar_url should now show a NEW hash+```+Confirm the hash changed before telling the user it worked. If the upload returns non-2xx,+report the status — do not claim success.