Skip to content

ci(bindings): fix the macOS universal2 lipo paths - #7

Merged
hmziqrs merged 2 commits into
freeoxide:masterfrom
hmziqagent:fix/ci-macos-lipo
Nov 9, 2026
Merged

hmziqrs merged 2 commits into
freeoxide:masterfrom
hmziqagent:fix/ci-macos-lipo

Conversation

@hmziqagent

Copy link
Copy Markdown
Contributor

PR #6 merged before this fix landed on the branch, so master's first bindings-macos run failed (lipo: can't open input file: target/release/libllm_proxy_node.dylib) and the one commit master is missing is this one.

napi build --platform routes the host arm64 slice through target/<triple>/release like any explicit --target build, so the universal2 lipo step looked for the host slice at target/release/ and found nothing. Both slices now build with explicit triples and lipo reads two deterministic paths, independent of runner architecture.

Note: on PR #6's run, the Python half of the job passed on real macOS (universal2 wheel installed into a venv, pytest green) — only the Node lipo path was wrong. This is the first CI-tested push of the fix (pushing to a merged branch fires no workflow).

napi build --platform routes the host slice through target/<triple>/release like any explicit --target build, so the universal2 lipo step looked for target/release/libllm_proxy_node.dylib and found nothing. Both slices now come from explicit triples read at deterministic paths, independent of runner architecture.
An explicit --target napi build skips generating binding.js/binding.d.ts, so the runner's index.js found no loader to require. npm run build (plain --platform) generates them, and run 1's failure proves --platform puts the host dylib under target/aarch64-apple-darwin/release/ rather than target/release/, which is where lipo now reads it.
@hmziqrs
hmziqrs merged commit 7b1a54a into freeoxide:master Nov 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants