mirror of
https://github.com/czcdr/dsh-plugin-rea.git
synced 2026-11-07 10:25:59 -10:00
Two contracts this repository already states but the code did not keep, both found by running the bundle on a real machine: - manifest.components.androidPlatformTools declares optional: true (without a device these tools simply report no devices), but setup.mjs never read the field, so an unreachable dl.google.com - the only Google-hosted component - failed the whole run on a machine where everything REA needs had provisioned fine. An optional component's failure is now reported as such, kept out of the exit code, and left unrecorded so the next run retries it; a component that another component requires is never treated as optional. - manifest.components.node.probe says the reuse path must reject an incompatible runtime, but adoption was fileExists-only: a machine whose PATH Node is 20 recorded it in bundle.json, and the failure surfaced much later inside REA. Every candidate (REA_BUNDLE_NODE and each PATH hit, not just the first) now has to pass that probe; one that cannot even be run is rejected with its reason. README: apktool's real Windows gate (upstream execFile's the launcher without a shell, so the official .bat cannot work) and the fact that the CLI refuses to manage the Electron app's desktop profile. Tests: 21 (was 17); Windows 21/21 and WSL 21/21. Reverse-verified - disabling the optional accounting reddens that test, disabling the reuse check reddens the other two.