[PR #977] [MERGED] fix(android): align runtime suffix inference #2545

Closed
opened 2026-10-17 21:07:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

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

Base: main ← Head: codex/android-runtime-family-suffixes


📝 Commits (2)

  • 57fa2be fix(android): align runtime suffix inference
  • bfeb9cb style(android): format projection regression test

📊 Changes

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

View changed files

📝 src/domain/android/androidApplication.ts (+9 -2)
📝 tests/composition/android/application.test.ts (+44 -0)

📄 Description

Android application projection classified .DEX and .CLASS paths as bytecode components but failed to include their runtime families because suffix matching was case-sensitive in a separate projection step. Runtime-family inference now uses the same case-insensitive suffix semantics.

The regression exercises the production inventory_artifact producer and application projection with uppercase and lowercase .dex / .class entries containing unrecognized bytes. It verifies that inventory reports generic file formats, component membership and path-derived runtime-family candidates remain consistent, and the result explicitly states that suffixes do not establish valid DEX or JVM class bytes.

Validation:

  • PATH=/opt/homebrew/opt/node@24/bin:$PATH npm run test:focused -- tests/composition/android/application.test.ts (4 tests passed)
  • PATH=/opt/homebrew/opt/node@24/bin:$PATH npm run check:fast (typecheck and lint passed)

The regression verifies the artifact inventory and projection boundary; no real JADX engine verification was performed. Hopper verification from the broader audit is separate and does not establish JADX behavior.


🔄 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/977 **Author:** [@morluto](https://github.com/morluto) **Created:** 10/7/2026 **Status:** ✅ Merged **Merged:** 10/7/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `codex/android-runtime-family-suffixes` --- ### 📝 Commits (2) - [`57fa2be`](https://github.com/morluto/rea/commit/57fa2be2e89659625764a1543a74041b1ec9f5c9) fix(android): align runtime suffix inference - [`bfeb9cb`](https://github.com/morluto/rea/commit/bfeb9cbe67ce4f95eeb6e6173676883f53976992) style(android): format projection regression test ### 📊 Changes **2 files changed** (+53 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `src/domain/android/androidApplication.ts` (+9 -2) 📝 `tests/composition/android/application.test.ts` (+44 -0) </details> ### 📄 Description Android application projection classified `.DEX` and `.CLASS` paths as bytecode components but failed to include their runtime families because suffix matching was case-sensitive in a separate projection step. Runtime-family inference now uses the same case-insensitive suffix semantics. The regression exercises the production `inventory_artifact` producer and application projection with uppercase and lowercase `.dex` / `.class` entries containing unrecognized bytes. It verifies that inventory reports generic `file` formats, component membership and path-derived runtime-family candidates remain consistent, and the result explicitly states that suffixes do not establish valid DEX or JVM class bytes. Validation: - `PATH=/opt/homebrew/opt/node@24/bin:$PATH npm run test:focused -- tests/composition/android/application.test.ts` (4 tests passed) - `PATH=/opt/homebrew/opt/node@24/bin:$PATH npm run check:fast` (typecheck and lint passed) The regression verifies the artifact inventory and projection boundary; no real JADX engine verification was performed. Hopper verification from the broader audit is separate and does not establish JADX behavior. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:07:25 +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#2545
No description provided.