[GH-ISSUE #5595] [Bug] analyze selects the wrong workflow for bundle aliases and JavaScript directories named .app #3395

Closed
opened 2026-10-31 00:39:53 +00:00 by bsakaguchi · 3 comments
Owner

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

Before submitting

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

Area

CLI

Observed behavior

Default rea analyze selects the wrong workflow when the caller's directory name disagrees with its artifact kind:

  • A symlink bundle-alias pointing to a valid Fixture.app returns successful but empty JavaScript Evidence instead of a native overview.
  • A plain JavaScript directory web.app enters native analysis and fails because it has no bundle metadata. The same bytes in web analyze successfully.

An independent verifier reproduced each failure once through the built CLI, along with the controls below. No provider, snapshot, target-format, architecture, or entry-point option was supplied to the failing commands. Native controls used Hopper.

Reproduction

From the source-checkout root with dependencies and the built runtime available, run the following on macOS. The native controls need a working supported deep-analysis provider; the verified run used Hopper. The copied system application was never launched.

WORK=$(mktemp -d)
SYSTEM_ROOT=$(osascript -e 'POSIX path of (path to system folder)')
mkdir -p "$WORK/home" "$WORK/config" "$WORK/data" "$WORK/cache" "$WORK/state" "$WORK/output"
cp -cR "${SYSTEM_ROOT}Applications/Utilities/Digital Color Meter.app" "$WORK/Fixture.app"
ln -s Fixture.app "$WORK/bundle-alias"
mkdir "$WORK/web.app"
printf 'const y = require("./lib.js");\nmodule.exports = y;\n' > "$WORK/web.app/index.js"
printf 'module.exports = 42;\n' > "$WORK/web.app/lib.js"
printf '{"name":"demo-js","version":"1.0.0","main":"index.js"}\n' > "$WORK/web.app/package.json"
cp -R "$WORK/web.app" "$WORK/web"
run_rea() {
  env -i PATH="$PATH" HOME="$WORK/home" \
    XDG_CONFIG_HOME="$WORK/config" XDG_DATA_HOME="$WORK/data" \
    XDG_CACHE_HOME="$WORK/cache" XDG_STATE_HOME="$WORK/state" \
    TMPDIR="$WORK/cache" REA_LOG_LEVEL=silent \
    node scripts/rea.mjs "$@" --format json
}
run_rea analyze "$WORK/bundle-alias" > "$WORK/output/bundle-alias.json"
printf 'bundle alias exit: %s\n' "$?"
run_rea analyze "$WORK/Fixture.app" > "$WORK/output/bundle-real.json"
printf 'bundle real path exit: %s\n' "$?"
run_rea analyze "$WORK/web.app" > "$WORK/output/js-dot-app.json"
printf 'JavaScript .app directory exit: %s\n' "$?"
run_rea analyze-javascript-application "$WORK/web.app" > "$WORK/output/js-dedicated.json"
printf 'dedicated static exit: %s\n' "$?"
run_rea analyze "$WORK/web" > "$WORK/output/js-plain.json"
printf 'plain directory exit: %s\n' "$?"
run_rea analyze "$WORK/bundle-alias" --provider auto > "$WORK/output/bundle-alias-auto.json"
printf 'explicit provider exit: %s\n' "$?"

Expected behavior

Generic analysis should select static JavaScript analysis for an ordinary source directory and native deep analysis for an application bundle. A symlink to the same bundle should retain that analysis kind. A directory containing only JavaScript sources and a package manifest should remain eligible for static analysis when its name ends in .app.

The contract is in docs/javascript-artifact-reconstruction.md:23-27 and docs/cli.md:17-21. The selected JavaScript alias and resolved artifact identity are separate facts under docs/javascript-artifact-reconstruction.md:53-58.

Impact and scope

P2, supported. The generic CLI returns successful Evidence for the wrong analysis kind or refuses a valid source directory because of its name. Each case reproduced once with successful controls. Broader input frequency and other platforms were not measured; no MCP routing defect is claimed.

Verified workarounds preserve the intended results. For the bundle, use its real path or --provider auto; both returned a native overview with the same executable digest. For the JavaScript directory, use analyze-javascript-application, which parsed both source files without renaming the input.

REA version

6.7.0; source commit 074768901f3cdc8205b61773fb1faf6f6c7b3ca8.

Runtime and platform

Node.js v26.12.0; macOS 27.0.1 arm64; built source-checkout CLI. Native controls reported Hopper as their upstream provider. NOT_ENOUGH_INFO: the verifier did not record the exact Hopper version.

Target and artifact context

A copied Digital Color Meter application, with Contents/Info.plist and a universal Mach-O executable, selected arm64 for native analysis. Its symlink alias lacks the .app suffix. Two identical JavaScript directories contain a package manifest and two CommonJS files; neither contains application-bundle metadata.

Interface

CLI

Earliest failure stage

Request parsing or validation

Relevant output or evidence

The independent verifier captured these reduced built-CLI results. Statistics come from normalized_result.statistics.

analyze bundle-alias:
  exit 0; operation=analyze_javascript_application
  subject.name=Fixture.app; subject.format=directory
  relevant_files=0; parsed_javascript_files=0
analyze Fixture.app:
  exit 0; operation=binary_overview
  subject.name=Digital Color Meter
  subject.format=mach-o-universal; subject.architecture=arm64
analyze web.app:
  exit 1; code=target_unavailable
  app Info.plist is missing or no supported bundle layout was found
analyze-javascript-application web.app:
  exit 0; operation=analyze_javascript_application
  relevant_files=3; parsed_javascript_files=2
analyze web:
  exit 0; operation=analyze_javascript_application
  relevant_files=3; parsed_javascript_files=2
analyze bundle-alias --provider auto:
  exit 0; operation=binary_overview
  entire subject matches the real-path native control

The verifier asserted equality of the native subjects, including executable digest, and equality of the JavaScript artifact digests. The failing alias result retained the selected alias in parameters.input_path and used the resolved bundle as its subject identity.

Typed outcome or recovery expected

analyze bundle-alias should return binary_overview for the same executable digest, format, and architecture as the real-path control. analyze web.app should return static JavaScript Evidence with two parsed files, matching the dedicated command and identical plain directory. Preserve applicable caller-selected input facts and documented provider/snapshot overrides.

Analysis or suspected cause

Source-derived reasoning: src/cli/coreBinaryCommands.ts:79-133 reaches routesToJavaScriptAnalysis and isJavaScriptApplicationPath at lines 217-247. The predicate checks the caller's .app suffix before stat follows the symlink. This classifies the alias as an ordinary directory and the plain JavaScript .app directory as a bundle. Native admission subsequently resolves the canonical path in src/application/BinaryTargetResolver.ts:87-98 and checks bundle metadata through src/application/AppBundleExecutable.ts:60-90.

The upstream re-check found the same predicate on origin/main at 080c0e2b2b82a7d9394b59d3d86630d9d85346a5. Later changes to the cited files concern output filters, IL2CPP, and Mach-O headers, rather than this routing decision. This is a source comparison; the runtime reproduction above is on the stated baseline.

Additional context

This report was prepared with AI assistance and independently reproduced. It combines the complementary outcomes of one artifact-classification decision.

Related closed report #3321 and merged PR #3511 covered trailing / and /. spellings. Their suffix normalization remains present; the alias and non-bundle .app cases here remain outside that fix. Closed report #5258 concerned preserving selected paths in JavaScript Evidence, rather than choosing the analysis workflow.

Originally created by @coygeek on GitHub (Oct 20, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/5595 ### 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 CLI ### Observed behavior Default `rea analyze` selects the wrong workflow when the caller's directory name disagrees with its artifact kind: - A symlink `bundle-alias` pointing to a valid `Fixture.app` returns successful but empty JavaScript Evidence instead of a native overview. - A plain JavaScript directory `web.app` enters native analysis and fails because it has no bundle metadata. The same bytes in `web` analyze successfully. An independent verifier reproduced each failure once through the built CLI, along with the controls below. No provider, snapshot, target-format, architecture, or entry-point option was supplied to the failing commands. Native controls used Hopper. ### Reproduction From the source-checkout root with dependencies and the built runtime available, run the following on macOS. The native controls need a working supported deep-analysis provider; the verified run used Hopper. The copied system application was never launched. ```sh WORK=$(mktemp -d) SYSTEM_ROOT=$(osascript -e 'POSIX path of (path to system folder)') mkdir -p "$WORK/home" "$WORK/config" "$WORK/data" "$WORK/cache" "$WORK/state" "$WORK/output" cp -cR "${SYSTEM_ROOT}Applications/Utilities/Digital Color Meter.app" "$WORK/Fixture.app" ln -s Fixture.app "$WORK/bundle-alias" mkdir "$WORK/web.app" printf 'const y = require("./lib.js");\nmodule.exports = y;\n' > "$WORK/web.app/index.js" printf 'module.exports = 42;\n' > "$WORK/web.app/lib.js" printf '{"name":"demo-js","version":"1.0.0","main":"index.js"}\n' > "$WORK/web.app/package.json" cp -R "$WORK/web.app" "$WORK/web" run_rea() { env -i PATH="$PATH" HOME="$WORK/home" \ XDG_CONFIG_HOME="$WORK/config" XDG_DATA_HOME="$WORK/data" \ XDG_CACHE_HOME="$WORK/cache" XDG_STATE_HOME="$WORK/state" \ TMPDIR="$WORK/cache" REA_LOG_LEVEL=silent \ node scripts/rea.mjs "$@" --format json } run_rea analyze "$WORK/bundle-alias" > "$WORK/output/bundle-alias.json" printf 'bundle alias exit: %s\n' "$?" run_rea analyze "$WORK/Fixture.app" > "$WORK/output/bundle-real.json" printf 'bundle real path exit: %s\n' "$?" run_rea analyze "$WORK/web.app" > "$WORK/output/js-dot-app.json" printf 'JavaScript .app directory exit: %s\n' "$?" run_rea analyze-javascript-application "$WORK/web.app" > "$WORK/output/js-dedicated.json" printf 'dedicated static exit: %s\n' "$?" run_rea analyze "$WORK/web" > "$WORK/output/js-plain.json" printf 'plain directory exit: %s\n' "$?" run_rea analyze "$WORK/bundle-alias" --provider auto > "$WORK/output/bundle-alias-auto.json" printf 'explicit provider exit: %s\n' "$?" ``` ### Expected behavior Generic analysis should select static JavaScript analysis for an ordinary source directory and native deep analysis for an application bundle. A symlink to the same bundle should retain that analysis kind. A directory containing only JavaScript sources and a package manifest should remain eligible for static analysis when its name ends in `.app`. The contract is in `docs/javascript-artifact-reconstruction.md:23-27` and `docs/cli.md:17-21`. The selected JavaScript alias and resolved artifact identity are separate facts under `docs/javascript-artifact-reconstruction.md:53-58`. ### Impact and scope P2, supported. The generic CLI returns successful Evidence for the wrong analysis kind or refuses a valid source directory because of its name. Each case reproduced once with successful controls. Broader input frequency and other platforms were not measured; no MCP routing defect is claimed. Verified workarounds preserve the intended results. For the bundle, use its real path or `--provider auto`; both returned a native overview with the same executable digest. For the JavaScript directory, use `analyze-javascript-application`, which parsed both source files without renaming the input. ### REA version 6.7.0; source commit `074768901f3cdc8205b61773fb1faf6f6c7b3ca8`. ### Runtime and platform Node.js v26.12.0; macOS 27.0.1 arm64; built source-checkout CLI. Native controls reported Hopper as their upstream provider. NOT_ENOUGH_INFO: the verifier did not record the exact Hopper version. ### Target and artifact context A copied Digital Color Meter application, with `Contents/Info.plist` and a universal Mach-O executable, selected arm64 for native analysis. Its symlink alias lacks the `.app` suffix. Two identical JavaScript directories contain a package manifest and two CommonJS files; neither contains application-bundle metadata. ### Interface CLI ### Earliest failure stage Request parsing or validation ### Relevant output or evidence The independent verifier captured these reduced built-CLI results. Statistics come from `normalized_result.statistics`. ```text analyze bundle-alias: exit 0; operation=analyze_javascript_application subject.name=Fixture.app; subject.format=directory relevant_files=0; parsed_javascript_files=0 analyze Fixture.app: exit 0; operation=binary_overview subject.name=Digital Color Meter subject.format=mach-o-universal; subject.architecture=arm64 analyze web.app: exit 1; code=target_unavailable app Info.plist is missing or no supported bundle layout was found analyze-javascript-application web.app: exit 0; operation=analyze_javascript_application relevant_files=3; parsed_javascript_files=2 analyze web: exit 0; operation=analyze_javascript_application relevant_files=3; parsed_javascript_files=2 analyze bundle-alias --provider auto: exit 0; operation=binary_overview entire subject matches the real-path native control ``` The verifier asserted equality of the native subjects, including executable digest, and equality of the JavaScript artifact digests. The failing alias result retained the selected alias in `parameters.input_path` and used the resolved bundle as its subject identity. ### Typed outcome or recovery expected `analyze bundle-alias` should return `binary_overview` for the same executable digest, format, and architecture as the real-path control. `analyze web.app` should return static JavaScript Evidence with two parsed files, matching the dedicated command and identical plain directory. Preserve applicable caller-selected input facts and documented provider/snapshot overrides. ### Analysis or suspected cause Source-derived reasoning: `src/cli/coreBinaryCommands.ts:79-133` reaches `routesToJavaScriptAnalysis` and `isJavaScriptApplicationPath` at lines 217-247. The predicate checks the caller's `.app` suffix before `stat` follows the symlink. This classifies the alias as an ordinary directory and the plain JavaScript `.app` directory as a bundle. Native admission subsequently resolves the canonical path in `src/application/BinaryTargetResolver.ts:87-98` and checks bundle metadata through `src/application/AppBundleExecutable.ts:60-90`. The upstream re-check found the same predicate on `origin/main` at `080c0e2b2b82a7d9394b59d3d86630d9d85346a5`. Later changes to the cited files concern output filters, IL2CPP, and Mach-O headers, rather than this routing decision. This is a source comparison; the runtime reproduction above is on the stated baseline. ### Additional context This report was prepared with AI assistance and independently reproduced. It combines the complementary outcomes of one artifact-classification decision. Related closed report #3321 and merged PR #3511 covered trailing `/` and `/.` spellings. Their suffix normalization remains present; the alias and non-bundle `.app` cases here remain outside that fix. Closed report #5258 concerned preserving selected paths in JavaScript Evidence, rather than choosing the analysis workflow.
Author
Owner

@matbrgz commented on GitHub (Oct 20, 2026):

Cross-referencing with canonical issue #5589 ([Bug] Resource inspection rejects app bundles without CFBundleExecutable). Both address macOS application bundle resolution, workflow routing, and distinguishing genuine .app packages from JavaScript folders or non-executable bundles in rea analyze. Cataloged under Cluster BG in consolidation tracker #4330.

<!-- gh-comment-id:6295987838 --> @matbrgz commented on GitHub (Oct 20, 2026): Cross-referencing with canonical issue #5589 (`[Bug] Resource inspection rejects app bundles without CFBundleExecutable`). Both address macOS application bundle resolution, workflow routing, and distinguishing genuine `.app` packages from JavaScript folders or non-executable bundles in `rea analyze`. Cataloged under Cluster BG in consolidation tracker #4330.
Author
Owner

@coygeek commented on GitHub (Oct 20, 2026):

Another trigger for this routing contract is a regular ASAR file selected through an .app symlink: alias.app -> app.asar. It is not a bundle directory. Generic analyze enters native provider selection and fails, while the real ASAR path and the dedicated JavaScript command both succeed.

Reproduced through the built CLI on REA 6.7.0 at 9d8e7803326a382cbbb3ffdb900f5e93e5442d68, Node.js v26.12.0, macOS 27.0.1 arm64. The submitter reran all three commands once. A fetch and source comparison against origin/main at 52c84f6f58fa3cc7b39326654c6d3f261f957957 found no changes to the cited routing files or contract documentation. This main check is a source comparison, not a runtime run on that revision.

Run from the source-checkout root with locked dependencies and the CLI already built:

work_dir="$(mktemp -d)"
mkdir -p "$work_dir/app" "$work_dir/home" "$work_dir/cfg" "$work_dir/data" "$work_dir/cache" "$work_dir/state" "$work_dir/temp"
printf '{"name":"asar-fixture","version":"1.0.0","main":"index.js"}\n' > "$work_dir/app/package.json"
printf 'const value = require("./lib.js");\nmodule.exports = value;\n' > "$work_dir/app/index.js"
printf 'module.exports = 42;\n' > "$work_dir/app/lib.js"
node_modules/.bin/asar pack "$work_dir/app" "$work_dir/app.asar"
ln -s app.asar "$work_dir/alias.app"
run_rea() {
  env -i PATH="$PATH" HOME="$work_dir/home" XDG_CONFIG_HOME="$work_dir/cfg" \
    XDG_DATA_HOME="$work_dir/data" XDG_CACHE_HOME="$work_dir/cache" \
    XDG_STATE_HOME="$work_dir/state" TMPDIR="$work_dir/temp" REA_LOG_LEVEL=silent \
    node scripts/rea.mjs "$@" --json
}
run_rea analyze "$work_dir/app.asar" > "$work_dir/real.json" 2> "$work_dir/real.stderr"
printf 'real exit=%s\n' "$?"
run_rea analyze "$work_dir/alias.app" > "$work_dir/alias.json" 2> "$work_dir/alias.stderr"
printf 'alias exit=%s\n' "$?"
run_rea analyze-javascript-application "$work_dir/alias.app" > "$work_dir/dedicated.json" 2> "$work_dir/dedicated.stderr"
printf 'dedicated exit=%s\n' "$?"
jq '{operation, subject: {name: .subject.name, format: .subject.format}, statistics: .normalized_result.statistics}' "$work_dir/real.json" "$work_dir/dedicated.json"
jq '{code, category, operation: .details.operation, selection_reason: .details.selection_reason}' "$work_dir/alias.json"

Observed results:

  • analyze app.asar: exit 0, operation=analyze_javascript_application, subject.format=asar, three relevant files and two parsed JavaScript files.
  • analyze alias.app: exit 1, code=capability_unavailable, category=unsupported_provider, details.operation=read_binary_inventory_summary, details.selection_reason=target_unsupported.
  • analyze-javascript-application alias.app: exit 0. Assertions confirmed that its entire subject and normalized_result equal the real-path generic result, with the alias retained in parameters.input_path.

No routing overrides were supplied, and no target application or deep provider was launched. Both successful commands provide workarounds for this fixture.

Source-derived reasoning: src/cli/coreBinaryCommands.ts:235-247 tests the selected .asar/.app spelling before resolving the artifact. The resolved ASAR therefore reaches native admission after the alias fails the .asar check. The static ASAR route and selected-versus-resolved identity contract are documented in docs/javascript-artifact-reconstruction.md:23-27,53-58.

Please include this regular-file case in the restoration checks for #5595. Generic analysis through the alias should return the same static JavaScript subject and normalized result as the real ASAR path while retaining the selected alias. Open PR #5602 addresses directory classification; its current diff still checks the selected .asar suffix and rejects other regular files before bundle inspection. That is a source observation, not a runtime test of the PR. Prepared with AI assistance; the draft also had independent runtime verification.

<!-- gh-comment-id:6303441559 --> @coygeek commented on GitHub (Oct 20, 2026): Another trigger for this routing contract is a regular ASAR file selected through an `.app` symlink: `alias.app -> app.asar`. It is not a bundle directory. Generic `analyze` enters native provider selection and fails, while the real ASAR path and the dedicated JavaScript command both succeed. Reproduced through the built CLI on REA 6.7.0 at `9d8e7803326a382cbbb3ffdb900f5e93e5442d68`, Node.js v26.12.0, macOS 27.0.1 arm64. The submitter reran all three commands once. A fetch and source comparison against `origin/main` at `52c84f6f58fa3cc7b39326654c6d3f261f957957` found no changes to the cited routing files or contract documentation. This main check is a source comparison, not a runtime run on that revision. Run from the source-checkout root with locked dependencies and the CLI already built: ```sh work_dir="$(mktemp -d)" mkdir -p "$work_dir/app" "$work_dir/home" "$work_dir/cfg" "$work_dir/data" "$work_dir/cache" "$work_dir/state" "$work_dir/temp" printf '{"name":"asar-fixture","version":"1.0.0","main":"index.js"}\n' > "$work_dir/app/package.json" printf 'const value = require("./lib.js");\nmodule.exports = value;\n' > "$work_dir/app/index.js" printf 'module.exports = 42;\n' > "$work_dir/app/lib.js" node_modules/.bin/asar pack "$work_dir/app" "$work_dir/app.asar" ln -s app.asar "$work_dir/alias.app" run_rea() { env -i PATH="$PATH" HOME="$work_dir/home" XDG_CONFIG_HOME="$work_dir/cfg" \ XDG_DATA_HOME="$work_dir/data" XDG_CACHE_HOME="$work_dir/cache" \ XDG_STATE_HOME="$work_dir/state" TMPDIR="$work_dir/temp" REA_LOG_LEVEL=silent \ node scripts/rea.mjs "$@" --json } run_rea analyze "$work_dir/app.asar" > "$work_dir/real.json" 2> "$work_dir/real.stderr" printf 'real exit=%s\n' "$?" run_rea analyze "$work_dir/alias.app" > "$work_dir/alias.json" 2> "$work_dir/alias.stderr" printf 'alias exit=%s\n' "$?" run_rea analyze-javascript-application "$work_dir/alias.app" > "$work_dir/dedicated.json" 2> "$work_dir/dedicated.stderr" printf 'dedicated exit=%s\n' "$?" jq '{operation, subject: {name: .subject.name, format: .subject.format}, statistics: .normalized_result.statistics}' "$work_dir/real.json" "$work_dir/dedicated.json" jq '{code, category, operation: .details.operation, selection_reason: .details.selection_reason}' "$work_dir/alias.json" ``` Observed results: - `analyze app.asar`: exit 0, `operation=analyze_javascript_application`, `subject.format=asar`, three relevant files and two parsed JavaScript files. - `analyze alias.app`: exit 1, `code=capability_unavailable`, `category=unsupported_provider`, `details.operation=read_binary_inventory_summary`, `details.selection_reason=target_unsupported`. - `analyze-javascript-application alias.app`: exit 0. Assertions confirmed that its entire `subject` and `normalized_result` equal the real-path generic result, with the alias retained in `parameters.input_path`. No routing overrides were supplied, and no target application or deep provider was launched. Both successful commands provide workarounds for this fixture. Source-derived reasoning: `src/cli/coreBinaryCommands.ts:235-247` tests the selected `.asar`/`.app` spelling before resolving the artifact. The resolved ASAR therefore reaches native admission after the alias fails the `.asar` check. The static ASAR route and selected-versus-resolved identity contract are documented in `docs/javascript-artifact-reconstruction.md:23-27,53-58`. Please include this regular-file case in the restoration checks for #5595. Generic analysis through the alias should return the same static JavaScript subject and normalized result as the real ASAR path while retaining the selected alias. Open PR #5602 addresses directory classification; its current diff still checks the selected `.asar` suffix and rejects other regular files before bundle inspection. That is a source observation, not a runtime test of the PR. Prepared with AI assistance; the draft also had independent runtime verification.
Author
Owner

@coygeek commented on GitHub (Oct 24, 2026):

Checked the reported fix on main at d87e73f2db.

The generic router now realpaths the caller selection before testing ASAR type and checks bundle metadata for directories instead of using the caller .app suffix. A bundle alias enters native admission, a JS-only web.app remains static, and alias.app pointing to canonical app.asar passes the canonical ASAR check. The regression covers bundle path spellings/symlink alias and plain JS .app, requiring native admission for the former and static success for the latter.

Implementation: coreBinaryCommands.ts, analyzeAppBundlePathCli.test.ts.

The relevant regression checks in analyzeAppBundlePathCli.test.ts passed in the focused test run on this revision. This closure is based on the current source and those checks; provider fixtures do not establish a real-engine run. Closing as completed on main.

<!-- gh-comment-id:6380776379 --> @coygeek commented on GitHub (Oct 24, 2026): Checked the reported fix on `main` at d87e73f2db50be72d33a4b3c7199af35518b441c. The generic router now realpaths the caller selection before testing ASAR type and checks bundle metadata for directories instead of using the caller .app suffix. A bundle alias enters native admission, a JS-only web.app remains static, and alias.app pointing to canonical app.asar passes the canonical ASAR check. The regression covers bundle path spellings/symlink alias and plain JS .app, requiring native admission for the former and static success for the latter. Implementation: [coreBinaryCommands.ts](https://github.com/morluto/rea/blob/d87e73f2db50be72d33a4b3c7199af35518b441c/src/cli/coreBinaryCommands.ts#L269), [analyzeAppBundlePathCli.test.ts](https://github.com/morluto/rea/blob/d87e73f2db50be72d33a4b3c7199af35518b441c/tests/boundary/cli/analyzeAppBundlePathCli.test.ts#L38). The relevant regression checks in [analyzeAppBundlePathCli.test.ts](https://github.com/morluto/rea/blob/d87e73f2db50be72d33a4b3c7199af35518b441c/tests/boundary/cli/analyzeAppBundlePathCli.test.ts) passed in the focused test run on this revision. This closure is based on the current source and those checks; provider fixtures do not establish a real-engine run. Closing as completed on main.
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#3395
No description provided.