[PR #2816] [MERGED] feat(artifacts): inspect classic iNES container regions #5413

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2816
Author: @morluto
Created: 10/13/2026
Status: ✅ Merged
Merged: 10/31/2026
Merged by: @morluto

Base: main ← Head: fix/main-sync-2087-captured-c6503ed


📝 Commits (10+)

  • 414307c feat(artifacts): inspect classic iNES container regions
  • 574f6bb fix(artifacts): preserve iNES source disappearance as integrity failure
  • 5ba8b2f fix(artifacts): revalidate iNES source before parsing header
  • e6d4d7f fix(artifacts): validate admitted roots before classification
  • 9b89161 fix(artifacts): normalize source loss during root hashing
  • 2f0e4d7 fix(artifacts): bind iNES extraction admission to inventory
  • ca646b6 test(artifacts): clarify non-executing inspection wording
  • 7cba3ac Merge remote-tracking branch 'origin/main' into feat/2072-ines-container
  • 071f632 fix: preserve binary plist detection with extended magic probe
  • db24a47 fix: reconcile iNES inspection with upstream summary delivery

📊 Changes

51 files changed (+3037 additions, -91 deletions)

View changed files

📝 .agents/skills/reverse-engineer-anything/references/native-and-artifacts.md (+10 -0)
📝 .github/workflows/ci.yml (+7 -0)
📝 docs/.vitepress/config.ts (+1 -0)
➕ docs/ines-containers.md (+72 -0)
📝 scripts/ci/scopes.mjs (+7 -0)
📝 scripts/lib/browser-popup-e2e.mjs (+55 -10)
📝 scripts/lib/browser-runtime-fixture-lifecycle.mjs (+71 -1)
📝 src/application/BinaryTargetResolver.ts (+48 -16)
📝 src/application/binary/TargetFormatVocabularies.test.ts (+1 -0)
📝 src/artifacts/ArtifactHash.ts (+5 -1)
📝 src/artifacts/ArtifactReader.ts (+1 -0)
➕ src/artifacts/InesArtifactReader.ts (+192 -0)
📝 src/artifacts/artifactFormats.test.ts (+1 -0)
📝 src/artifacts/artifactFormats.ts (+21 -1)
📝 src/artifacts/extraction/ArtifactExtraction.ts (+73 -7)
📝 src/artifacts/inventory/ArtifactGraphConstruction.ts (+11 -0)
📝 src/artifacts/inventory/classify.ts (+31 -1)
📝 src/artifacts/inventory/hashStableRootArtifact.ts (+18 -8)
📝 src/artifacts/inventory/scanCanonical.ts (+24 -0)
📝 src/artifacts/inventory/scanReader.ts (+37 -0)

...and 31 more files

📄 Description

Continues #2087, originally contributed by @Zhong-fan (记得吃中饭; Git author 64579525). The contributor fork rejected a normal maintainer push with permission denied, so this replacement preserves the contribution on a writable branch. Credit for the iNES implementation and subsequent fixes remains with @Zhong-fan; authorship and merge history are retained without squashing.

The closed original PR's current head 480a467dac220c36f621a5bc6f2fa3f65c4fda84 is an ancestor of replacement head ee4a11df812d63dc9c946dcb43b890c60f4d4e8b. Git ancestry and the canonical refs/pull/2087/head were verified after the push. All 41 original commits outside captured main history are retained. The earlier replacement merge 2904bdb4f8b0c4c7c4ebfa1737220b0fb84cb2cc preserves prior original head 00f31692b53ea382af159c0cbaf7635aa69c5450 and exact captured main c6503edfc4afdc0de6812ba3f7cd0909df5555f7 as its two parents. The attribution sync ee4a11df812d63dc9c946dcb43b890c60f4d4e8b then merges the contributor's 480a467dac220c36f621a5bc6f2fa3f65c4fda84 into that replacement. The contributor commit was made at 2026-10-13 13:46:10 UTC, before original closure at 13:53:18 UTC; its older main parent was already in the captured target. No later main was fetched or chased.

The inherited contribution inspects classic iNES headers and regions, preserving source bytes and reconstruction provenance without inferring executable architecture from a container signature. The shared Evidence schema retains ines with unknown container architecture (null); 6502 remains valid only for explicit raw-binary selections. The contributor's matching schema resolution and additional iNES/null-architecture and 6502-rejection assertions are preserved, along with the Ghidra Windows runtime-isolation test grouping and all earlier source fixes.

The captured-main resolution previously received source inspection, targeted formatting with two threads, and git diff --check. This attribution sync received source/diff inspection and Git ancestry/ref verification only. Tests, builds, lint, typechecks, provider workloads, benchmarks and CI reruns were skipped at the user's explicit request. No fresh runtime/provider verification or performance measurements are claimed. No GitHub metadata/review/comment writes were made during this sync.

Author readiness

Human owner: @morluto

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

🔄 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/2816 **Author:** [@morluto](https://github.com/morluto) **Created:** 10/13/2026 **Status:** ✅ Merged **Merged:** 10/31/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/main-sync-2087-captured-c6503ed` --- ### 📝 Commits (10+) - [`414307c`](https://github.com/morluto/rea/commit/414307c9d561f7811d03752e530f104faf88abd0) feat(artifacts): inspect classic iNES container regions - [`574f6bb`](https://github.com/morluto/rea/commit/574f6bb3bdcaedc42ab8564f5073a7d46da061e8) fix(artifacts): preserve iNES source disappearance as integrity failure - [`5ba8b2f`](https://github.com/morluto/rea/commit/5ba8b2f6bfa3ba5e967ad1163ea048205069165d) fix(artifacts): revalidate iNES source before parsing header - [`e6d4d7f`](https://github.com/morluto/rea/commit/e6d4d7fb8452cfa54680935408e33e4474c689d8) fix(artifacts): validate admitted roots before classification - [`9b89161`](https://github.com/morluto/rea/commit/9b8916152badd33249ac0045ad4ee072863935ef) fix(artifacts): normalize source loss during root hashing - [`2f0e4d7`](https://github.com/morluto/rea/commit/2f0e4d79ea540de214c6daa04b6bc4a2b186ce3e) fix(artifacts): bind iNES extraction admission to inventory - [`ca646b6`](https://github.com/morluto/rea/commit/ca646b6cb9894e9491714e71a7209f46892a7a12) test(artifacts): clarify non-executing inspection wording - [`7cba3ac`](https://github.com/morluto/rea/commit/7cba3acaa42d3e02de2d28ce035c90efd443a34f) Merge remote-tracking branch 'origin/main' into feat/2072-ines-container - [`071f632`](https://github.com/morluto/rea/commit/071f632e92ac1c98126e93886a7c0daa91c3b2fc) fix: preserve binary plist detection with extended magic probe - [`db24a47`](https://github.com/morluto/rea/commit/db24a47c1513b51269289d2768b588c397e69ab2) fix: reconcile iNES inspection with upstream summary delivery ### 📊 Changes **51 files changed** (+3037 additions, -91 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/reverse-engineer-anything/references/native-and-artifacts.md` (+10 -0) 📝 `.github/workflows/ci.yml` (+7 -0) 📝 `docs/.vitepress/config.ts` (+1 -0) ➕ `docs/ines-containers.md` (+72 -0) 📝 `scripts/ci/scopes.mjs` (+7 -0) 📝 `scripts/lib/browser-popup-e2e.mjs` (+55 -10) 📝 `scripts/lib/browser-runtime-fixture-lifecycle.mjs` (+71 -1) 📝 `src/application/BinaryTargetResolver.ts` (+48 -16) 📝 `src/application/binary/TargetFormatVocabularies.test.ts` (+1 -0) 📝 `src/artifacts/ArtifactHash.ts` (+5 -1) 📝 `src/artifacts/ArtifactReader.ts` (+1 -0) ➕ `src/artifacts/InesArtifactReader.ts` (+192 -0) 📝 `src/artifacts/artifactFormats.test.ts` (+1 -0) 📝 `src/artifacts/artifactFormats.ts` (+21 -1) 📝 `src/artifacts/extraction/ArtifactExtraction.ts` (+73 -7) 📝 `src/artifacts/inventory/ArtifactGraphConstruction.ts` (+11 -0) 📝 `src/artifacts/inventory/classify.ts` (+31 -1) 📝 `src/artifacts/inventory/hashStableRootArtifact.ts` (+18 -8) 📝 `src/artifacts/inventory/scanCanonical.ts` (+24 -0) 📝 `src/artifacts/inventory/scanReader.ts` (+37 -0) _...and 31 more files_ </details> ### 📄 Description Continues [#2087](https://github.com/morluto/rea/pull/2087), originally contributed by @Zhong-fan (记得吃中饭; Git author 64579525). The contributor fork rejected a normal maintainer push with permission denied, so this replacement preserves the contribution on a writable branch. Credit for the iNES implementation and subsequent fixes remains with @Zhong-fan; authorship and merge history are retained without squashing. The closed original PR's current head `480a467dac220c36f621a5bc6f2fa3f65c4fda84` is an ancestor of replacement head `ee4a11df812d63dc9c946dcb43b890c60f4d4e8b`. Git ancestry and the canonical `refs/pull/2087/head` were verified after the push. All 41 original commits outside captured main history are retained. The earlier replacement merge `2904bdb4f8b0c4c7c4ebfa1737220b0fb84cb2cc` preserves prior original head `00f31692b53ea382af159c0cbaf7635aa69c5450` and exact captured main `c6503edfc4afdc0de6812ba3f7cd0909df5555f7` as its two parents. The attribution sync `ee4a11df812d63dc9c946dcb43b890c60f4d4e8b` then merges the contributor's `480a467dac220c36f621a5bc6f2fa3f65c4fda84` into that replacement. The contributor commit was made at 2026-10-13 13:46:10 UTC, before original closure at 13:53:18 UTC; its older main parent was already in the captured target. No later main was fetched or chased. The inherited contribution inspects classic iNES headers and regions, preserving source bytes and reconstruction provenance without inferring executable architecture from a container signature. The shared Evidence schema retains `ines` with unknown container architecture (`null`); `6502` remains valid only for explicit raw-binary selections. The contributor's matching schema resolution and additional iNES/null-architecture and 6502-rejection assertions are preserved, along with the Ghidra Windows runtime-isolation test grouping and all earlier source fixes. The captured-main resolution previously received source inspection, targeted formatting with two threads, and `git diff --check`. This attribution sync received source/diff inspection and Git ancestry/ref verification only. Tests, builds, lint, typechecks, provider workloads, benchmarks and CI reruns were skipped at the user's explicit request. No fresh runtime/provider verification or performance measurements are claimed. No GitHub metadata/review/comment writes were made during this sync. ## Author readiness Human owner: @morluto - [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. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi changed title from [PR #2816] feat(artifacts): inspect classic iNES container regions to [PR #2816] [MERGED] feat(artifacts): inspect classic iNES container regions 2026-11-01 21:15:13 +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#5413
No description provided.