[PR #1550] [MERGED] test(ghidra): preserve Node heap options in adapter verification #2966

Closed
opened 2026-10-17 21:12:21 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1550
Author: @N0zoM1z0
Created: 10/10/2026
Status: ✅ Merged
Merged: 10/10/2026
Merged by: @N0zoM1z0

Base: main ← Head: fix/ghidra-verifier-node-resource-options


📝 Commits (1)

  • faba5d9 test(ghidra): preserve Node heap options in adapter verification

📊 Changes

1 file changed (+3 additions, -0 deletions)

View changed files

📝 scripts/lib/native-value-e2e.mjs (+3 -0)

📄 Description

The native-value real-provider verifier constructs one explicit environment for standalone CLI and stdio MCP children. It discarded caller-selected NODE_OPTIONS, so Node heap budgets did not reach either adapter. With --max-old-space-size=384, an actual CLI child observed no option and a 4,496,293,888-byte heap limit.

Forward explicitly selected NODE_OPTIONS through the shared environment, preserving the existing whitelist. The same production child-boundary probe now observes the exact option and a 603,979,776-byte heap limit. No application contract or provider authority changes.

Closes #1548. Refs #1065.

Validation:

  • Production verifyNativeValueE2e entrypoint seam launches a real Node 24.18 child, records only the selected option and V8 heap limit, and stops before native inspection. The baseline/candidate regression passed; this is an environment-boundary check, not a real-provider claim.
  • A real Ghidra 12.1.4 / Java 21 full npm run verify:ghidra attempt confirmed the option on the adapter child. It was stopped by the existing 2304 MiB family-RSS guard at 2,418,675,712 bytes after 275.5 s. The full lane did not pass; forwarding the Node budget alone does not bound all concurrent verifier processes.
  • npm run check:fast passed with the pinned toolchain and serial resource-limited static runner.

Real-provider scope: no real Hopper verification performed; the full Ghidra attempt was resource-stopped as stated above. Separate real Linux Ghidra native collection checks passed, but do not establish this complete lane.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1550 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/10/2026 **Status:** ✅ Merged **Merged:** 10/10/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `fix/ghidra-verifier-node-resource-options` --- ### 📝 Commits (1) - [`faba5d9`](https://github.com/morluto/rea/commit/faba5d91a61f2437ccc87a50e6d17a4085ba70b1) test(ghidra): preserve Node heap options in adapter verification ### 📊 Changes **1 file changed** (+3 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `scripts/lib/native-value-e2e.mjs` (+3 -0) </details> ### 📄 Description The native-value real-provider verifier constructs one explicit environment for standalone CLI and stdio MCP children. It discarded caller-selected `NODE_OPTIONS`, so Node heap budgets did not reach either adapter. With `--max-old-space-size=384`, an actual CLI child observed no option and a 4,496,293,888-byte heap limit. Forward explicitly selected `NODE_OPTIONS` through the shared environment, preserving the existing whitelist. The same production child-boundary probe now observes the exact option and a 603,979,776-byte heap limit. No application contract or provider authority changes. Closes #1548. Refs #1065. Validation: - Production `verifyNativeValueE2e` entrypoint seam launches a real Node 24.18 child, records only the selected option and V8 heap limit, and stops before native inspection. The baseline/candidate regression passed; this is an environment-boundary check, not a real-provider claim. - A real Ghidra 12.1.4 / Java 21 full `npm run verify:ghidra` attempt confirmed the option on the adapter child. It was stopped by the existing 2304 MiB family-RSS guard at 2,418,675,712 bytes after 275.5 s. The full lane did **not** pass; forwarding the Node budget alone does not bound all concurrent verifier processes. - `npm run check:fast` passed with the pinned toolchain and serial resource-limited static runner. Real-provider scope: no real Hopper verification performed; the full Ghidra attempt was resource-stopped as stated above. Separate real Linux Ghidra native collection checks passed, but do not establish this complete lane. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:12:21 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2966
No description provided.