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.
f0330b3
1mo ago
chip-fetcher (cf) thread handoff
Written 2026-08-24 by the adom-chipfetcher thread running in John's cloud container,
so the work can continue in an ah AI thread on AdomLapper (32 GB) instead. The
conversation history does not move; everything you need is here and in the page repo.
Where the truth lives
- Source of record: the wiki page repo
adom/adom-chip-fetcher. It is byte-identical to the working tree that produced 1.4.5. Clone it and you have everything:adom-wiki repo clone adom/adom-chip-fetcher --dir ~/project/chip-fetcher - Published package: 1.4.5. Every earlier 1.3.x/1.4.x is deprecated with a reason.
- The cloud container ALSO has a working tree at
/home/adom/project/chip-fetcherwith ~100 files changed and NOT committed to git (John has not asked for a commit; the GitHub remoteadom-inc/chip-fetcheris many commits behind). Nothing is lost: the wiki repo holds the same bytes. If John wants git history, commit from whichever tree he says.
Your identity and etiquette
- ai-thread name: adom-chipfetcher. Pass
--ai-thread "adom-chipfetcher"on everyadom-bridgecall andadom-chip-fetcherinvocation. - John works on AdomLapper. Never foreground, resize, or switch tabs on windows he is
using. Signal with
pup_alert_window(taskbar flash) and the taskbar progress bar. - The dashboard lives in a pup window (
sessionId adom-chip-fetcher-dashboard), opened and maximized ONCE byadom-chip-fetcher app, and also in the ah dock's own webview tab. - Show John results in pup and log them to shotlog; never just claim something is done.
What this app is
Chip Fetcher crawls the web on the user's behalf to gather everything about the chips they care about: datasheet, symbol, footprint, 3D model, stock and pricing, manufacturer site first. Users drive it by talking to their AI with the word cf, never by clicking. The dashboard is a dock-bar app whose main UI is the dock target.
State as of 1.4.5
Shipped today: the Hydrogen Dock Bar contract (always-fresh launch, /api/status LEDs with
CORS, serve --print-url self-backgrounding and version-aware), the settings-layout modal,
indeterminate taskbar progress for lookups, vendor logins on pup's OS-keychain vault
(chip-fetcher stores no passwords), the transport migrated to adom-bridge + pup_*,
doctor --fix with self-healing for broken sister packages, sample parts seeded from the
wiki, a guided demo (play/pause/prev/next/exit, pre-baked adom-tts clips, ab captions), the
full-width newbie panel, a visible line-drawing favicon, and a self-watch that hands the
port over when a package update replaces the binary.
Open items, in priority order
- UN-PARK Send to AI (in progress, do this first). John ruled 2026-08-24: "we are
re-enabling the send to ai." Flip
SAY_SEND_PARKEDinsrc/serve.rs(currentlytrue, which short-circuits/api/say-sendbefore any control-API call). Then follow the un-park checklist in thesay-stripskill: re-read the tag literal (must bedock:adom-chip-fetcher, the PAGE SLUG, not the card id), keep the failure path (error toast + copy fallback), and verify from a CLEANadom-wiki pkg installrather than the source tree. - Required fast-follow: a shell-version guard. Published Hydrogen 1.0.141 predates the
crash fix, so a pre-fix shell must get an honest refusal plus the copy fallback rather
than a crash. UNSOLVED DETAIL: the control API exposes no semver.
GET /buildinfoandGET /healthreturn onlybuild_sha,build_epoch,build_local,build_dirty(measured on John's box: sha 356050b4, built Aug 24 6:08 AM, dirty). Decide with the ah build thread (project-c3 owns the dock queue) whether to gate onbuild_epoch >= <fix epoch>, on a capability probe, or on a version field they add. Do not invent a semver comparison against a field that does not exist. - Newbie panel 1.12.0 two-column table spec. adom-ui-design changed the layout again (demo button left, prompts as a quiet TABLE right, not pills). project-c3 said to WAIT for their broadcast before matching pup pixel for pixel, because pup is the reference and John is reviewing it.
- project-c3 will re-run the cf dock card in ah and inject an ah-native screenshot of
1.4.5 into the
dock-dashboardsshotlog channel. Nothing needed from us. - Git commit of the ~100 changed files, if John wants history. Not yet approved.
Upstream bugs I filed (each is issue #1 on its page)
adom/adom-step,adom/adom-chipsmith: install.sh never installs the binary it ships.adom/adom-concur: install.sh sudo-installs to /usr/local, fails in containers.adom/adom-sfconvert: ships no binary at all.doctor --fixself-heals the first three from the package payload; sfconvert cannot be healed locally and was hand-copied onto John's box as a stopgap.
Hard-won traps, do not rediscover these
- A test that cannot fail is worse than no test. I shipped an invisible favicon because
my check substituted
currentColorfor white before rendering. Render a favicon AS ITS OWN DOCUMENT at 16px on#161b22and count pixels: 0 bright / 62 dark was the bug, 88 bright / 0 dark is the fix. currentColoris black in a favicon. Hardcode#e6edf3in any SVG loaded as its own document; keepcurrentColoronly for SVG inlined in markup.- After a package update,
/proc/<pid>/exeresolves to<path> (deleted)while/proc/<pid>/cmdlinestays clean. Strip the suffix before any path use. - The stale-server bug was a race, not bad matching: the dock updates the package while
the launch steps run, so
servecan be the OLD binary reusing itself. Three defences are in place (handoff when not the installed build, port-ownership retirement, self-watch). /tmpis shared across concurrent AI threads in this container. Write payloads to your own scratchpad; another thread's file nearly made me drive the wrong app.pgrep -f 'adom-chip-fetcher serve'matches your own shell and kills it. Anchor the pattern (^/path/to/adom-chip-fetcher serve).- Never trust a version stamp alone on incremental builds; check a code marker.
Fast orientation commands
adom-chip-fetcher doctor # every component with a Hint per problem
adom-chip-fetcher --version # should match the published package
curl -s 127.0.0.1:8786/health # {ok, app, version, installed_version, stale}
adom-chip-fetcher ui state # what the page is showing
adom-chip-fetcher ui console # the page's console ring buffer
adom-wiki issue list adom/adom-chip-fetcher
# chip-fetcher (cf) thread handoff
Written 2026-08-24 by the `adom-chipfetcher` thread running in John's cloud container,
so the work can continue in an ah AI thread on AdomLapper (32 GB) instead. The
conversation history does not move; everything you need is here and in the page repo.
## Where the truth lives
- **Source of record: the wiki page repo** `adom/adom-chip-fetcher`. It is byte-identical
to the working tree that produced 1.4.5. Clone it and you have everything:
`adom-wiki repo clone adom/adom-chip-fetcher --dir ~/project/chip-fetcher`
- **Published package**: 1.4.5. Every earlier 1.3.x/1.4.x is deprecated with a reason.
- **The cloud container ALSO has a working tree** at `/home/adom/project/chip-fetcher`
with ~100 files changed and NOT committed to git (John has not asked for a commit; the
GitHub remote `adom-inc/chip-fetcher` is many commits behind). Nothing is lost: the wiki
repo holds the same bytes. If John wants git history, commit from whichever tree he says.
## Your identity and etiquette
- ai-thread name: **adom-chipfetcher**. Pass `--ai-thread "adom-chipfetcher"` on every
`adom-bridge` call and `adom-chip-fetcher` invocation.
- John works on **AdomLapper**. Never foreground, resize, or switch tabs on windows he is
using. Signal with `pup_alert_window` (taskbar flash) and the taskbar progress bar.
- The dashboard lives in a pup window (`sessionId adom-chip-fetcher-dashboard`), opened and
maximized ONCE by `adom-chip-fetcher app`, and also in the ah dock's own webview tab.
- Show John results in pup and log them to shotlog; never just claim something is done.
## What this app is
Chip Fetcher crawls the web on the user's behalf to gather everything about the chips they
care about: datasheet, symbol, footprint, 3D model, stock and pricing, manufacturer site
first. Users drive it by talking to their AI with the word **cf**, never by clicking. The
dashboard is a dock-bar app whose main UI is the dock target.
## State as of 1.4.5
Shipped today: the Hydrogen Dock Bar contract (always-fresh launch, `/api/status` LEDs with
CORS, `serve --print-url` self-backgrounding and version-aware), the settings-layout modal,
indeterminate taskbar progress for lookups, vendor logins on pup's OS-keychain vault
(chip-fetcher stores no passwords), the transport migrated to `adom-bridge` + `pup_*`,
`doctor --fix` with self-healing for broken sister packages, sample parts seeded from the
wiki, a guided demo (play/pause/prev/next/exit, pre-baked adom-tts clips, ab captions), the
full-width newbie panel, a visible line-drawing favicon, and a self-watch that hands the
port over when a package update replaces the binary.
## Open items, in priority order
1. **UN-PARK Send to AI (in progress, do this first).** John ruled 2026-08-24: "we are
re-enabling the send to ai." Flip `SAY_SEND_PARKED` in `src/serve.rs` (currently `true`,
which short-circuits `/api/say-send` before any control-API call). Then follow the
un-park checklist in the `say-strip` skill: re-read the tag literal (must be
`dock:adom-chip-fetcher`, the PAGE SLUG, not the card id), keep the failure path
(error toast + copy fallback), and verify from a CLEAN `adom-wiki pkg install` rather
than the source tree.
2. **Required fast-follow: a shell-version guard.** Published Hydrogen 1.0.141 predates the
crash fix, so a pre-fix shell must get an honest refusal plus the copy fallback rather
than a crash. UNSOLVED DETAIL: the control API exposes no semver. `GET /buildinfo` and
`GET /health` return only `build_sha`, `build_epoch`, `build_local`, `build_dirty`
(measured on John's box: sha 356050b4, built Aug 24 6:08 AM, dirty). Decide with the ah
build thread (project-c3 owns the dock queue) whether to gate on `build_epoch >= <fix
epoch>`, on a capability probe, or on a version field they add. Do not invent a semver
comparison against a field that does not exist.
3. **Newbie panel 1.12.0 two-column table spec.** adom-ui-design changed the layout again
(demo button left, prompts as a quiet TABLE right, not pills). project-c3 said to WAIT
for their broadcast before matching pup pixel for pixel, because pup is the reference
and John is reviewing it.
4. **project-c3 will re-run the cf dock card in ah** and inject an ah-native screenshot of
1.4.5 into the `dock-dashboards` shotlog channel. Nothing needed from us.
5. **Git commit** of the ~100 changed files, if John wants history. Not yet approved.
## Upstream bugs I filed (each is issue #1 on its page)
- `adom/adom-step`, `adom/adom-chipsmith`: install.sh never installs the binary it ships.
- `adom/adom-concur`: install.sh sudo-installs to /usr/local, fails in containers.
- `adom/adom-sfconvert`: ships no binary at all.
`doctor --fix` self-heals the first three from the package payload; sfconvert cannot be
healed locally and was hand-copied onto John's box as a stopgap.
## Hard-won traps, do not rediscover these
- **A test that cannot fail is worse than no test.** I shipped an invisible favicon because
my check substituted `currentColor` for white before rendering. Render a favicon AS ITS
OWN DOCUMENT at 16px on `#161b22` and count pixels: 0 bright / 62 dark was the bug,
88 bright / 0 dark is the fix.
- **`currentColor` is black in a favicon.** Hardcode `#e6edf3` in any SVG loaded as its own
document; keep `currentColor` only for SVG inlined in markup.
- **After a package update**, `/proc/<pid>/exe` resolves to `<path> (deleted)` while
`/proc/<pid>/cmdline` stays clean. Strip the suffix before any path use.
- **The stale-server bug was a race**, not bad matching: the dock updates the package while
the launch steps run, so `serve` can be the OLD binary reusing itself. Three defences are
in place (handoff when not the installed build, port-ownership retirement, self-watch).
- **`/tmp` is shared across concurrent AI threads** in this container. Write payloads to
your own scratchpad; another thread's file nearly made me drive the wrong app.
- **`pgrep -f 'adom-chip-fetcher serve'` matches your own shell** and kills it. Anchor the
pattern (`^/path/to/adom-chip-fetcher serve`).
- **Never trust a version stamp alone** on incremental builds; check a code marker.
## Fast orientation commands
```bash
adom-chip-fetcher doctor # every component with a Hint per problem
adom-chip-fetcher --version # should match the published package
curl -s 127.0.0.1:8786/health # {ok, app, version, installed_version, stale}
adom-chip-fetcher ui state # what the page is showing
adom-chip-fetcher ui console # the page's console ring buffer
adom-wiki issue list adom/adom-chip-fetcher
```