[PR #601] [MERGED] fix(native): inspect the selected universal Mach-O architecture #2100

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

📋 Pull Request Information

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

Base: main ← Head: campaign/rea-selected-native-slice-20261005


📝 Commits (2)

  • 7219eed fix(native): inspect the selected universal Mach-O architecture
  • 07e0764 chore: sync upstream CI fixture correction

📊 Changes

2 files changed (+70 additions, -2 deletions)

View changed files

📝 src/native/NativeMachoInspection.ts (+28 -2)
➕ tests/boundary/providers/native/nativeSelectedArchitecture.test.ts (+42 -0)

📄 Description

Summary

Keep universal Mach-O observations associated with the selected architecture.

No issue is linked: this is a newly reproduced correctness defect found while reviewing current upstream; the regression and affected production seam are included for review.

Problem and expected behavior

A selected arm64 target can receive the first x86_64 UUID and duplicated load commands from unsliced tool output. Slice-specific observations must belong to the selected target while architecture inventory retains both slices.

Change and scope

Pass the selected architecture to native slice-aware captures using each tool’s supported flag spelling.

Contract and boundary impact

  • Semantic owner and earliest changed stage: NativeMachoInspection native command capture arguments.
  • CLI and MCP/tool-catalog contract: existing operations and schemas remain compatible; UUID and segments describe arm64; architectures lists x86_64 and arm64.
  • Provider, bridge, target-format, or platform compatibility: Universal Mach-O inspection through the macOS native provider.
  • Evidence, artifact, provenance, or reconstruction contract: existing source identity and explicit incomplete/unsupported evidence remain preserved.
  • Process execution, authorization, cleanup, or containment impact: Uses existing allowlisted Xcode tools with explicit architecture arguments.
  • Generated metadata (docs/product-catalog.json), package, or installation impact: no metadata or dependency changes required.

Evidence and regression coverage

  • Tests added or updated: tests/boundary/providers/native/nativeSelectedArchitecture.test.ts.
  • Base reproduction or other evidence: Executed fixture regression for wrong UUID and duplicated __TEXT. Actual production NativeMacOSProvider inspected source-built clang/lipo arm64+x86_64 bytes: SHA-256 410dc4074d99b0ec9be0f97010325b5e2a2780c1c620cd5558acce298b1321e3, selected arm64 UUID F92D4775-9AF2-3497-8066-0ACC20F50B0F, one __TEXT and two inventory architectures. Tool identity/provenance and existing symbol/toolchain limitations are retained. Affected base is ebb4c45.
  • User-visible CLI/MCP output: UUID and segments describe arm64; architectures lists x86_64 and arm64.
  • Remaining proof gaps: Actual native verification ran on macOS arm64. Hopper/Ghidra and other macOS toolchain versions were not run.

For evidence-bearing changes:

  • Observed, derived, and inferred claims remain distinguishable.
  • Artifact identity, source provenance, and failed attempts remain preserved.
  • Unsupported, incomplete, unavailable, or uncertain outcomes remain visible.

Validation performed

Latest upstream sync: 07e0764c0f721cb095edb29f9f66b0b18304a5d1 incorporates current owner main, including the source-map fixture correction from #609. At this head, the original regression plus webSourceMapFetcher.test.ts, npm run check, and npm run check:fast pass. The full local suite was not repeated for this routine sync under the current contribution policy. The implementation checks below were performed before this upstream sync and do not imply a full-suite result for the new head.

  • npm run check:pr — passed
  • npm run check:ci — passed
  • npm run verify:package — passed
  • npm pack --dry-run — passed

Focused regression and reproduction commands ran with the outcomes described above.

Compatibility, safety, and release

  • Breaking changes or migration steps: none.
  • Real Hopper/Ghidra, browser, or OS coverage: Actual native verification ran on macOS arm64. Hopper/Ghidra and other macOS toolchain versions were not run.
  • Package or release metadata impact: no version, dependency, generated catalog or installation changes.
  • Security, privacy, process, or containment review: Uses existing allowlisted Xcode tools with explicit architecture arguments. Final diff contains source and regression tests; local fixtures, binaries, caches and logs are excluded.

Review checklist

  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

AI assistance was used to investigate, implement, and test this change. Commits are signed and include a DCO sign-off.


🔄 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/601 **Author:** [@rudycelekli](https://github.com/rudycelekli) **Created:** 10/5/2026 **Status:** ✅ Merged **Merged:** 10/5/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `campaign/rea-selected-native-slice-20261005` --- ### 📝 Commits (2) - [`7219eed`](https://github.com/morluto/rea/commit/7219eedeba4c5ed676f172d744121e475738b0bb) fix(native): inspect the selected universal Mach-O architecture - [`07e0764`](https://github.com/morluto/rea/commit/07e0764c0f721cb095edb29f9f66b0b18304a5d1) chore: sync upstream CI fixture correction ### 📊 Changes **2 files changed** (+70 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `src/native/NativeMachoInspection.ts` (+28 -2) ➕ `tests/boundary/providers/native/nativeSelectedArchitecture.test.ts` (+42 -0) </details> ### 📄 Description ## Summary Keep universal Mach-O observations associated with the selected architecture. No issue is linked: this is a newly reproduced correctness defect found while reviewing current upstream; the regression and affected production seam are included for review. ## Problem and expected behavior A selected arm64 target can receive the first x86_64 UUID and duplicated load commands from unsliced tool output. Slice-specific observations must belong to the selected target while architecture inventory retains both slices. ## Change and scope Pass the selected architecture to native slice-aware captures using each tool’s supported flag spelling. ## Contract and boundary impact - Semantic owner and earliest changed stage: NativeMachoInspection native command capture arguments. - CLI and MCP/tool-catalog contract: existing operations and schemas remain compatible; UUID and segments describe arm64; architectures lists x86_64 and arm64. - Provider, bridge, target-format, or platform compatibility: Universal Mach-O inspection through the macOS native provider. - Evidence, artifact, provenance, or reconstruction contract: existing source identity and explicit incomplete/unsupported evidence remain preserved. - Process execution, authorization, cleanup, or containment impact: Uses existing allowlisted Xcode tools with explicit architecture arguments. - Generated metadata (`docs/product-catalog.json`), package, or installation impact: no metadata or dependency changes required. ## Evidence and regression coverage - Tests added or updated: `tests/boundary/providers/native/nativeSelectedArchitecture.test.ts`. - Base reproduction or other evidence: Executed fixture regression for wrong UUID and duplicated __TEXT. Actual production NativeMacOSProvider inspected source-built clang/lipo arm64+x86_64 bytes: SHA-256 410dc4074d99b0ec9be0f97010325b5e2a2780c1c620cd5558acce298b1321e3, selected arm64 UUID F92D4775-9AF2-3497-8066-0ACC20F50B0F, one __TEXT and two inventory architectures. Tool identity/provenance and existing symbol/toolchain limitations are retained. Affected base is ebb4c45. - User-visible CLI/MCP output: UUID and segments describe arm64; architectures lists x86_64 and arm64. - Remaining proof gaps: Actual native verification ran on macOS arm64. Hopper/Ghidra and other macOS toolchain versions were not run. For evidence-bearing changes: - [x] Observed, derived, and inferred claims remain distinguishable. - [x] Artifact identity, source provenance, and failed attempts remain preserved. - [x] Unsupported, incomplete, unavailable, or uncertain outcomes remain visible. ## Validation performed Latest upstream sync: `07e0764c0f721cb095edb29f9f66b0b18304a5d1` incorporates current owner main, including the source-map fixture correction from #609. At this head, the original regression plus `webSourceMapFetcher.test.ts`, `npm run check`, and `npm run check:fast` pass. The full local suite was not repeated for this routine sync under the current contribution policy. The implementation checks below were performed before this upstream sync and do not imply a full-suite result for the new head. - `npm run check:pr` — passed - `npm run check:ci` — passed - `npm run verify:package` — passed - `npm pack --dry-run` — passed Focused regression and reproduction commands ran with the outcomes described above. ## Compatibility, safety, and release - Breaking changes or migration steps: none. - Real Hopper/Ghidra, browser, or OS coverage: Actual native verification ran on macOS arm64. Hopper/Ghidra and other macOS toolchain versions were not run. - Package or release metadata impact: no version, dependency, generated catalog or installation changes. - Security, privacy, process, or containment review: Uses existing allowlisted Xcode tools with explicit architecture arguments. Final diff contains source and regression tests; local fixtures, binaries, caches and logs are excluded. ## Review checklist - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. AI assistance was used to investigate, implement, and test this change. Commits are signed and include a DCO sign-off. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:14:17 +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#2100
No description provided.