[PR #2970] [CLOSED] fix(apple): preflight OpenStep plist value nesting #5528

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

📋 Pull Request Information

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

Base: main ← Head: candidate/rea-next10-openstep-20261013


📝 Commits (2)

  • 84fa8d4 fix(apple): preflight OpenStep plist value nesting
  • 51c1a97 fix(apple): preserve OpenStep syntax failure classification

📊 Changes

4 files changed (+319 additions, -2 deletions)

View changed files

➕ src/application/AppBundleOpenStepDepth.test.ts (+60 -0)
📝 src/domain/propertyListKeys.test.ts (+54 -1)
📝 src/domain/propertyListKeys.ts (+131 -1)
📝 tests/boundary/filesystem/keyedArchiveXmlNesting.test.ts (+74 -0)

📄 Description

The OpenStep nesting preflight could continue after an impossible closer, scalar, or separator and misclassify a malformed document as a depth limit if its suffix contained deeply nested containers. Track the next lexical token expected by each active container and yield at the first impossible token, leaving the pinned plist decoder responsible for exact syntax diagnostics and values. Preserve compound keys, optional dictionary semicolons, array trailing commas, first-root behavior and valid depth protection.

AI-assisted correction responding to review of #2970. Verification: all eight real filesystem-reader regressions fail against the previous owner and pass fixed with the exact plist 5.0.0 syntax message and format classification; a valid deep control remains a limit. Two completed-container regressions also require the exact named limit for deeply nested array siblings and dictionary values after compound keys; both fail against the discarded helper-ordering refinement. All 63 focused tests, test discovery, and npm run check pass. Fresh compiled public CLI replay verifies all eight format failures and the valid limit control, including their distinct outer error codes. Separator transitions and closer admission have separate private helpers. The refined tree also passes 112 pinned-decoder comparisons, six depth controls and all eight malformed-input comparisons; scoped lint has zero diagnostics. Repository checks still report existing warnings; no human approval or full-suite claim is made.


🔄 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/2970 **Author:** [@rudycelekli](https://github.com/rudycelekli) **Created:** 10/13/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `candidate/rea-next10-openstep-20261013` --- ### 📝 Commits (2) - [`84fa8d4`](https://github.com/morluto/rea/commit/84fa8d40e4b1e41df410f55283b902482fe971d9) fix(apple): preflight OpenStep plist value nesting - [`51c1a97`](https://github.com/morluto/rea/commit/51c1a975a9a2fbb42c45065bf68db9d201d0e756) fix(apple): preserve OpenStep syntax failure classification ### 📊 Changes **4 files changed** (+319 additions, -2 deletions) <details> <summary>View changed files</summary> ➕ `src/application/AppBundleOpenStepDepth.test.ts` (+60 -0) 📝 `src/domain/propertyListKeys.test.ts` (+54 -1) 📝 `src/domain/propertyListKeys.ts` (+131 -1) 📝 `tests/boundary/filesystem/keyedArchiveXmlNesting.test.ts` (+74 -0) </details> ### 📄 Description The OpenStep nesting preflight could continue after an impossible closer, scalar, or separator and misclassify a malformed document as a depth limit if its suffix contained deeply nested containers. Track the next lexical token expected by each active container and yield at the first impossible token, leaving the pinned plist decoder responsible for exact syntax diagnostics and values. Preserve compound keys, optional dictionary semicolons, array trailing commas, first-root behavior and valid depth protection. AI-assisted correction responding to review of #2970. Verification: all eight real filesystem-reader regressions fail against the previous owner and pass fixed with the exact plist 5.0.0 syntax message and format classification; a valid deep control remains a limit. Two completed-container regressions also require the exact named limit for deeply nested array siblings and dictionary values after compound keys; both fail against the discarded helper-ordering refinement. All 63 focused tests, test discovery, and npm run check pass. Fresh compiled public CLI replay verifies all eight format failures and the valid limit control, including their distinct outer error codes. Separator transitions and closer admission have separate private helpers. The refined tree also passes 112 pinned-decoder comparisons, six depth controls and all eight malformed-input comparisons; scoped lint has zero diagnostics. Repository checks still report existing warnings; no human approval or full-suite claim is made. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:07:20 +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#5528
No description provided.