0.29.0
Cart recovery from a stale customer token, an instant-code store flag, Android external links that always reach the browser, and a subscription price preview that matches what the shopper will pay.
No native changes
Every change here is JavaScript. No native module was added or altered, so
apps pick this up with a build at 0.29.0 — no
store release is required for the platform itself.
Breaking
None. No public export was removed, and the one interface whose shape moved — the cart provider's error result — only gained fields.
New
Instant code store flag — StoreFeatureFlags.ENABLE_INSTANT_CODE gates instant code per store, so a brand can be switched onto host-loaded blocks without a build. Remote blocks are now called instant code throughout the tooling and its docs; this release only renames the prose and the build-tools help text, no API changed.
Fixed
-
Carts no longer dead-end on a stale customer token. Signing in on the website invalidates the Storefront token the app is holding, and
cartCreatethen fails with "Customer is invalid" — a Storefront token has no refresh flow, so every add-to-cart kept failing until the shopper reinstalled or logged out. The cart now detects that specificcustomerAccessTokenuser error, re-validates the session (which clears it), and retries the create as a guest. BothShopifyCartProviderandShopifyCustomerCartProvideralso surfacecartCreateuser errors as a real error result — codeSHOPIFY_API_ERROR, with the rawuserErrorsattached — instead of returning an empty success. -
External links open the browser on Android.
httpslinks marked external are routed through thegooglechrome://navigatescheme, with a fall back to the plain URL when Chrome is absent, so an installed app can no longer intercept them and swallow the tap.tel:,mailto:andsms:are deliberately left alone. -
The wishlist toast fires on tap. Add and remove now show their confirmation immediately rather than waiting on the network round trip, and a failed write replaces it with the error toast. Tapping either still routes to the wishlist screen.
-
Subscription modify-form price preview. The preview now scales the line's real unit price by the ratio between the current and the selected variant, instead of reading a selling-plan price adjustment that often did not match the plan being chosen, and renders through
PriceTextso currency formatting matches the rest of the app. An out-of-stock variant shows a banner and hides the preview rather than quoting a price for something that cannot be bought.
Upgrading
Move every @gauntlet/* entry to 0.29.0 together with the Appbrew-published @app-brew/* packages, which version with the platform, then rebuild. No pod install or Gradle change is needed for this release. Full workflow: Upgrading @gauntlet packages.

