Files
vim-ale/QUESTIONS.md
AJ ONeal ecf8b59b3f docs: update warning counts after ed5239a — 6,958 remain (was 7,606)
solaris/illumos dropped by 648. universal2, ARM variants, android unchanged.
2026-03-11 16:33:28 -06:00

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.md in your worktree when you've completed fixes
  • You update: GOER.md in 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:

  • gnueabihf in filename → classifier says armhf → cache should say armhf
  • armel in filename → classifier says armel → cache should say armel
  • armv5 in filename → classifier says armel → cache should say armel
  • armv7a in filename → classifier says armv7a → cache should say armv7a

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, .pkg mapped to darwin but file is linux. Not fixable.
  • mips/ppc variants (26): mips64r6mips64, mips64r6elmips64, 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)

Previously resolved

  • Hugo macOS arm64 — resolves v0.157.0 .pkg
  • go armv6l — cache emits armv6 (commit 9a391ad)
  • solaris/illumos → sunos (commit aec6869)
  • armel → armv6, winx64 → windows (commit aec6869)
  • Issues 1-3, 5: WATERFALL, .git shadowing, man pages, musl libc
  • ANYOS question: Specific-OS-first is correct