← Commit history
SKILL.md+1−1
@@ -485,7 +485,7 @@ Bridges are AD's plugins (kicad, puppeteer, fusion360 ship bundled; others insta | `bridge_uninstall` | Remove a bridge (`{"name":"…"}`). Bundled ones revert to the bundled copy; third-party ones are fully removed. | | `bridge_pause` / `bridge_resume` | Flip a routing flag so a bridge's verbs fail-fast with `bridge_paused` (or resume). Does NOT kill the process. | -**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-author` skill.+**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-sdk` skill (the `adom-desktop-bridges` wiki page) + its fill-in-the-blanks templates.  **Typical "am I on the latest bridges?" flow:** ```bash
dist/linux/adom-desktop
⋯ 1 unchanged line ⋯
install.sh+25−37
@@ -1,44 +1,28 @@ #!/usr/bin/env bash-# adom-desktop installer — installs cleanly under adom-wiki (the official wiki CLI; adompkg retired).+# adom-desktop installer — runs in the Adom container via `adompkg install`. #-# Bundled-artifact model: the Linux CLI companion + the Claude skill bundle ship INSIDE this-# package's tarball (dist/linux/, skills/). We SYMLINK them onto PATH / into ~/.claude/skills.-# SELF-CONTAINED: no dependency on any package-manager's shell helpers (formerly-# `source "$(adompkg sh-helpers)"`), so it works under adom-wiki, adompkg, or a bare run.+# Bundled-artifact model (v1.8.147+): the Linux CLI companion + the Claude skill+# bundle ship INSIDE this package's tarball (dist/linux/, skills/). We SYMLINK+# them onto PATH / into ~/.claude/skills via the adompkg sh-helpers — the+# lint-sanctioned convention (no copy-into-standard-targets). No download, no+# version.json dependency: the binary is right here, SHA-fixed by the published+# tarball. #-# What it does NOT do: install the Windows/macOS GUI. That runs on the user's laptop; the signed-# Windows installer is bundled at dist/win/ for Hydrogen Desktop to pull + run there.+# What it does NOT do: install the Windows/macOS GUI. That runs on the user's+# laptop; the signed Windows installer is bundled at dist/win/ for Hydrogen+# Desktop to pull + run there. The skills tell Claude how to get the GUI onto+# the laptop. set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)"-cd "$HERE"   # install runs with cwd = the extracted module dir (adom-wiki/adompkg both set it).+cd "$HERE"   # sh-helpers symlink FROM $PWD; `adompkg install` sets cwd here too. -# Self-contained symlink helpers (replacing adompkg-link-bin / adompkg-link-skill). Convention:-# every install target is a symlink back into the module dir, so edits propagate and reinstalls-# don't clobber. Portable (no GNU-only `ln -T`): a real-dir squatter is replaced first.-link_bin() {  # <name> [relative-path, default bin/<name>]-  local name="$1" rel="${2:-bin/$1}" target="${ADOM_BIN_DIR:-$HOME/.local/bin}"-  mkdir -p "$target"-  if [ -L "$target/$name" ]; then-    local existing; existing="$(readlink "$target/$name" 2>/dev/null || true)"-    [ -n "$existing" ] && [ "$existing" != "$PWD/$rel" ] && \-      echo "WARNING: $target/$name already points to $existing — overwriting (two packages claim '$name')." >&2-  fi-  ln -sfn "$PWD/$rel" "$target/$name"-  chmod +x "$PWD/$rel" 2>/dev/null || true-  echo "Linked $target/$name -> $PWD/$rel"-}-link_skill() {  # <slug> [relative-path, default skills/<slug>]-  local slug="$1"-  [ -n "$slug" ] || { echo "ERROR: link_skill: empty slug — refusing." >&2; return 1; }-  local rel="${2:-skills/$slug}" target="$HOME/.claude/skills" dest-  dest="$target/$slug"; mkdir -p "$target"-  [ -e "$PWD/$rel" ] || { echo "ERROR: link_skill: source '$PWD/$rel' missing — refusing (dest untouched)." >&2; return 1; }-  # A NON-symlink real dir (e.g. from another installer) squatting the slug would make ln nest-  # inside it as <slug>/<slug>; replace it instead.-  [ -e "$dest" ] && [ ! -L "$dest" ] && { echo "WARNING: '$slug' was a real dir — replacing with symlink." >&2; rm -rf "$dest"; }-  ln -sfn "$PWD/$rel" "$dest"-  echo "Linked $dest -> $PWD/$rel"-}+# adompkg shell helpers: adompkg-link-bin / adompkg-link-skill (ln -sfn ...).+if ! command -v adompkg >/dev/null 2>&1; then+  echo "[adom-desktop] FATAL: adompkg not on PATH — install via 'adompkg install adom-desktop'." >&2+  exit 1+fi+# shellcheck disable=SC1090+source "$(adompkg sh-helpers)"  OS="$(uname -s | tr '[:upper:]' '[:lower:]')" case "$OS" in@@ -49,7 +33,8 @@ case "$OS" in       exit 1     fi     chmod +x "$CLI"-    link_bin adom-desktop "$CLI"          # ~/.local/bin/adom-desktop -> $PWD/dist/linux/adom-desktop+    # Symlink ~/.local/bin/adom-desktop -> $PWD/dist/linux/adom-desktop.+    adompkg-link-bin adom-desktop "$CLI"     case ":$PATH:" in       *":$HOME/.local/bin:"*) ;;       *) echo "[adom-desktop] NOTE: $HOME/.local/bin is not on PATH — add it to your shell rc." ;;@@ -69,11 +54,14 @@ case "$OS" in esac  # Claude skill bundle — symlink each skills/<slug>/ into ~/.claude/skills/<slug>.+# Slugs staged at publish time: adom-desktop, adom-desktop-pup, adom-desktop-kicad,+# adom-desktop-fusion, adom-desktop-direct-api, adom-desktop-installer,+# adom-desktop-discovery. if [ -d "skills" ]; then   for d in skills/*/; do     [ -f "$d/SKILL.md" ] || continue     slug="$(basename "$d")"-    link_skill "$slug" "skills/$slug"+    adompkg-link-skill "$slug" "skills/$slug"   done fi 
package.json+1−1
@@ -1,6 +1,6 @@ {
   "slug": "adom-desktop",
-  "version": "1.9.41",
+  "version": "1.9.51",
   "type": "app",
   "hero": { "path": "docs/hero.png" },
   "description": "Laptop bridge: file transfer, screenshots, notifications, KiCad + Fusion 360 control, real-Chrome (Puppeteer) automation, and Hydrogen Desktop proxy. One install gives Claude every desktop verb it needs.",
page.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-desktop",-  "version": "1.9.42",+  "version": "1.9.51",   "type": "app",   "description": "Laptop bridge: file transfer, screenshots, notifications, KiCad + Fusion 360 control, real-Chrome (Puppeteer) automation, and Hydrogen Desktop proxy. One install gives Claude every desktop verb it needs.",   "keywords": [
skills/adom-desktop/SKILL.md+1−1
@@ -485,7 +485,7 @@ Bridges are AD's plugins (kicad, puppeteer, fusion360 ship bundled; others insta | `bridge_uninstall` | Remove a bridge (`{"name":"…"}`). Bundled ones revert to the bundled copy; third-party ones are fully removed. | | `bridge_pause` / `bridge_resume` | Flip a routing flag so a bridge's verbs fail-fast with `bridge_paused` (or resume). Does NOT kill the process. | -**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-author` skill.+**Naming convention for published bridges (3rd-party authors, read this):** when you publish a bridge to the Adom wiki, its **page title / catalog descriptive name MUST start with `Adom Desktop - `** (spaced hyphen) — e.g. `Adom Desktop - Altium Bridge`, matching the bundled bridges (`Adom Desktop - Puppeteer Bridge`, `Adom Desktop - KiCad Bridge`). This keeps every AD bridge grouped with consistent names in app-index pages instead of scattering as bare slugs. It applies to the **wiki/catalog title only** — NOT `bridge.json` `displayName` (the in-app chip label, which stays tool-descriptive like `Altium Designer`) or `name` (the lowercase slug). Full authoring walkthrough: the `adom-desktop-bridge-sdk` skill (the `adom-desktop-bridges` wiki page) + its fill-in-the-blanks templates.  **Typical "am I on the latest bridges?" flow:** ```bash
version.json+2−11
@@ -1,14 +1,5 @@ {
   "manifest_version": 1,
   "version": "1.9.51",
-  "released_at": "2026-06-30T14:59:56Z",
-  "note": "Windows auto-updater manifest. Linux CLI + skills ship via the adompkg tarball (adom-wiki pkg install adom/adom-desktop) - not in this manifest.",
-  "windows": {
-    "installer_url": "https://wiki.adom.inc/download/adom/adom-desktop/1.9.51/Adom%20Desktop_1.9.51_x64-setup.exe",
-    "installer_filename": "Adom Desktop_1.9.51_x64-setup.exe",
-    "installer_sha256": "3187e3d91d1213169f3a52bf4ebb6301f420b3fdb6c2e20f22520207ca550ba0",
-    "installer_size": 12032888
-  },
-  "changelog_url": "https://wiki.adom.inc/adom/adom-desktop",
-  "minimum_required": "1.3.30"
-}
+  "note": "Pkg manifest. NO cli block \u2014 a cli.linux_x86_64 without binary_url breaks the Windows updater (CliBinaryInfo.binary_url is required). The Linux CLI ships bundled in this tarball at dist/linux/adom-desktop."
+}\ No newline at end of file