[GH-ISSUE #7596] [Bug] README's deep native analysis requirements omit Kuna #4525

Closed
opened 2026-10-31 00:50:30 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @coygeek on GitHub (Oct 27, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/7596

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Documentation

Observed behavior

The English README's native-analysis introduction and requirements table name Hopper, Ghidra and IDA. Its FAQ asks whether those engines are needed and answers that deep native analysis uses one of them. Kuna is absent from all three passages, although the same README links a guide that documents Kuna as an independent native provider.

I checked these passages in the source checkout and ran node scripts/rea.mjs doctor --provider kuna --json with empty HOME/XDG state. The command accepts Kuna and reports its missing executable. This confirms provider-option admission; it does not establish successful decompilation with Kuna.

Reproduction

  1. Use the built source checkout at the revision below with Node.js 24.22.1. Read the English README's onboarding introduction, native-binary requirements row, and native-engine FAQ. Each lists only Hopper, Ghidra and IDA; the FAQ says deep native analysis uses one of them.
  2. Follow the README's Kuna decompiler guide link. The guide documents a caller-supplied Kuna executable and explicit --provider kuna selection for native analysis.
  3. From the repository root, run this target-free check with isolated configuration:
python3 - <<'PYTHON'
import json, os, subprocess, tempfile
with tempfile.TemporaryDirectory() as trial:
    env = {"PATH": os.environ["PATH"], "HOME": trial, "TMPDIR": trial}
    for key, name in [("XDG_CONFIG_HOME", "config"),
                      ("XDG_CACHE_HOME", "cache"),
                      ("XDG_DATA_HOME", "data"),
                      ("XDG_STATE_HOME", "state")]:
        env[key] = trial + "/" + name
    result = subprocess.run(
        ["node", "scripts/rea.mjs", "doctor", "--provider", "kuna", "--json"],
        env=env, capture_output=True, text=True, check=False)
    output = json.loads(result.stdout)
    print("exit:", result.returncode)
    print(json.dumps({"scope": output["scope"],
                      "scope_checks": output["scope_checks"]}, indent=2))
PYTHON

The provider check was run three times with isolated configuration, including two runs with an otherwise empty environment. All runs accepted Kuna and reported missing configuration. The documentation mismatch is static at this revision. No target fixture is required.

Expected behavior

The onboarding provider requirements should include Kuna, or use wording that leaves supported alternatives open. In particular, the FAQ should allow the separate Kuna route documented by its linked guide. This does not require claiming equivalent target or feature support across providers.

Impact and scope

The checked README gives inconsistent guidance about which engine a reader needs for deep native analysis. The demonstrated impact is wording and provider discoverability. No blocked analysis, incorrect analysis output, financial loss, or other consequential runtime effect was demonstrated.

A reader can follow the existing Kuna guide link for accurate configuration and selection instructions. Other README languages and deployed website rendering were not verified.

REA version

Exact node scripts/rea.mjs --version output:

6.8.0

Source revision: 65f1c447344a423fa2785847dbcea1e9a9e2454a.

Runtime and platform

Node.js v24.22.1; macOS 27.0.1, Darwin arm64. No Kuna executable was configured. No GUI application was launched.

Target and artifact context

No target artifact. Static documentation comparison and a target-free provider-readiness command.

Interface

CLI

Earliest failure stage

Unknown

Relevant output or evidence

At the source revision above:

  • Failure locations: README.md:65 (native-analysis introduction), README.md:192 (native-binary requirements row), and README.md:345-349 (FAQ). The FAQ's answer restricts deep native analysis to the three engines named in its question.
  • Expected sources: README.md:239-243 links the Kuna guide; docs/kuna-provider.md:3-14 documents caller-supplied Kuna and CLI/MCP selection. docs/cli.md:377-379 and docs/installation.md:10 include Kuna among native analysis options.
  • Production support: src/composition/binary.ts:64-84 registers Kuna alongside Hopper, Ghidra and IDA. src/kuna/KunaProvider.ts:168-198 admits executable ELF/thin Mach-O targets with supported architectures; this is not a claim of universal format parity.

The isolated doctor invocation returned exit 1 with these selected fields:

{
  "scope": {
    "mode": "explicit",
    "clients": [],
    "providers": ["kuna"],
    "skill": false,
    "target": null
  },
  "installation_check": {
    "name": "kuna-installation",
    "ok": false,
    "classification": "missing_analysis_engine",
    "details": {"configured": false}
  }
}

installation_check above is the selected entry from scope_checks, renamed for this excerpt. Exit 1 reports missing engine configuration, rather than rejection of the provider ID.

Typed outcome or recovery expected

No CLI error change is requested. Correct the onboarding wording to acknowledge the existing Kuna option and preserve its documented limitations.

Analysis or suspected cause

Source-derived conclusion: the provider guide, configuration reference and production registry agree that Kuna is supported, while the three README enumerations retain a smaller provider set. The FAQ makes that omission misleading by describing the smaller set as necessary.

Additional context

Duplicate search included open and closed issues, all PR states, and comments. #1353 concerned IDA missing from the intro; its closure confirms that IDA correction, which is present here. #4767 concerns the installation guide's doctor-ID list. #4624, fixed by #5011, concerns the CLI guide's doctor-ID list. Those fixes do not correct the README requirement passages. #3855 added the Kuna guide and README link; it does not report a fix for these enumerations.

Triage assessment

  • Impact level: P3
  • Assessment status: supported
  • Impact basis: The demonstrated defect is contradictory provider wording and discoverability, with no consequential runtime failure observed.
  • Workaround status: available
  • Workaround basis: The README already links the Kuna guide, which documents the supported provider-selection route; the CLI accepts that provider ID.
Originally created by @coygeek on GitHub (Oct 27, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/7596 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Documentation ### Observed behavior The English README's native-analysis introduction and requirements table name Hopper, Ghidra and IDA. Its FAQ asks whether those engines are needed and answers that deep native analysis uses one of them. Kuna is absent from all three passages, although the same README links a guide that documents Kuna as an independent native provider. I checked these passages in the source checkout and ran `node scripts/rea.mjs doctor --provider kuna --json` with empty HOME/XDG state. The command accepts Kuna and reports its missing executable. This confirms provider-option admission; it does not establish successful decompilation with Kuna. ### Reproduction 1. Use the built source checkout at the revision below with Node.js 24.22.1. Read the English README's onboarding introduction, native-binary requirements row, and native-engine FAQ. Each lists only Hopper, Ghidra and IDA; the FAQ says deep native analysis uses one of them. 2. Follow the README's Kuna decompiler guide link. The guide documents a caller-supplied Kuna executable and explicit `--provider kuna` selection for native analysis. 3. From the repository root, run this target-free check with isolated configuration: ```sh python3 - <<'PYTHON' import json, os, subprocess, tempfile with tempfile.TemporaryDirectory() as trial: env = {"PATH": os.environ["PATH"], "HOME": trial, "TMPDIR": trial} for key, name in [("XDG_CONFIG_HOME", "config"), ("XDG_CACHE_HOME", "cache"), ("XDG_DATA_HOME", "data"), ("XDG_STATE_HOME", "state")]: env[key] = trial + "/" + name result = subprocess.run( ["node", "scripts/rea.mjs", "doctor", "--provider", "kuna", "--json"], env=env, capture_output=True, text=True, check=False) output = json.loads(result.stdout) print("exit:", result.returncode) print(json.dumps({"scope": output["scope"], "scope_checks": output["scope_checks"]}, indent=2)) PYTHON ``` The provider check was run three times with isolated configuration, including two runs with an otherwise empty environment. All runs accepted Kuna and reported missing configuration. The documentation mismatch is static at this revision. No target fixture is required. ### Expected behavior The onboarding provider requirements should include Kuna, or use wording that leaves supported alternatives open. In particular, the FAQ should allow the separate Kuna route documented by its linked guide. This does not require claiming equivalent target or feature support across providers. ### Impact and scope The checked README gives inconsistent guidance about which engine a reader needs for deep native analysis. The demonstrated impact is wording and provider discoverability. No blocked analysis, incorrect analysis output, financial loss, or other consequential runtime effect was demonstrated. A reader can follow the existing Kuna guide link for accurate configuration and selection instructions. Other README languages and deployed website rendering were not verified. ### REA version Exact `node scripts/rea.mjs --version` output: ```text 6.8.0 ``` Source revision: `65f1c447344a423fa2785847dbcea1e9a9e2454a`. ### Runtime and platform Node.js v24.22.1; macOS 27.0.1, Darwin arm64. No Kuna executable was configured. No GUI application was launched. ### Target and artifact context No target artifact. Static documentation comparison and a target-free provider-readiness command. ### Interface CLI ### Earliest failure stage Unknown ### Relevant output or evidence At the source revision above: - Failure locations: `README.md:65` (native-analysis introduction), `README.md:192` (native-binary requirements row), and `README.md:345-349` (FAQ). The FAQ's answer restricts deep native analysis to the three engines named in its question. - Expected sources: `README.md:239-243` links the Kuna guide; `docs/kuna-provider.md:3-14` documents caller-supplied Kuna and CLI/MCP selection. `docs/cli.md:377-379` and `docs/installation.md:10` include Kuna among native analysis options. - Production support: `src/composition/binary.ts:64-84` registers Kuna alongside Hopper, Ghidra and IDA. `src/kuna/KunaProvider.ts:168-198` admits executable ELF/thin Mach-O targets with supported architectures; this is not a claim of universal format parity. The isolated doctor invocation returned exit 1 with these selected fields: ```json { "scope": { "mode": "explicit", "clients": [], "providers": ["kuna"], "skill": false, "target": null }, "installation_check": { "name": "kuna-installation", "ok": false, "classification": "missing_analysis_engine", "details": {"configured": false} } } ``` `installation_check` above is the selected entry from `scope_checks`, renamed for this excerpt. Exit 1 reports missing engine configuration, rather than rejection of the provider ID. ### Typed outcome or recovery expected No CLI error change is requested. Correct the onboarding wording to acknowledge the existing Kuna option and preserve its documented limitations. ### Analysis or suspected cause Source-derived conclusion: the provider guide, configuration reference and production registry agree that Kuna is supported, while the three README enumerations retain a smaller provider set. The FAQ makes that omission misleading by describing the smaller set as necessary. ### Additional context Duplicate search included open and closed issues, all PR states, and comments. [#1353](https://github.com/morluto/rea/issues/1353) concerned IDA missing from the intro; its closure confirms that IDA correction, which is present here. [#4767](https://github.com/morluto/rea/pull/4767) concerns the installation guide's doctor-ID list. [#4624](https://github.com/morluto/rea/issues/4624), fixed by [#5011](https://github.com/morluto/rea/pull/5011), concerns the CLI guide's doctor-ID list. Those fixes do not correct the README requirement passages. [#3855](https://github.com/morluto/rea/pull/3855) added the Kuna guide and README link; it does not report a fix for these enumerations. ## Triage assessment - Impact level: P3 - Assessment status: supported - Impact basis: The demonstrated defect is contradictory provider wording and discoverability, with no consequential runtime failure observed. - Workaround status: available - Workaround basis: The README already links the Kuna guide, which documents the supported provider-selection route; the CLI accepts that provider ID.
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#4525
No description provided.