hermes-agent/apps/desktop/scripts
ethernet 5d691374c3 fix(desktop): recognize little-endian Mach-O magic in native binary classifier
classifyNativeBinary only checked big-endian Mach-O/Fat magic bytes
(feedfacf, feedface, cafebabe). Real Darwin .node files from node-pty
prebuilds are stored little-endian on disk (cffaedfe = MH_CIGAM_64),
so every Darwin prebuild classified as null, and validateStagedBinaries
threw a platform mismatch on macOS — breaking npm run check for every
macOS contributor. CI didn't catch it because runners are Linux (ELF
path was correct) and tests only planted big-endian fake headers.

Add recognition for all six Mach-O/Fat byte orderings:
- MH_CIGAM (cefaedfe) — LE 32-bit
- MH_CIGAM_64 (cffaedfe) — LE 64-bit [the one real prebuilds use]
- FAT_CIGAM (bebafeca) — LE universal

Update makeFakeNode to write LE CIGAM_64 bytes for the darwin fixture
(matching real on-disk format) and add regression tests for all new
magic forms.
2026-07-13 17:22:17 -04:00
..
.gitignore
…
after-pack.mjs
…
assert-dist-built.mjs cleanup(desktop): remove 'use strict' in ts & mjs 2026-07-13 17:22:17 -04:00
assert-dist-built.test.mjs test(desktop): run scripts/ tests in vitest 2026-07-13 17:22:17 -04:00
assert-root-install.mjs
…
before-build.mjs
…
before-pack.mjs cleanup(desktop): remove 'use strict' in ts & mjs 2026-07-13 17:22:17 -04:00
before-pack.test.mjs test(desktop): run scripts/ tests in vitest 2026-07-13 17:22:17 -04:00
bundle-electron-main.mjs
…
click-session.mjs
…
dev-no-hmr.mjs
…
diag-jump.mjs
…
diag-scroll-reset.mjs
…
eval.mjs
…
gen-share-codes.ts
…
leak-typing.mjs
…
measure-jump.mjs
…
measure-latency.mjs
…
measure-real-stream.mjs
…
measure-submit.mjs
…
measure-synthetic-stream.mjs
…
notarize-artifact.mjs
…
notarize.mjs
…
patch-electron-builder-mac-binary.mjs
…
probe-renderer.mjs
…
probe-thread.mjs
…
profile-long-stream.mjs
…
profile-real-stream.mjs
…
profile-synth-stream.mjs
…
profile-typing-lag.md
…
profile-typing.mjs
…
rebuild-native.mjs
…
reload-renderer.mjs
…
reload.mjs
…
run-electron-builder.mjs
…
set-exe-identity.mjs
…
stage-native-deps.mjs fix(desktop): recognize little-endian Mach-O magic in native binary classifier 2026-07-13 17:22:17 -04:00
stage-native-deps.test.mjs fix(desktop): recognize little-endian Mach-O magic in native binary classifier 2026-07-13 17:22:17 -04:00
test-desktop.mjs
…
utils.mjs
…
write-build-stamp.mjs cleanup(desktop): remove 'use strict' in ts & mjs 2026-07-13 17:22:17 -04:00