app
Chip Fetcher (cf)
Public Made by Adomby adom
Crawls the web on your behalf to gather everything about the chips you care about: datasheets, symbols, footprints, 3D models, stock and pricing, straight from the manufacturer first, into your EDA tool. Say "cf" to your AI.
← Commit history
Publish 1.4.2
6 files changed
+52−5
bin/adom-chip-fetcher⋯ 1 unchanged line ⋯
docs/img/dock-chip-fetcher.svg+1−1@@ -1 +1 @@-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#e6edf3" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="7" y="7" width="10" height="10" rx="1.5"/><path d="M9 7V4M12 7V4M15 7V4M9 20v-3M12 20v-3M15 20v-3M7 9H4M7 12H4M7 15H4M20 9h-3M20 12h-3M20 15h-3"/><circle cx="9.5" cy="9.5" r=".6" fill="#e6edf3" stroke="none"/></svg>+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M9.5 5.5 12 8l2.5-2.5"/><rect x="6" y="11" width="12" height="10" rx="1.5"/><path d="M6 14H3.5M6 18H3.5M18 14h2.5M18 18h2.5"/></svg>
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-chip-fetcher",- "version": "1.4.1",+ "version": "1.4.2", "type": "app", "description": "Crawls the web on your behalf to gather everything about the chips you care about: datasheets, symbols, footprints, 3D models, stock and pricing, straight from the manufacturer first, into your EDA tool. Say \"cf\" to your AI.", "dependencies": {
page.json+2−2@@ -1,6 +1,6 @@ { "slug": "adom-chip-fetcher",- "version": "1.4.1",+ "version": "1.4.2", "type": "app", "description": "Crawls the web on your behalf to gather everything about the chips you care about: datasheets, symbols, footprints, 3D models, stock and pricing, straight from the manufacturer first, into your EDA tool. Say \"cf\" to your AI.", "dependencies": {@@ -148,4 +148,4 @@ } ], "brief": "Crawls the web on your behalf to gather everything about the chips you care about: datasheets, symbols, footprints, 3D models, stock and pricing, straight from the manufacturer first, into your EDA tool. Say \"cf\" to your AI."-}+}
skills/adom-chip-fetcher-dock/SKILL.md+47@@ -120,3 +120,50 @@ On a box that has never had the CLI: add the card, click it, watch the console r install step (every sister tool lands), then the serve step print `http://127.0.0.1:8786/`, then the tab navigate to the dashboard with the Say it strip on top, the LED row populated, the Welcome card up, and the card's LED green within 15 s.++## Send to AI: the tag is the page slug++`POST /api/say-send` opens a NEW AI thread (never resumes one) named "Chip Fetcher, say it"+and tagged **`dock:adom-chip-fetcher`**, that is `dock:` plus the WIKI PAGE SLUG, per the+adom-ui-design 1.9.3 ruling. It is not the dock card id (`chip-fetcher`): the page slug+identifies the package, its issue tracker and its dockbar manifest and is unique, while card+ids are a dock-internal ordering key with no uniqueness guarantee. Do not "fix" this to the+card id.++The endpoint is currently **parked** (`SAY_SEND_PARKED` in `src/serve.rs`): it answers+`{ok:false, parked:true, why}` before any control-API call, because the fleet Send-to-AI+success path crashed the Hydrogen shell during a cold verify on 2026-08-24. The button stays+in the UI and falls back to copying the phrase with an error toast; un-parking is one flag+flip once the platform certifies the prompt path.++## A stale build must never outlive a package update++The dock's Hard Refresh Open updates the package and reopens the tab, but it does+NOT re-run the launch steps when the app is already in the running map, so nothing+asks the old process to stand down and the tab renders whatever is still on the+port. Caught live on 2026-08-24: `pkg update` had landed 1.4.1 while a 1.4.0+process still served 8786, so a build whose Send to AI was the parked crash path+stayed live.++Two defences, both in this app:++- `serve` is version-aware and retires an instance of a DIFFERENT version by exact+ argv (verified: a 1.4.2 binary retires a running 1.4.1 on the same port).+- The running server watches its own executable and hands the port over within a+ minute of a package update, after verifying the replacement answers `--version`.+ `/health` reports `installed_version` and `stale`, and the Dashboard LED turns+ amber with the version pair while the gap is open.++The trap that made the watch blind at first: a package update UNLINKS the old+binary and writes a new one at the same path, so a running process resolves+`/proc/self/exe` to `<path> (deleted)`. Reading that suffixed path always fails.+Strip the suffix before stat or exec.++## The icon is a line drawing++`webview.favicon` is `docs/img/dock-chip-fetcher.svg`: a chip body with a download+arrow, `fill="none"`, `stroke="currentColor"`, 24x24, stroke 1.8, round caps and+joins, no plate, no fills (adom-ui-design 1.10.0 `icons`). The same file is the+header mark and the dock card icon. Test at 16px on `#161b22` beside two other+Adom icons before shipping: the previous mark had twelve pin ticks that turned to+mush at tab size.
src/ui/assets/icons/chip.svg+1−1@@ -1 +1 @@-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#e6edf3" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="7" y="7" width="10" height="10" rx="1.5"/><path d="M9 7V4M12 7V4M15 7V4M9 20v-3M12 20v-3M15 20v-3M7 9H4M7 12H4M7 15H4M20 9h-3M20 12h-3M20 15h-3"/><circle cx="9.5" cy="9.5" r=".6" fill="#e6edf3" stroke="none"/></svg>+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M9.5 5.5 12 8l2.5-2.5"/><rect x="6" y="11" width="12" height="10" rx="1.5"/><path d="M6 14H3.5M6 18H3.5M18 14h2.5M18 18h2.5"/></svg>