Mouser Electronics Search
Public Made by Adomby adom
Mouser component search in your workspace — stock, quantity price breaks, datasheets and lifecycle. CLI verbs, a Hydrogen app, and a shared backend service.
name: adom-mouser-build description: Build and release a new version of adom-mouser. Use when the user says "release adom-mouser", "publish adom-mouser", "cut a new adom-mouser version", "bump adom-mouser", "ship adom-mouser", or "push adom-mouser to the wiki".
Release adom-mouser
A release syncs five places to the same version X.Y.Z:
VERSION, Cargo.toml, adom-mouser --version, wiki page metadata.version, running /health on the service container.
Steps
Bump — decide X.Y.Z (semver). Then:
echo "X.Y.Z" > VERSION sed -i 's/^version = .*/version = "X.Y.Z"/' Cargo.tomlLocal build + smoke test:
./build.sh adom-mouser --version # must print "adom-mouser X.Y.Z" adom-mouser health # backend reachable adom-mouser search "STM32F103RBT6" --limit 1 | jq '.components[0].mouser_pn'Ralph loop the UI (per app-creator): open in pup, drive a real search, screenshot, check
/consolefor errors.MOUSER_API=<backend> adom-mouser app --no-tab & adom-desktop browser_open_window '{"sessionId":"mouser","profile":"mouser","url":"http://127.0.0.1:8789"}' # drive a search, screenshot, verify 0 console errorsShow the user a screenshot and wait for explicit approval before publishing. The app-creator skill is hard about this.
Publish:
./publish.shRuns: git commit + tag
vX.Y.Z,git push origin main --tags,gh release create,adom-wiki asset upload(replaces the priordocker_binary),adom-wiki page update, and a final curl of the wiki binary to check--versionreturns X.Y.Z.Service container picks it up automatically —
service/watchdog.shruns every 2 min,git fetches origin/main, and rebuilds + restarts when HEAD moves. Verify within ~5 min:curl -s https://mouser-<slug>.adom.cloud/health | jq '.version' # → "X.Y.Z"Verify on a fresh user container (optional, but catches install regressions):
# on a fresh container: adompkg install --refresh # Tier A block fetches from the registry adom-mouser --version # → "adom-mouser X.Y.Z"
Pre-release checklist
-
VERSION,Cargo.toml,adom-mouser --version, wikimetadata.version,/healthall return X.Y.Z - Wiki page at
apps/adom-mouserrenders the newinstall_hintone-liner - User has seen a working screenshot of the webview
- No console errors via
GET /console -
adompkg install --refreshstill pulls + installs the new version (Tier A) - Brand audit — in-app icons are monochrome white. Run:
grep -nE 'fill="#00b8b0"|stroke="#00b8b0"|color: var\(--accent\)' src/app/*.html src/app/*.svg 2>/dev/nullExpected result: empty, OR only the text-color rules (.mouser-pn,<a>, focus-rings) on non-SVG elements. Any match on an<svg>or a.logo/.iconclass CSS rule is a bug — the brand skill requires monochrome white for in-app icons. Seeapp-creator§1b and §Checklist.
Notes
- Never skip the ralph loop — a green
cargo buildis not proof the UI works. Fonts, search, card rendering must be seen working. - Wiki upload is idempotent —
adom-wiki asset upload --asset-type docker_binaryreplaces the prior binary for this app automatically. - Version discipline is load-bearing —
refresh-wiki-catalog.mjsuses semver comparison to surface stale installs; inconsistent versions silently break that.
---
name: adom-mouser-build
description: Build and release a new version of adom-mouser. Use when the user says "release adom-mouser", "publish adom-mouser", "cut a new adom-mouser version", "bump adom-mouser", "ship adom-mouser", or "push adom-mouser to the wiki".
---
# Release adom-mouser
A release syncs five places to the same version X.Y.Z:
`VERSION`, `Cargo.toml`, `adom-mouser --version`, wiki page `metadata.version`, running `/health` on the service container.
## Steps
1. **Bump** — decide X.Y.Z (semver). Then:
```bash
echo "X.Y.Z" > VERSION
sed -i 's/^version = .*/version = "X.Y.Z"/' Cargo.toml
```
2. **Local build + smoke test**:
```bash
./build.sh
adom-mouser --version # must print "adom-mouser X.Y.Z"
adom-mouser health # backend reachable
adom-mouser search "STM32F103RBT6" --limit 1 | jq '.components[0].mouser_pn'
```
3. **Ralph loop the UI** (per app-creator): open in pup, drive a real search, screenshot, check `/console` for errors.
```bash
MOUSER_API=<backend> adom-mouser app --no-tab &
adom-desktop browser_open_window '{"sessionId":"mouser","profile":"mouser","url":"http://127.0.0.1:8789"}'
# drive a search, screenshot, verify 0 console errors
```
4. **Show the user a screenshot and wait for explicit approval** before publishing. The app-creator skill is hard about this.
5. **Publish**:
```bash
./publish.sh
```
Runs: git commit + tag `vX.Y.Z`, `git push origin main --tags`, `gh release create`, `adom-wiki asset upload` (replaces the prior `docker_binary`), `adom-wiki page update`, and a final curl of the wiki binary to check `--version` returns X.Y.Z.
6. **Service container picks it up automatically** — `service/watchdog.sh` runs every 2 min, `git fetch`es origin/main, and rebuilds + restarts when HEAD moves. Verify within ~5 min:
```bash
curl -s https://mouser-<slug>.adom.cloud/health | jq '.version' # → "X.Y.Z"
```
7. **Verify on a fresh user container** (optional, but catches install regressions):
```bash
# on a fresh container:
adompkg install --refresh # Tier A block fetches from the registry
adom-mouser --version # → "adom-mouser X.Y.Z"
```
## Pre-release checklist
- [ ] `VERSION`, `Cargo.toml`, `adom-mouser --version`, wiki `metadata.version`, `/health` all return X.Y.Z
- [ ] Wiki page at `apps/adom-mouser` renders the new `install_hint` one-liner
- [ ] User has seen a working screenshot of the webview
- [ ] No console errors via `GET /console`
- [ ] `adompkg install --refresh` still pulls + installs the new version (Tier A)
- [ ] **Brand audit — in-app icons are monochrome white.** Run:
```
grep -nE 'fill="#00b8b0"|stroke="#00b8b0"|color: var\(--accent\)' src/app/*.html src/app/*.svg 2>/dev/null
```
Expected result: empty, OR only the text-color rules (`.mouser-pn`,
`<a>`, focus-rings) on non-SVG elements. Any match on an `<svg>` or
a `.logo` / `.icon` class CSS rule is a bug — the brand skill
requires monochrome white for in-app icons. See
`app-creator` §1b and §Checklist.
## Notes
- **Never skip the ralph loop** — a green `cargo build` is not proof the UI works. Fonts, search, card rendering must be seen working.
- **Wiki upload is idempotent** — `adom-wiki asset upload --asset-type docker_binary` replaces the prior binary for this app automatically.
- **Version discipline is load-bearing** — `refresh-wiki-catalog.mjs` uses semver comparison to surface stale installs; inconsistent versions silently break that.