[PR #1863] [MERGED] fix(windows): bring the real Windows Ghidra verifiers up to date #4859

Closed
opened 2026-10-31 00:56:06 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

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

Base: main ← Head: fix/windows-verifiers-mutating-ops


📝 Commits (1)

  • f59f631 fix(windows): bring the real Windows Ghidra verifiers up to date

📊 Changes

2 files changed (+15 additions, -11 deletions)

View changed files

📝 scripts/verify-packaged-ghidra-windows.mjs (+8 -5)
📝 scripts/verify-real-ghidra-windows.mjs (+7 -6)

📄 Description

Summary

Fixes #1859. Two stale assertions made every real Windows Ghidra lane fail since #1635, #1419 and #1667, although the provider behaves correctly.

Problem and expected behavior

  • verify:ghidra:windows stopped at assertSession ("session commitment drifted": 27 reported capabilities, 29 expected), and verify:ghidra:windows:package failed with "Packaged verification omitted an admitted operation." The read-only Windows P0 bridge correctly omits the naming operations admitted in #1635.
  • verify:ghidra:windows:package then failed its caller-script collision check, which compares a sorted directory listing with a hand-written list that #1419 and #1667 left unsorted.

Change and scope

  • The three name !== "annotate_native_function" filters now use the existing GHIDRA_MUTATING_OPERATIONS set, so future mutating operations are excluded automatically.
  • The collision check compares against a sorted copy of scriptCollisions.

Provider code is unchanged.

Contract and boundary impact

  • Semantic owner and earliest changed stage: verification scripts only.
  • CLI and MCP/tool-catalog contract: none.
  • Provider, bridge, target-format, or platform compatibility: none; restores the Windows P0 verification lanes.
  • Evidence, artifact, provenance, or reconstruction contract: none.
  • Process execution, authorization, cleanup, or containment impact: none.
  • Generated metadata, package, or installation impact: none.

Evidence and regression coverage

  • Tests added or updated: none; the change is in the real-provider verifiers, which are the regression check.
  • Base reproduction or other evidence: at 0b4ce836, all four verify:ghidra:windows variants fail at assertSession, and verify:ghidra:windows:package fails at the operation coverage assertion and then at the collision check.
  • User-visible CLI/MCP output: none.
  • Remaining proof gaps: verified on one Windows host.

Validation performed

  • npm run verify:windows-native: passed.
  • npm run verify:ghidra:windows: passed (25 operations, cleanup complete).
  • npm run verify:ghidra:windows -- --x86: passed.
  • npm run verify:ghidra:windows -- --dll: passed.
  • npm run verify:ghidra:windows -- --x86 --dll: passed.
  • npm run verify:ghidra:windows:package: passed (168 s).
  • npm run verify:ghidra:windows:package -- --x86: passed (189 s).
  • npm run verify:ghidra:windows:package -- --dll: passed (50 s).
  • npm run verify:ghidra:windows:package -- --x86 --dll: passed (47 s).
  • npm run check:fast (typecheck and lint): passed.
  • npx oxfmt --check on both files: clean. npx oxlint: one pre-existing no-unsafe-finally warning, also present at the base revision.

The lanes ran at 0b4ce836; the branch is based on ed1519dd, whose newer commits do not touch these files.

Compatibility, safety, and release

No runtime change. Windows 11 Pro 26H2 x64, Node.js 22.22.3, Ghidra 12.1.4, Temurin JDK 21.0.12.1, non-elevated user; native addon built with npm run build:windows-native in WSL.


🔄 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/1863 **Author:** [@pablodiazjorge](https://github.com/pablodiazjorge) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/11/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/windows-verifiers-mutating-ops` --- ### 📝 Commits (1) - [`f59f631`](https://github.com/morluto/rea/commit/f59f631077f84c9e8ae247d123aaeccf1a742d85) fix(windows): bring the real Windows Ghidra verifiers up to date ### 📊 Changes **2 files changed** (+15 additions, -11 deletions) <details> <summary>View changed files</summary> 📝 `scripts/verify-packaged-ghidra-windows.mjs` (+8 -5) 📝 `scripts/verify-real-ghidra-windows.mjs` (+7 -6) </details> ### 📄 Description ## Summary Fixes #1859. Two stale assertions made every real Windows Ghidra lane fail since #1635, #1419 and #1667, although the provider behaves correctly. ## Problem and expected behavior - `verify:ghidra:windows` stopped at `assertSession` ("session commitment drifted": 27 reported capabilities, 29 expected), and `verify:ghidra:windows:package` failed with "Packaged verification omitted an admitted operation." The read-only Windows P0 bridge correctly omits the naming operations admitted in #1635. - `verify:ghidra:windows:package` then failed its caller-script collision check, which compares a sorted directory listing with a hand-written list that #1419 and #1667 left unsorted. ## Change and scope - The three `name !== "annotate_native_function"` filters now use the existing `GHIDRA_MUTATING_OPERATIONS` set, so future mutating operations are excluded automatically. - The collision check compares against a sorted copy of `scriptCollisions`. Provider code is unchanged. ## Contract and boundary impact - Semantic owner and earliest changed stage: verification scripts only. - CLI and MCP/tool-catalog contract: none. - Provider, bridge, target-format, or platform compatibility: none; restores the Windows P0 verification lanes. - Evidence, artifact, provenance, or reconstruction contract: none. - Process execution, authorization, cleanup, or containment impact: none. - Generated metadata, package, or installation impact: none. ## Evidence and regression coverage - Tests added or updated: none; the change is in the real-provider verifiers, which are the regression check. - Base reproduction or other evidence: at `0b4ce836`, all four `verify:ghidra:windows` variants fail at `assertSession`, and `verify:ghidra:windows:package` fails at the operation coverage assertion and then at the collision check. - User-visible CLI/MCP output: none. - Remaining proof gaps: verified on one Windows host. ## Validation performed - `npm run verify:windows-native`: passed. - `npm run verify:ghidra:windows`: passed (25 operations, cleanup complete). - `npm run verify:ghidra:windows -- --x86`: passed. - `npm run verify:ghidra:windows -- --dll`: passed. - `npm run verify:ghidra:windows -- --x86 --dll`: passed. - `npm run verify:ghidra:windows:package`: passed (168 s). - `npm run verify:ghidra:windows:package -- --x86`: passed (189 s). - `npm run verify:ghidra:windows:package -- --dll`: passed (50 s). - `npm run verify:ghidra:windows:package -- --x86 --dll`: passed (47 s). - `npm run check:fast` (typecheck and lint): passed. - `npx oxfmt --check` on both files: clean. `npx oxlint`: one pre-existing `no-unsafe-finally` warning, also present at the base revision. The lanes ran at `0b4ce836`; the branch is based on `ed1519dd`, whose newer commits do not touch these files. ## Compatibility, safety, and release No runtime change. Windows 11 Pro 26H2 x64, Node.js 22.22.3, Ghidra 12.1.4, Temurin JDK 21.0.12.1, non-elevated user; native addon built with `npm run build:windows-native` in WSL. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:56:06 +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#4859
No description provided.