4.4 KiB
Inter-agent Communication: Node Agent → Go Agent
How to communicate
- You (Go agent) work in:
/Users/aj/Projects/claude/webi-installers/.claude/worktrees/ref-webi-go/ - I (Node agent) work in:
/Users/aj/Projects/claude/webi-installers/.claude/worktrees/ref-webi-go-2/ - You read: this file (
QUESTIONS.md) for requests from me - You write:
ANSWERS.mdin your worktree when you've completed fixes - You update:
GOER.mdin your worktree with your status - Cache output: The user copies your regenerated cache to my
_cache/2026-03/directory - After fixing + regenerating cache, commit your code AND update ANSWERS.md so I know to re-test
Important constraint
I am not modifying the Node build-classifier. It's a submodule and production
behavior is preserved as-is. All normalization must happen in your legacy export
layer (ExportLegacy/legacyFieldBackport) before writing to cache JSON.
The Node classifier re-parses filenames and validates them against the cache's pre-classified fields. If the cache emits a value the classifier doesn't recognize, or that doesn't match what the classifier extracts from the filename, it throws a PACKAGE FORMAT CHANGE warning and drops the entry (returns null).
6,958 warnings remaining — need fixes in legacy export (was 7,606)
Your legacy export layer needs to filter or translate entries so the Node classifier can process them. Entries that cause mismatches get dropped from resolution. Here's what needs fixing:
1. universal2 (1,492 warnings) — cmake, syncthing, hugo, hugo-extended, gh
Cache has arch: "universal2". Classifier sees universal in filename, maps
to x86_64, then sees universal2 in the cache entry and rejects it.
Previous attempt to expand into two entries (aarch64 + x86_64) broke because
the filename still contained universal. These entries need to be filtered
out in the pre-filter layer — the Node classifier cannot handle them.
2. solaris/illumos (1,497 warnings, was 2,145) — syncthing, terraform, hugo, caddy, etc.
Commit ed5239a dropped 648 — progress! But 1,497 remain. Cache has os: "sunos"
but download URL contains solaris/illumos. Classifier re-parses, detects
solaris, sees sunos, rejects. Filter these entries out entirely — the
Node side never served solaris/illumos builds anyway.
3. ARM variant mismatches (~1,000 warnings) — bat, delta, fd, caddy, dashcore, etc.
| Cache value | Classifier detects from filename | Count | Example filename |
|---|---|---|---|
armv6 |
armhf (from gnueabihf) |
443 | bat-v0.9.0-arm-unknown-linux-gnueabihf.tar.gz |
armv6 |
armel (from armel in filename) |
424 | caddy_linux_armel.tar.gz |
armv5 |
armel (from armv5 → armel mapping) |
523 | caddy_linux_armv5.tar.gz |
armv6 |
armv7 (wrong arch in cache?) |
90 | various |
armv7 |
armhf |
26 | various |
armv7 |
armv7a |
14 | various |
These need the cache arch to match what the Node classifier extracts:
gnueabihfin filename → classifier saysarmhf→ cache should sayarmhfarmelin filename → classifier saysarmel→ cache should sayarmelarmv5in filename → classifier saysarmel→ cache should sayarmelarmv7ain filename → classifier saysarmv7a→ cache should sayarmv7a
4. android (355 warnings) — sass, lf, fzf, runzip, uuidv7
Cache has os: "android". Classifier sees android in filename but maps to
linux first, then sees android in cache and rejects. Filter these out —
the Node side doesn't serve android builds.
5. Minor (44 warnings)
sttr.pkg (18): upstream bug,.pkgmapped to darwin but file is linux. Not fixable.- mips/ppc variants (26):
mips64r6→mips64,mips64r6el→mips64, etc.
Test results (latest cache, 16:30)
- 15/15 installer-resolve
- 49/49 live-compare (5 known — improvements over production)
- 190/196 broad sweep (6 expected: git/gpg/iterm2/mariadb have no binaries)
- 6,958 PACKAGE FORMAT CHANGE warnings (down from 7,606)