v1.0.0-rc.22
Pre-release
Pre-release
·
53 commits
to main
since this release
New
- Recycle compatible Android emulators across worktrees. Adoption clears app
data, retains matching APKs to skip installation, and recovers from signer or
version conflicts. The default pool holds three emulators.
ea0292b1 - Wait for optional
[stim:readiness] pendingandreadydevice logs during
launch, and report whether readiness completed, timed out, or failed.
689ad047
Removed (breaking)
- Remove the legacy
caches.injectMetroStoremachine setting. Use
optimizations.metroSharedCacheinstead.
2c585854
Fixes
- Wait for Metro to deliver the bundle before starting launch-stability checks.
a4832aa3 - Align Android device-log timestamps with the host clock so launch filters
include the current app's logs.
dd0f2c5e - Resolve dynamic imports from nested modules when bare Metro uses a hoisted
metro-runtimepackage.
1fe471f5 - Restart a stuck Android app when following the unverified-launch remedy.
6230e4aa
Docs
- Document build optimizations, Android CAS, emulator recycling, and optional
readiness reporting. Refresh the website and publish activity-timed Android
and iOS launch-error benchmarks.
2c585854,
1f9fc1e8,
c2f848b4
Migration notes
- Replace
caches.injectMetroStore: falsewith
optimizations.metroSharedCache: falseto keep shared Metro caching disabled. - Set
pool.androidParkedMaxto0when a fresh emulator is required.
Recycling preserves system apps, shared storage, accounts and device settings;
app data is cleared at adoption. Older AVDs without recorded creation settings
are deleted when removed.
QA
- Full preflight: formatting, lint, build, typecheck, knip, 3,737 unit tests,
66 end-to-end tests, Node 20.19.4 runtime checks, website build, and all five
packed tarballs passed. - Native loop and cache suites passed for bare React Native and Expo on both
iOS and Android. Both device-pool suites passed. - Manual QA covered readiness success, timeout and error; nested dynamic
imports; healthy, broken and repaired logs; UI interactions; and Trailhead
on both platforms, including native cache reuse across worktrees. - Android release QA verified current JS in the installed, signed and aligned
APK after adopting an emulator with a differently signed app. - A newly booted Android emulator can initially return
unverified. Follow
the printed restart remedy and verify the UI. The recovery instruction was
corrected during this QA pass. iOS may require the printed UI Reload
fallback when Metro cannot identify its peer. Earlier client errors remain
visible until the next launch, as documented. - Authenticated remote providers, physical-device signing, Android flavors,
and iOS release swapping were omitted because those implementations did not
change. Shared launch and lease behavior has simulator/emulator and unit
coverage.