@radhya/mach 2.0.40 → 2.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -145,13 +145,21 @@ mach ota rollback --update-id <updateId>
145
145
  mach ota promote --update-id <updateId>
146
146
  ```
147
147
 
148
- For Expo apps, `mach ota setup` writes `ota` config and wires `@radhya/mach/expo-plugin`. The plugin configures Expo Updates from `mach.config.json`, so updates are served from Mach instead of EAS Update. Install `expo-updates` before creating native builds that should receive OTA updates.
148
+ `mach ota setup` uses the open-source `expo-updates` runtime for both Expo and bare React Native apps while keeping publishing, manifests, assets, channels, metrics, and rollback on Mach. It writes the `ota` config, installs the compatible runtime when approved, and wires `@radhya/mach/expo-plugin`. Updates are served from Mach instead of EAS Update.
149
+
150
+ For bare React Native, setup first installs Expo Modules when needed, then uses the installed `expo-updates configuration:syncnative` tool to update the committed Android and iOS projects. It does not run Expo prebuild or replace the native folders. Run setup from a clean branch so you can review the package and native integration changes.
151
+
152
+ Create and install one new native build after the initial setup. Previously installed binaries keep the update URL embedded when they were built and cannot be retrofitted by an OTA publish.
153
+
154
+ With the default `ON_LOAD` behavior, the first cold launch checks for and downloads a compatible update. The next cold launch runs it. Mach records unique downloaded, applied, and failed devices automatically from Expo Updates requests; app code does not call a metrics endpoint and never receives storage credentials.
149
155
 
150
156
  Command flags always win over config values. For example, `mach ota publish --channel staging --runtime-version 1.2.0` overrides `ota.channel` and `ota.runtimeVersion`.
151
157
 
152
158
  Runtime version is the OTA compatibility boundary. Mach resolves Expo-style `appVersion`, `sdkVersion`, and `nativeVersion` policies, stores the resolved runtime on each build, and serves OTA updates only to matching platform/channel/runtime combinations.
153
159
 
154
- Vanilla React Native uses the same command surface. The native OTA client and automatic native patching are intentionally guarded until the Mach RN client package is ready.
160
+ Bare React Native uses the same Expo Updates protocol and the same Mach endpoint as Expo. `mach-react-native` remains reserved for a future Mach-owned native runtime and cannot currently be selected for publishing.
161
+
162
+ See [OTA Updates](docs/ota.md) for setup behavior, bare React Native requirements, runtime matching, and validation.
155
163
 
156
164
  ## Deep Links
157
165