* fix: guide pnpm dlx/pnpx users through skipped native install
`pnpm dlx gitnexus serve` (and `pnpx gitnexus`) crash with a raw
`ERR_DLOPEN_FAILED` stack trace because @ladybugdb/core's native addon
(lbugjs.node) is placed by a postinstall script, and dlx/pnpx run
ephemerally without executing lifecycle scripts.
The existing checkLbugNative() guard already catches the missing binary
for serve/mcp/analyze, but its guidance only mentioned bun and
--ignore-scripts. Extend the message to call out the common pnpm dlx /
pnpx case and the fix (`pnpm add -g gitnexus && pnpm approve-builds -g`,
or use npx/npm). Add a matching README troubleshooting section.
This does not make `pnpm dlx` itself work — that requires a runtime
fallback in @ladybugdb/core. It turns the crash into actionable guidance.
Refs #307
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix: add pnpm --allow-build dlx option to native-check guidance
Incorporates collaborator feedback (magyargergo): pnpm's security model
allows `dlx` to run build scripts when you pass `--allow-build` for each
native dep. Add this as the first/preferred pnpm-dlx path in the error
message, README troubleshooting section, and test assertion. Drop the
now-incorrect claim that `pnpm dlx` "cannot be made to work directly".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: address PR review on pnpm dlx native-load guidance
Replace removed pnpm approve-builds -g with add -g --allow-build flags,
qualify npm 11 npx caveats, use serve in examples, extend load-failure hints,
and assert --allow-build precedes dlx in tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(cli): detect missing LadybugDB native binary at startup with actionable guidance (#835)
Add checkLbugNative() pre-flight that verifies lbugjs.node exists before
any command transitively imports @ladybugdb/core. When missing (bun default
install, --ignore-scripts), prints repair instructions instead of crashing
with ERR_DLOPEN_FAILED. Also enhances `gitnexus doctor` to probe the
native binary status.
* fix(review): guard eval-server, un-guard status command
eval-server transitively loads @ladybugdb/core and needs the native
binary check. status only reads filesystem metadata and should remain
accessible when the binary is missing.
* fix(lint): use console.log instead of console.error in native check gate
The project eslint config only allows console.log.
* fix(cli): route native-check to stderr and validate binary loadability
Fixes two Codex adversarial review findings:
1. Native-check failure message now goes to process.stderr.write instead
of console.log, preventing MCP stdout protocol contamination.
2. checkLbugNative now attempts a controlled require() probe after the
existence check. Truncated, ABI-mismatched, or wrong-platform binaries
produce actionable guidance instead of passing through to crash at
process.dlopen.
---------
Co-authored-by: Test <test@example.com>