[PR #3972] [CLOSED] fix(apple): preserve exact Interface Builder plist integers #5975

Closed
opened 2026-10-31 01:10:52 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3972
Author: @xu91102
Created: 10/15/2026
Status: ❌ Closed

Base: main ← Head: codex/interface-builder-plist-integers


📝 Commits (2)

  • 2db05f4 fix(apple): preserve exact Interface Builder plist integers
  • c3c3466 fix(apple): reconcile plist budgets with shared depth limits

📊 Changes

6 files changed (+259 additions, -9 deletions)

View changed files

📝 docs/native-investigation.md (+10 -0)
📝 src/artifacts/apple/InterfaceBuilderAnalysis.ts (+18 -1)
📝 src/artifacts/apple/InterfaceBuilderDecodeBudget.test.ts (+25 -0)
📝 src/artifacts/apple/InterfaceBuilderDecodeBudget.ts (+26 -7)
📝 src/domain/apple/interfaceBuilderGraph.ts (+33 -1)
➕ tests/acceptance/applications/interfaceBuilderPlistNumbers.test.ts (+147 -0)

📄 Description

Summary

Fixes #3876.

Main has adopted the exact Interface Builder plist integer fix in 2202e3f, including Co-authored-by: hhang <169027046+xu91102@users.noreply.github.com> and references to this PR and #3876. The original PR is still open and has not been merged. Source and ancestry checks against captured main ca7ee018b25db6074ab1cb31398af2e82d5a7c29 confirm that the production change and all original regression coverage are present; no independent contribution remains to synchronize. This is a static adoption check, not a new current-main runtime test result.

The original defect rounded XML or binary keyed .nib attribute 9007199254740993 to 9007199254740992 while reporting complete decoding. The shared metadata and graph owners now use the existing exact representation { "$plist_type": "integer", "decimal": "9007199254740993" }. Safe numbers, uncertain or conflicting literals, references, graph/source identities, shared depth enforcement and reservation refund retain their controls. Main also retains its later independent hierarchy fix and options-object interface.

Contract and scope

The existing static archive decode boundary, CLI/MCP contracts, authority, schemas and dependencies are unchanged. The fix reads captured bytes; it does not execute a target, add a provider, instrumentation, mutation or installation effect. Numeric preflight reservation is a conservative estimate, not a V8 allocation measurement. No new platform or format support is claimed.

Evidence

  • Issue-first reproduction: https://github.com/morluto/rea/issues/3876#issuecomment-6185644193. Historical production CLI reproduction on original base 933f216 and pre-publication main ab45bf6 showed rounded XML/binary attributes while safe 42 controls remained correct.
  • PR head remains c3c3466bad1f45dc4cd0007f75d92270f3fd4924, the normal merge of previous head 2db05f4 and main 9d6651e. Historical final-byte validation: 23 files, 249 passed and one conditional ibtool skip; check six tasks plus guards passed (0 errors / 1,476 warnings); docs six tasks and five conformance tests passed; discovery 1,348 files exactly once; independent Standards/Spec review passed.
  • The same final-byte validation included eight actual CLI invocations and four actual stdio MCP sessions on immutable unsafe/safe XML/binary inputs, with complete normalized CLI/MCP agreement. These are retained historical results, not new runs on the adoption commit. SDK close does not establish OS process-family quiescence.
  • Static independent adoption review found the production repair and all original tests covered on main, including the byte-identical six-case precision acceptance file. It did not run main's tests or CI. The branch is left unchanged rather than introducing an empty integration commit.

Current CI and review

CI run 38758814169, attempt 2 succeeded for exact head c3c3466. All 30 jobs are final: 14 succeeded, 16 conditionally skipped. Complete raw logs were read and the synthetic checkout's direct PR-head parent verified. Portable 15,603 passed / 139 skipped aggregates source plus five shards; it is not another execution. The precision CLI regression (6 passed), decode-budget suite (11 passed), static/build/docs gates and Linux x64 package baseline executed successfully. Windows controls were cross-built on Ubuntu; Windows execution and real Apple artifact E2E were skipped for this run. This CI checks its recorded synthetic base 6ae59f3, not later main.

Greptile returned 5/5 on c3c3466, without an actionable defect; it did not run tests or verify live adoption. This is not formal human approval. Previous-head 2db05f4 Codex summaries reported failure and finding flags, but complete public reviews, inline comments, threads, checks and comment history contain no concrete finding or error cause. The cause remains unknown; a current-head Codex result is not established. No unavailable finding is claimed resolved.

Local Windows/Linux hosts, native engines and installed Electron were not exercised. Conditional skips are not executed passes. No performance, token-cost or containment improvement is claimed. CI, local review, remote review, human readiness and merging remain separate.

Author readiness

Human owner: @xu91102

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • Maintainer integration review and required checks are complete.

🔄 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/3972 **Author:** [@xu91102](https://github.com/xu91102) **Created:** 10/15/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `codex/interface-builder-plist-integers` --- ### 📝 Commits (2) - [`2db05f4`](https://github.com/morluto/rea/commit/2db05f4befc5710475eae4e3643475a636a179bc) fix(apple): preserve exact Interface Builder plist integers - [`c3c3466`](https://github.com/morluto/rea/commit/c3c3466bad1f45dc4cd0007f75d92270f3fd4924) fix(apple): reconcile plist budgets with shared depth limits ### 📊 Changes **6 files changed** (+259 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `docs/native-investigation.md` (+10 -0) 📝 `src/artifacts/apple/InterfaceBuilderAnalysis.ts` (+18 -1) 📝 `src/artifacts/apple/InterfaceBuilderDecodeBudget.test.ts` (+25 -0) 📝 `src/artifacts/apple/InterfaceBuilderDecodeBudget.ts` (+26 -7) 📝 `src/domain/apple/interfaceBuilderGraph.ts` (+33 -1) ➕ `tests/acceptance/applications/interfaceBuilderPlistNumbers.test.ts` (+147 -0) </details> ### 📄 Description ## Summary Fixes #3876. Main has adopted the exact Interface Builder plist integer fix in [2202e3f](https://github.com/morluto/rea/commit/2202e3f0ba556d40cc6e598df1ecbdf1eda56c13), including `Co-authored-by: hhang <169027046+xu91102@users.noreply.github.com>` and references to this PR and #3876. The original PR is still open and has not been merged. Source and ancestry checks against captured main `ca7ee018b25db6074ab1cb31398af2e82d5a7c29` confirm that the production change and all original regression coverage are present; no independent contribution remains to synchronize. This is a static adoption check, not a new current-main runtime test result. The original defect rounded XML or binary keyed `.nib` attribute `9007199254740993` to `9007199254740992` while reporting complete decoding. The shared metadata and graph owners now use the existing exact representation `{ "$plist_type": "integer", "decimal": "9007199254740993" }`. Safe numbers, uncertain or conflicting literals, references, graph/source identities, shared depth enforcement and reservation refund retain their controls. Main also retains its later independent hierarchy fix and options-object interface. ## Contract and scope The existing static archive decode boundary, CLI/MCP contracts, authority, schemas and dependencies are unchanged. The fix reads captured bytes; it does not execute a target, add a provider, instrumentation, mutation or installation effect. Numeric preflight reservation is a conservative estimate, not a V8 allocation measurement. No new platform or format support is claimed. ## Evidence - Issue-first reproduction: https://github.com/morluto/rea/issues/3876#issuecomment-6185644193. Historical production CLI reproduction on original base `933f216` and pre-publication main `ab45bf6` showed rounded XML/binary attributes while safe `42` controls remained correct. - PR head remains `c3c3466bad1f45dc4cd0007f75d92270f3fd4924`, the normal merge of previous head `2db05f4` and main `9d6651e`. Historical final-byte validation: 23 files, 249 passed and one conditional `ibtool` skip; check six tasks plus guards passed (0 errors / 1,476 warnings); docs six tasks and five conformance tests passed; discovery 1,348 files exactly once; independent Standards/Spec review passed. - The same final-byte validation included eight actual CLI invocations and four actual stdio MCP sessions on immutable unsafe/safe XML/binary inputs, with complete normalized CLI/MCP agreement. These are retained historical results, not new runs on the adoption commit. SDK close does not establish OS process-family quiescence. - Static independent adoption review found the production repair and all original tests covered on main, including the byte-identical six-case precision acceptance file. It did not run main's tests or CI. The branch is left unchanged rather than introducing an empty integration commit. ## Current CI and review [CI run 38758814169, attempt 2](https://github.com/morluto/rea/actions/runs/38758814169/attempts/2) succeeded for exact head `c3c3466`. All 30 jobs are final: 14 succeeded, 16 conditionally skipped. Complete raw logs were read and the synthetic checkout's direct PR-head parent verified. Portable 15,603 passed / 139 skipped aggregates source plus five shards; it is not another execution. The precision CLI regression (6 passed), decode-budget suite (11 passed), static/build/docs gates and Linux x64 package baseline executed successfully. Windows controls were cross-built on Ubuntu; Windows execution and real Apple artifact E2E were skipped for this run. This CI checks its recorded synthetic base `6ae59f3`, not later main. Greptile returned 5/5 on `c3c3466`, without an actionable defect; it did not run tests or verify live adoption. This is not formal human approval. Previous-head `2db05f4` Codex summaries reported failure and finding flags, but complete public reviews, inline comments, threads, checks and comment history contain no concrete finding or error cause. The cause remains unknown; a current-head Codex result is not established. No unavailable finding is claimed resolved. Local Windows/Linux hosts, native engines and installed Electron were not exercised. Conditional skips are not executed passes. No performance, token-cost or containment improvement is claimed. CI, local review, remote review, human readiness and merging remain separate. ## Author readiness Human owner: @xu91102 - [ ] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [ ] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [ ] I declare this PR ready for initial maintainer review. ## Before merge - [ ] Maintainer integration review and required checks are complete. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:10:52 +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#5975
No description provided.