[PR #7356] [CLOSED] fix(xml): reject ambiguous namespace attribute identities #7828

Closed
opened 2026-11-05 01:47:58 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/7356
Author: @ShuaixinHuang
Created: 10/27/2026
Status: ❌ Closed

Base: main ← Head: codex/fix-xml-expanded-attribute-identity


📝 Commits (10+)

  • ab28cb6 fix(ci): retire unused internal analysis declarations
  • 0ffb204 fix(xml): reject ambiguous namespace attribute identities
  • a9a9e00 test: use an admitted app bundle for provider routing
  • ada7314 test: keep bundle routing coverage outside oversized group
  • 4a2307b fix(ci): align regression fixtures with current admission contracts
  • efea93d test: use an admitted app bundle for provider routing
  • 6f54458 test: keep bundle routing coverage outside oversized group
  • f3d1616 fix(ci): align regression fixtures with current admission contracts
  • 2c6d0f6 merge: resolve current upstream CI fixture overlap
  • bdfb5da test: bind extraction close fixtures to their ZIP digest

📊 Changes

11 files changed (+74 additions, -12 deletions)

View changed files

📝 src/android/JadxAnalysis.ts (+1 -1)
📝 src/android/JadxSession.ts (+3 -4)
📝 src/browser/history/SazMetadata.test.ts (+10 -0)
📝 src/domain/xmlDocument.test.ts (+31 -0)
📝 src/domain/xmlDocument.ts (+1 -0)
📝 src/native/android/AndroidJniLibrary.ts (+1 -1)
📝 tests/acceptance/setup/hermesClientSetup.test.ts (+1 -1)
📝 tests/boundary/android/androidJniLibraries.test.ts (+1 -1)
📝 tests/boundary/android/androidManifestComponents.test.ts (+23 -0)
📝 tests/support/analysis-efficiency/android-jni.mjs (+1 -2)
📝 tests/support/analysis-efficiency/packet-entry.mjs (+1 -2)

📄 Description

Superseded by #7785 at the author’s request. The replacement retains only the original XML namespace feature on refreshed upstream. Original discussion and evidence are preserved.

Latest-head CI completed successfully

Verified at 2026-10-27T14:45:23.7546855Z, head c587807f34a731610bb2fbfccf2270dd530a2eba: complete CI workflow 40520393304 and its CI required gate both finished success. This is evidence for this exact current head. Title and human author-declaration checks were also successful before this evidence-only body update; their fresh metadata checks may run again. Earlier queued/failed stages below are retained as historical records, not the current result. Local validation limitations remain disclosed. CI success does not establish maintainer approval or permission to merge.

Earlier shared Hermes preview correction (2026-10-27)

Current head c587807f34a731610bb2fbfccf2270dd530a2eba corrects the two Hermes CLI preview cases actually observed in this branch's preceding CI. Upstream ddb53376 resolves existing directory ancestors even when the final directory is absent; the fixture now expects native sticky routing for the symlinked default root and external routing for an escaping prefix in both missing/existing states. It retains both iterations, exact config/skill targets, unchanged profile bytes, no backups and no dry-run writes. The correction is exactly one expectation line relative to pinned main 79d2fc05.

Because these cases were newly introduced upstream, changing their block required a normal merge of that same fixed upstream rather than repeated patch-only conflict resolution. Normal hooks also applied behavior-equivalent import, spread and regex formatting. These normalizations were inspected; no new provider capability, resource budget, retry, skip or runtime policy is introduced.

Shared validation executed once on the actual PCK-plus-main producer: the complete Hermes CLI acceptance file passed 22 tests / 1 existing Windows named-user skip, including both formerly failing cases and all five nested-home cases. The combined acceptance/boundary command was 52 passed / 5 existing skips / 3 failed; the remaining boundary failures compare POSIX path spellings on Windows. The complete combined command is not green and was not repeated on every branch. All normal pre-push typecheck/lint tasks passed 2/2 for this branch. Latest-head CI 40520393304 has been created and must complete independently; earlier green runs are historical.

Earlier conflict alignment (2026-10-27)

Head 623b06c2cb23496d7ff57277a27790cac41a411e resolves exactly five conflicting test/fixture files against fixed main 79d2fc05. It adopts the maintainer-reviewed structured error and launcher assertions, preserves unknown ownership, exact configuration paths and unchanged bytes, and retains nonempty remediation checks. The Windows tshark fixture adds the missing raw-DNS branch while retaining flat packets, version and invalid-argument handling. No feature/production file or dependency is changed by this follow-up; no skips, retries or timeouts are added. Read-only merge-tree exited 0, and GitHub reported no merge conflicts after the normal push.

Shared Windows verification was executed once on the actual PCK-plus-main merge b2a3c27f: 47 passed / 11 existing skips / 4 failed across four complete focused files. Browser cleanup 8/8 and MCP limitations 4/4 passed. The remaining client-registration cases use POSIX launcher paths (3 failures) and an unavailable Windows symlink privilege (1 failure); the complete command is not green. The standalone PCK command had previously recorded 45 passed / 11 existing skips / 6 failed; the actual merged producer resolved the two cleanup-structure mismatches. The Windows stub probe passed version, 3 flat packets, the 49-byte raw DNS packet and invalid-argument exit 2; this is fixture validation, not a real tshark engine claim. These shared results were not rerun on every branch.

Normal push hooks passed typecheck/lint 2/2 on each branch. Latest-head CI 40516839258 has been created and still needs its own full result; earlier green heads do not qualify this head. Any older host-dependent DMG/CLI timeout failure is not claimed fixed by these assertion-only conflict alignments.

Earlier Android contract precondition (2026-10-27)

Earlier head 7f0de5c022b20130ac696bfc0c9512595fa6fa12 adds 4 lines in one test file. The MCP contract loop now explicitly requests detail: "complete" only when that contract declares the field, matching the test's requirement for inline Evidence instead of the JNI contract's summary default. Named-operation, raw Evidence, Ajv schema and cleanup assertions remain intact. This follow-up changes no feature implementation or other tests. Normal pre-commit formatting/lint and pre-push typecheck/lint 2/2 passed (30.541 s), with hooks enabled.

Shared isolated evidence used actual failed CI merge 423db9e plus the patch: the existing JNI owner MCP proof passed 1 selected / 4 unselected (35.66 s), and typecheck passed (17.157 s). This is shared diagnostic evidence, not a complete POSIX test-file run or current-branch CI pass. This head's own main CI 40501913112 is in_progress (checked 2026-10-27 12:14:30 UTC); its required conclusion is pending. Original feature and engine-validation limitations below retain their scope.

Earlier upstream test compatibility (2026-10-27)

Historical head 2ac251b3130b459e323fc111dfebf28e50b530c5 aligned only the two native artifact tests and their shared fixture with merged upstream #7479 (740c0f56, fixed main 570abe95). This commit leaves the existing feature/production source and all other tests unchanged. All three Git blobs match that upstream revision; merge-tree against it is clean. Normal pre-commit formatting/lint and pre-push typecheck/lint 2/2 passed (34.437 s), with hooks enabled.

The 24/24 loader/verifier check was shared validation executed on #7062 at a2161f78; it was not this branch's full verification. Historical main CI 40496297286 subsequently failed the Android MCP inline-Evidence contract case corrected above. The earlier green head and this native-fixture head are superseded. The dated checks and limitations below remain evidence for their named revisions.

Summary

Reject namespace-invalid XML before the DOM projection can silently discard an attribute. For example, Android a:name=".First" b:name=".Last" with both prefixes bound to the Android URI previously produced a complete inventory containing only the last component name. SAZ metadata similarly lost the first attribute.

Enable the existing Saxes parser's namespace validation at the shared XML boundary. Namespace-invalid documents are rejected before Android or SAZ projection. Valid alternate prefixes and distinct expanded attribute names are preserved.

Scope and compatibility

The existing XML owner serves Android manifests, SAZ metadata, XML plists, Apktool output and Ghidra language catalogs. No provider, operation, schema, dependency, target execution or write authority is added. Previously tolerated namespace-invalid documents, including undeclared prefixes, now receive the existing malformed-XML outcome; no component or metadata facts are invented from them. DTD and line-ending policies are unchanged.

The attribute-identity rule is specified in Namespaces in XML 1.0 §6.3.

Feature verification (before CI synchronization)

Windows, Node 24.22.1 / npm 11.16.0; based on 0ddde829.

  • Before the production change: the three regression files had 7 expected failures / 140 passes, including both Android attribute orders and actual SAZ projection.
  • After: xmlDocument.test.ts, SazMetadata.test.ts, androidManifestComponents.test.ts: 148 passed.
  • Related XML plist scalar/data/text, Apktool decode-output and Ghidra catalog-encoding files: 217 passed.
  • npm run check:fast, git diff --check, normal pre-commit/pre-push hooks: passed.

These are source/production-boundary tests with synthetic XML and fixture catalogs. No real Jadx, Apktool or Ghidra engine, compiled executable CLI/MCP session, Linux/macOS run or complete local gate was exercised. Current-head hosted CI status is recorded above. The separate shared CI repairs are described below.

Earlier CI repair evidence (2026-10-27)

Earlier repair head: 4a0cb9dc3168d077200c4fbf1952d7e9c5159020. The last full upstream synchronization is pinned 0d1d6e85. The shared CI repair wave changes regression fixtures only; production source and the original feature behavior were not expanded. Launcher ownership, malformed-input refusals, native admission, source identities, cleanup retries and sensitive-value controls remain enforced.

Native artifact and client fixture checks used the actual CI merge b2011fd3 and its matching three-task build. The results and unavailable coverage are separated below:

  • Windows loader PE fixture: 8 failed / 14 passed before; 22 passed after declaring the optional-header length and supplying its bytes. Admission and digest refusal assertions are unchanged.
  • Dependency-free native verifier fixtures: 2 failed before; 2 passed after copying the newly imported PE parser dependency into both isolated source and packed layouts.
  • Cleanup retry ownership: 2 failed / 4 passed before; 6 passed after, checking the exact retained root path rather than the old placeholder.
  • Client environment preservation: 6 failed / 57 passed before; 63 passed after giving positive refresh fixtures a proven-owned launcher.
  • Eight other client files: the identical Windows command changed from 50 failed / 115 passed / 10 skipped to 19 failed / 146 passed / 10 skipped, with no newly failing test names. The remaining failures were already present in the baseline, including Windows symlink permissions, POSIX path expectations and platform-specific launcher expectations; the complete command is not green. A final platform-correct Kimi launcher was then verified separately across lifecycle, profile, transport and timeout groups: 23 passed / 8 unselected. The two existing POSIX-only alias cases remain unexecuted locally.
  • The controlled Apple cleanup helper passed protocol syntax and production response validation. Its guarded compiler stub rejected 6 negative argument cases and accepted the valid write invocation. The actual Darwin process CLI failure is not locally verified and requires new hosted CI.

The earlier retained-root capture correction was checked with 2 selected producer controls passing; the actual process-capture file's 24 Windows PTY cases were unavailable locally. No actual Linux/macOS run is claimed by these fixture checks.

On that historical branch head, normal pre-push typecheck/lint passed 2/2 tasks; hooks were kept enabled. The focused results above describe their executed fixture/build revisions, not a complete run on every branch.

All 13 shared repaired test files are byte-identical to root head df7536df after porting. Read-only merge analysis against fixed upstream 5b292b63 was clean after the minimal overlap corrections. No full main merge was performed for this wave; merge analysis does not establish CI success.

Earlier shared validation remains historical: Apple projection 39/39 and canonical CLI examples 9/9; SAZ CLI/MCP 18 passed / 1 skip after its required build; five public regression files 63 passed / 4 skips at 6e0c0c9f; four Electron files 34 passed / 3 skips; Java files 35 passed / 5 skips; provider/overview/workflow files 15 passed / 1 skip. The borrowed #7336 and #7335 fixture commits retain their authored history. A two-line Electron fixture overlap was aligned with upstream without importing unrelated main changes.

Historical snapshot at 2026-10-27 13:32 CST: the then-head hosted CI 40455293394 is queued; its CI required gate has not completed. No failed code job was reported at this query; that is not a completed CI pass. Previous-head results do not establish current-head success. Linux-only extraction-close, FIFO/socket, fake-gh and process/alias coverage still require hosted CI. Human readiness remains a separate declaration below.

The XML branch drops only the overlapping cleanup in the old Android attribute helper (1e289b6d), retaining shared namespace admission and every XML regression. The three XML files passed 148/148 after this correction. Read-only merge analysis against pinned 21b6ea7f was clean; the upstream 33-file Android feature was not imported.

Earlier shared test repairs (2026-10-27)

Historical PR head: bd19f1e0b49560df47dcdc832d71201b89afbc6a. Two follow-ups port the same 9 shared test files as root 57136e6f, without changing this PR's feature implementation: the first preserves exact DNS-label output, the trusted Ghidra ps prerequisite, admitted Mach-O bundle input and precise unknown-launcher diagnostics; the second preserves owned Int64/deadline registration fixtures, both cleanup failure records, authentication-before-commit observation and the native fixture's actual digest. Refusal, no-overwrite, identity and cleanup controls remain enforced. Normal pre-commit hooks and final pre-push typecheck/lint 2/2 tasks passed on this PR head.

Shared verification: root head 57136e6f21b68849d2f949622151ff1eaafcdb3e completed main CI 40469048903 and independent real-packet/tshark CI 40469048779 successfully. This validates that root revision; it is not a completed CI result for this PR. The separate focused 9 passed / 116 unselected result was executed only on failed CI merge b0d706a748d808a0d766e6244b3d11288d64640a and its matching three-task build, rather than on every feature branch.

Historical hosted validation at 2026-10-27 08:30:54 UTC for now-superseded head bd19f1e0b49560df47dcdc832d71201b89afbc6a: main CI 40471140323, including all eight test shards and the CI required gate, and independent real-packet verification 40471140064 all completed successfully. That revision's title check 40471456666 and PR readiness commit status were also successful. GitHub reported mergeable=true and mergeable_state=clean. These are this PR's own results for superseded head bd19f1e0, distinct from the shared root evidence above. All original feature checks and Windows, engine and IDA limitations above retain their recorded scope; earlier non-green local commands are not reclassified as passing.

Author readiness

Human owner: @ShuaixinHuang

  • 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.

The human owner explicitly confirmed that review of this published PR was complete in this chat on 2026-10-27. The prior ownership and responsibility confirmation remains in force. This records initial readiness for the published change; subsequent validation remains documented above.


🔄 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/7356 **Author:** [@ShuaixinHuang](https://github.com/ShuaixinHuang) **Created:** 10/27/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `codex/fix-xml-expanded-attribute-identity` --- ### 📝 Commits (10+) - [`ab28cb6`](https://github.com/morluto/rea/commit/ab28cb6c9651a631174774e1dc9577515914f723) fix(ci): retire unused internal analysis declarations - [`0ffb204`](https://github.com/morluto/rea/commit/0ffb204f4742193c1870892721c7e60d17a5b32b) fix(xml): reject ambiguous namespace attribute identities - [`a9a9e00`](https://github.com/morluto/rea/commit/a9a9e00dd69c2d4dbd3a7359ed2884f0b383521f) test: use an admitted app bundle for provider routing - [`ada7314`](https://github.com/morluto/rea/commit/ada73141f53a204a350daa4403efdc74ff461135) test: keep bundle routing coverage outside oversized group - [`4a2307b`](https://github.com/morluto/rea/commit/4a2307b7466009b663f4ab370aae2f562377d53f) fix(ci): align regression fixtures with current admission contracts - [`efea93d`](https://github.com/morluto/rea/commit/efea93dec5d14aa0e86e2771b39be4ad0670e1e7) test: use an admitted app bundle for provider routing - [`6f54458`](https://github.com/morluto/rea/commit/6f544585d4f7f21e3831efc44513b8b044bd721c) test: keep bundle routing coverage outside oversized group - [`f3d1616`](https://github.com/morluto/rea/commit/f3d16164318a476b8b86dc615e51c08fad5bd495) fix(ci): align regression fixtures with current admission contracts - [`2c6d0f6`](https://github.com/morluto/rea/commit/2c6d0f63d382372cc5d03c9dd6f5e42bd4189e49) merge: resolve current upstream CI fixture overlap - [`bdfb5da`](https://github.com/morluto/rea/commit/bdfb5da4a1a39db30be73eeb914658545cda0a45) test: bind extraction close fixtures to their ZIP digest ### 📊 Changes **11 files changed** (+74 additions, -12 deletions) <details> <summary>View changed files</summary> 📝 `src/android/JadxAnalysis.ts` (+1 -1) 📝 `src/android/JadxSession.ts` (+3 -4) 📝 `src/browser/history/SazMetadata.test.ts` (+10 -0) 📝 `src/domain/xmlDocument.test.ts` (+31 -0) 📝 `src/domain/xmlDocument.ts` (+1 -0) 📝 `src/native/android/AndroidJniLibrary.ts` (+1 -1) 📝 `tests/acceptance/setup/hermesClientSetup.test.ts` (+1 -1) 📝 `tests/boundary/android/androidJniLibraries.test.ts` (+1 -1) 📝 `tests/boundary/android/androidManifestComponents.test.ts` (+23 -0) 📝 `tests/support/analysis-efficiency/android-jni.mjs` (+1 -2) 📝 `tests/support/analysis-efficiency/packet-entry.mjs` (+1 -2) </details> ### 📄 Description Superseded by #7785 at the author’s request. The replacement retains only the original XML namespace feature on refreshed upstream. Original discussion and evidence are preserved. ## Latest-head CI completed successfully Verified at **2026-10-27T14:45:23.7546855Z**, head `c587807f34a731610bb2fbfccf2270dd530a2eba`: [complete CI workflow 40520393304](https://github.com/morluto/rea/actions/runs/40520393304) and its [CI required gate](https://github.com/morluto/rea/actions/runs/40520393304/job/122254994447) both finished **success**. This is evidence for this exact current head. Title and human author-declaration checks were also successful before this evidence-only body update; their fresh metadata checks may run again. Earlier queued/failed stages below are retained as historical records, not the current result. Local validation limitations remain disclosed. CI success does not establish maintainer approval or permission to merge. ## Earlier shared Hermes preview correction (2026-10-27) Current head `c587807f34a731610bb2fbfccf2270dd530a2eba` corrects the two Hermes CLI preview cases actually observed in this branch's preceding CI. Upstream `ddb53376` resolves existing directory ancestors even when the final directory is absent; the fixture now expects native sticky routing for the symlinked default root and external routing for an escaping prefix in both missing/existing states. It retains both iterations, exact config/skill targets, unchanged profile bytes, no backups and no dry-run writes. The correction is exactly one expectation line relative to pinned main `79d2fc05`. Because these cases were newly introduced upstream, changing their block required a normal merge of that same fixed upstream rather than repeated patch-only conflict resolution. Normal hooks also applied behavior-equivalent import, spread and regex formatting. These normalizations were inspected; no new provider capability, resource budget, retry, skip or runtime policy is introduced. Shared validation executed once on the actual PCK-plus-main producer: the complete Hermes CLI acceptance file passed **22 tests / 1 existing Windows named-user skip**, including both formerly failing cases and all five nested-home cases. The combined acceptance/boundary command was **52 passed / 5 existing skips / 3 failed**; the remaining boundary failures compare POSIX path spellings on Windows. The complete combined command is **not green** and was not repeated on every branch. All normal pre-push typecheck/lint tasks passed **2/2** for this branch. [Latest-head CI 40520393304](https://github.com/morluto/rea/actions/runs/40520393304) has been created and must complete independently; earlier green runs are historical. ## Earlier conflict alignment (2026-10-27) Head `623b06c2cb23496d7ff57277a27790cac41a411e` resolves exactly five conflicting test/fixture files against fixed main `79d2fc05`. It adopts the maintainer-reviewed structured error and launcher assertions, preserves unknown ownership, exact configuration paths and unchanged bytes, and retains nonempty remediation checks. The Windows tshark fixture adds the missing raw-DNS branch while retaining flat packets, version and invalid-argument handling. No feature/production file or dependency is changed by this follow-up; no skips, retries or timeouts are added. Read-only merge-tree exited 0, and GitHub reported no merge conflicts after the normal push. Shared Windows verification was executed once on the actual PCK-plus-main merge `b2a3c27f`: **47 passed / 11 existing skips / 4 failed** across four complete focused files. Browser cleanup **8/8** and MCP limitations **4/4** passed. The remaining client-registration cases use POSIX launcher paths (3 failures) and an unavailable Windows symlink privilege (1 failure); the complete command is **not green**. The standalone PCK command had previously recorded 45 passed / 11 existing skips / 6 failed; the actual merged producer resolved the two cleanup-structure mismatches. The Windows stub probe passed version, 3 flat packets, the 49-byte raw DNS packet and invalid-argument exit 2; this is fixture validation, not a real tshark engine claim. These shared results were not rerun on every branch. Normal push hooks passed typecheck/lint **2/2** on each branch. [Latest-head CI 40516839258](https://github.com/morluto/rea/actions/runs/40516839258) has been created and still needs its own full result; earlier green heads do not qualify this head. Any older host-dependent DMG/CLI timeout failure is not claimed fixed by these assertion-only conflict alignments. ## Earlier Android contract precondition (2026-10-27) Earlier head `7f0de5c022b20130ac696bfc0c9512595fa6fa12` adds **4 lines in one test file**. The MCP contract loop now explicitly requests `detail: "complete"` only when that contract declares the field, matching the test's requirement for inline Evidence instead of the JNI contract's summary default. Named-operation, raw Evidence, Ajv schema and cleanup assertions remain intact. This follow-up changes no feature implementation or other tests. Normal pre-commit formatting/lint and pre-push typecheck/lint **2/2 passed** (30.541 s), with hooks enabled. Shared isolated evidence used actual failed CI merge `423db9e` plus the patch: the existing JNI owner MCP proof passed **1 selected / 4 unselected** (35.66 s), and typecheck passed (17.157 s). This is shared diagnostic evidence, not a complete POSIX test-file run or current-branch CI pass. This head's own [main CI 40501913112](https://github.com/morluto/rea/actions/runs/40501913112) is in_progress (checked 2026-10-27 12:14:30 UTC); its required conclusion is **pending**. Original feature and engine-validation limitations below retain their scope. ## Earlier upstream test compatibility (2026-10-27) Historical head `2ac251b3130b459e323fc111dfebf28e50b530c5` aligned only the two native artifact tests and their shared fixture with merged upstream #7479 (`740c0f56`, fixed main `570abe95`). This commit leaves the existing feature/production source and all other tests unchanged. All three Git blobs match that upstream revision; merge-tree against it is clean. Normal pre-commit formatting/lint and pre-push typecheck/lint **2/2 passed** (34.437 s), with hooks enabled. The **24/24** loader/verifier check was shared validation executed on #7062 at `a2161f78`; it was not this branch's full verification. Historical [main CI 40496297286](https://github.com/morluto/rea/actions/runs/40496297286) subsequently failed the Android MCP inline-Evidence contract case corrected above. The earlier green head and this native-fixture head are superseded. The dated checks and limitations below remain evidence for their named revisions. ## Summary Reject namespace-invalid XML before the DOM projection can silently discard an attribute. For example, Android `a:name=".First" b:name=".Last"` with both prefixes bound to the Android URI previously produced a complete inventory containing only the last component name. SAZ metadata similarly lost the first attribute. Enable the existing Saxes parser's namespace validation at the shared XML boundary. Namespace-invalid documents are rejected before Android or SAZ projection. Valid alternate prefixes and distinct expanded attribute names are preserved. ## Scope and compatibility The existing XML owner serves Android manifests, SAZ metadata, XML plists, Apktool output and Ghidra language catalogs. No provider, operation, schema, dependency, target execution or write authority is added. Previously tolerated namespace-invalid documents, including undeclared prefixes, now receive the existing malformed-XML outcome; no component or metadata facts are invented from them. DTD and line-ending policies are unchanged. The attribute-identity rule is specified in [Namespaces in XML 1.0 §6.3](https://www.w3.org/TR/xml-names/#uniqAttrs). ## Feature verification (before CI synchronization) Windows, Node 24.22.1 / npm 11.16.0; based on `0ddde829`. - Before the production change: the three regression files had **7 expected failures / 140 passes**, including both Android attribute orders and actual SAZ projection. - After: `xmlDocument.test.ts`, `SazMetadata.test.ts`, `androidManifestComponents.test.ts`: **148 passed**. - Related XML plist scalar/data/text, Apktool decode-output and Ghidra catalog-encoding files: **217 passed**. - `npm run check:fast`, `git diff --check`, normal pre-commit/pre-push hooks: passed. These are source/production-boundary tests with synthetic XML and fixture catalogs. No real Jadx, Apktool or Ghidra engine, compiled executable CLI/MCP session, Linux/macOS run or complete local gate was exercised. Current-head hosted CI status is recorded above. The separate shared CI repairs are described below. ## Earlier CI repair evidence (2026-10-27) Earlier repair head: `4a0cb9dc3168d077200c4fbf1952d7e9c5159020`. The last full upstream synchronization is pinned `0d1d6e85`. The shared CI repair wave changes regression fixtures only; production source and the original feature behavior were not expanded. Launcher ownership, malformed-input refusals, native admission, source identities, cleanup retries and sensitive-value controls remain enforced. Native artifact and client fixture checks used the actual CI merge `b2011fd3` and its matching three-task build. The results and unavailable coverage are separated below: - Windows loader PE fixture: **8 failed / 14 passed before; 22 passed after** declaring the optional-header length and supplying its bytes. Admission and digest refusal assertions are unchanged. - Dependency-free native verifier fixtures: **2 failed before; 2 passed after** copying the newly imported PE parser dependency into both isolated source and packed layouts. - Cleanup retry ownership: **2 failed / 4 passed before; 6 passed after**, checking the exact retained root path rather than the old placeholder. - Client environment preservation: **6 failed / 57 passed before; 63 passed after** giving positive refresh fixtures a proven-owned launcher. - Eight other client files: the identical Windows command changed from **50 failed / 115 passed / 10 skipped** to **19 failed / 146 passed / 10 skipped**, with no newly failing test names. The remaining failures were already present in the baseline, including Windows symlink permissions, POSIX path expectations and platform-specific launcher expectations; the complete command is **not green**. A final platform-correct Kimi launcher was then verified separately across lifecycle, profile, transport and timeout groups: **23 passed / 8 unselected**. The two existing POSIX-only alias cases remain unexecuted locally. - The controlled Apple cleanup helper passed protocol syntax and production response validation. Its guarded compiler stub rejected **6 negative argument cases** and accepted the valid write invocation. The actual Darwin process CLI failure is **not locally verified** and requires new hosted CI. The earlier retained-root capture correction was checked with **2 selected producer controls passing**; the actual process-capture file's **24 Windows PTY cases were unavailable locally**. No actual Linux/macOS run is claimed by these fixture checks. On that historical branch head, normal pre-push typecheck/lint passed **2/2 tasks**; hooks were kept enabled. The focused results above describe their executed fixture/build revisions, not a complete run on every branch. All **13 shared repaired test files** are byte-identical to root head `df7536df` after porting. Read-only merge analysis against fixed upstream `5b292b63` was clean after the minimal overlap corrections. No full main merge was performed for this wave; merge analysis does not establish CI success. Earlier shared validation remains historical: Apple projection **39/39** and canonical CLI examples **9/9**; SAZ CLI/MCP **18 passed / 1 skip** after its required build; five public regression files **63 passed / 4 skips** at `6e0c0c9f`; four Electron files **34 passed / 3 skips**; Java files **35 passed / 5 skips**; provider/overview/workflow files **15 passed / 1 skip**. The borrowed [#7336](https://github.com/morluto/rea/pull/7336) and [#7335](https://github.com/morluto/rea/pull/7335) fixture commits retain their authored history. A two-line Electron fixture overlap was aligned with upstream without importing unrelated main changes. Historical snapshot at **2026-10-27 13:32 CST**: the then-head [hosted CI 40455293394](https://github.com/morluto/rea/actions/runs/40455293394) is **queued**; its CI required gate has **not completed**. No failed code job was reported at this query; that is not a completed CI pass. Previous-head results do not establish current-head success. Linux-only extraction-close, FIFO/socket, fake-gh and process/alias coverage still require hosted CI. Human readiness remains a separate declaration below. The XML branch drops only the overlapping cleanup in the old Android attribute helper (`1e289b6d`), retaining shared namespace admission and every XML regression. The three XML files passed **148/148** after this correction. Read-only merge analysis against pinned `21b6ea7f` was clean; the upstream 33-file Android feature was not imported. ## Earlier shared test repairs (2026-10-27) Historical PR head: `bd19f1e0b49560df47dcdc832d71201b89afbc6a`. Two follow-ups port the same **9 shared test files** as root `57136e6f`, without changing this PR's feature implementation: the first preserves exact DNS-label output, the trusted Ghidra `ps` prerequisite, admitted Mach-O bundle input and precise unknown-launcher diagnostics; the second preserves owned Int64/deadline registration fixtures, both cleanup failure records, authentication-before-commit observation and the native fixture's actual digest. Refusal, no-overwrite, identity and cleanup controls remain enforced. Normal pre-commit hooks and final pre-push typecheck/lint **2/2 tasks passed** on this PR head. Shared verification: root head `57136e6f21b68849d2f949622151ff1eaafcdb3e` completed [main CI 40469048903](https://github.com/morluto/rea/actions/runs/40469048903) and [independent real-packet/tshark CI 40469048779](https://github.com/morluto/rea/actions/runs/40469048779) successfully. This validates that root revision; it is **not** a completed CI result for this PR. The separate focused **9 passed / 116 unselected** result was executed only on failed CI merge `b0d706a748d808a0d766e6244b3d11288d64640a` and its matching three-task build, rather than on every feature branch. Historical hosted validation at **2026-10-27 08:30:54 UTC** for now-superseded head `bd19f1e0b49560df47dcdc832d71201b89afbc6a`: [main CI 40471140323](https://github.com/morluto/rea/actions/runs/40471140323), including all eight test shards and the [CI required gate](https://github.com/morluto/rea/actions/runs/40471140323/job/122086756382), and [independent real-packet verification 40471140064](https://github.com/morluto/rea/actions/runs/40471140064) all completed successfully. That revision's [title check 40471456666](https://github.com/morluto/rea/actions/runs/40471456666) and [PR readiness commit status](https://github.com/morluto/rea/actions/runs/40471457354) were also successful. GitHub reported `mergeable=true` and `mergeable_state=clean`. These are this PR's own results for superseded head `bd19f1e0`, distinct from the shared root evidence above. All original feature checks and Windows, engine and IDA limitations above retain their recorded scope; earlier non-green local commands are not reclassified as passing. ## Author readiness Human owner: @ShuaixinHuang - [x] 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. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. The human owner explicitly confirmed that review of this published PR was complete in this chat on 2026-10-27. The prior ownership and responsibility confirmation remains in force. This records initial readiness for the published change; subsequent validation remains documented above. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-11-05 01:47: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#7828
No description provided.