[PR #767] [CLOSED] fix(native): preserve app bundle executable filename whitespace #2228

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/767
Author: @rudycelekli
Created: 10/6/2026
Status: ❌ Closed

Base: main ← Head: fix/rea-app-executable-whitespace-20261006


📝 Commits (1)

  • ef466bb fix(native): preserve app bundle executable filename whitespace

📊 Changes

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

View changed files

📝 src/application/BinaryTargetResolver.ts (+3 -2)
📝 tests/boundary/filesystem/binaryTarget.test.ts (+54 -0)

📄 Description

Summary

Preserve the actual CFBundleExecutable value in XML and binary app plists. XML string whitespace is part of the declared filename. Native plutil -n removes its added raw-output newline while preserving the binary plist value. Existing executable-name and bundle containment checks remain intact.

Native reproduction and verification

Signed DCO head ef466bb5cde8c6d6c95196592de65ec0937592fc on current 4.1.0 release main 9622b4b4cf0b2eb92305afd52fd67e932d57c753. Fresh authored-feedback and all-open file inventories have no actionable feedback or changed-file overlap for this patch; unrelated hosted cancellation is tracked in its owning lane.

  • Actual Clang builds benign Mach-O program files. XML and native-plutil-converted binary app plists declare the existing filename App; native plutil independently preserves that value.
  • Before: public compiled inspect-macho fails to resolve both surrounding-space program filenames; ordinary App controls pass for both plist forms.
  • After: four XML/binary ordinary/spaced bundle observations through the compiled CLI and a separate real stdio MCP subprocess exactly match direct native inspection of their actual program files.
  • Focused baseline: 4 failures, 13 controls pass. Final existing binary target module: 17 pass, including actual macOS plutil binary conversions, leading/trailing spaces and trailing tab.
  • npm run check: all 5 tasks pass, 125 existing warnings and zero errors; none concern the changed files. check:fast, build:cached, SSH signature verification, DCO and diff checks pass. All evidence rerun on the final release base with reused compatible pinned dependencies.

No schema, setup or distribution change. This verifies native macOS file resolution and inspection; no Hopper, Ghidra, IDA, Windows, GUI or target execution claim. Hosted checks remain separate.

AI-assisted implementation and independent source review. Fixes #765.


🔄 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/767 **Author:** [@rudycelekli](https://github.com/rudycelekli) **Created:** 10/6/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `fix/rea-app-executable-whitespace-20261006` --- ### 📝 Commits (1) - [`ef466bb`](https://github.com/morluto/rea/commit/ef466bb5cde8c6d6c95196592de65ec0937592fc) fix(native): preserve app bundle executable filename whitespace ### 📊 Changes **2 files changed** (+57 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `src/application/BinaryTargetResolver.ts` (+3 -2) 📝 `tests/boundary/filesystem/binaryTarget.test.ts` (+54 -0) </details> ### 📄 Description ## Summary Preserve the actual CFBundleExecutable value in XML and binary app plists. XML string whitespace is part of the declared filename. Native plutil `-n` removes its added raw-output newline while preserving the binary plist value. Existing executable-name and bundle containment checks remain intact. ## Native reproduction and verification Signed DCO head `ef466bb5cde8c6d6c95196592de65ec0937592fc` on current 4.1.0 release main `9622b4b4cf0b2eb92305afd52fd67e932d57c753`. Fresh authored-feedback and all-open file inventories have no actionable feedback or changed-file overlap for this patch; unrelated hosted cancellation is tracked in its owning lane. - Actual Clang builds benign Mach-O program files. XML and native-plutil-converted binary app plists declare the existing filename ` App `; native plutil independently preserves that value. - Before: public compiled inspect-macho fails to resolve both surrounding-space program filenames; ordinary `App` controls pass for both plist forms. - After: four XML/binary ordinary/spaced bundle observations through the compiled CLI and a separate real stdio MCP subprocess exactly match direct native inspection of their actual program files. - Focused baseline: 4 failures, 13 controls pass. Final existing binary target module: 17 pass, including actual macOS plutil binary conversions, leading/trailing spaces and trailing tab. - `npm run check`: all 5 tasks pass, 125 existing warnings and zero errors; none concern the changed files. `check:fast`, `build:cached`, SSH signature verification, DCO and diff checks pass. All evidence rerun on the final release base with reused compatible pinned dependencies. No schema, setup or distribution change. This verifies native macOS file resolution and inspection; no Hopper, Ghidra, IDA, Windows, GUI or target execution claim. Hosted checks remain separate. AI-assisted implementation and independent source review. Fixes #765. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:15:58 +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#2228
No description provided.