Features
- app: add RNFBHandleMap for thread-safe handle registries (d28edd5)
- tests: make yarn tests:full multi-slot parallel e2e aware and deterministic (fc3d6a1)
Bug Fixes
- analytics, android: guard item conversion (e193527)
- analytics, ios: serialize session completion (cbda889)
- analytics, ios: stop transaction scan after match (642ed3e)
- analytics, web: preserve read-only navigator state (1f1ac12)
- analytics, web: preserve session lifetime (688775c)
- analytics, web: serialize queue processing (4a51f9e)
- analytics: enforce documented input limits (4c1eae9)
- analytics: preserve omitted consent settings (7110903)
- analytics: validate hashed conversion inputs (5cd67ec)
- app-check: use RNFBHandleMap for app-check listeners (b77e645)
- app, android: clear stale custom auth domains (ccde348)
- app, android: discard tasks posted to shut-down transactional executors (de98eaa)
- app, expo: add missing Firebase imports (7d6f19c)
- app, ios: clear stale custom auth domains (d747981)
- app: handle empty Android Firebase JSON (5c48832)
- app: isolate native routing keys (fd13a7a)
- app: make debug native proxies behavior-safe (6caff3c)
- app: parse data URL payloads completely (eb5d54e)
- app: preserve empty memory storage values (41ac6bc)
- app: preserve memidb event listeners (c8648a6)
- app: preserve web Promise contracts (36c586e)
- app: reject FileReader startup failures (08319ae)
- app: retain global logger configuration (23aeb7b)
- app: support arbitrary web storage keys (c2c9f42)
- app: support prototype-named apps (0ed7a0f)
- auth, ios: look up customAuthDomains with JS app name (9873f61)
- auth: [LOW] handle malformed action links (0961ccc)
- auth: use RNFBHandleMap for auth state and id-token listeners (a708e84)
- auth: use RNFBHandleMap for credential and MFA caches (bd891f5)
- ci: [MEDIUM] pin npm in privileged workflows (6eb27dc)
- ci: [MEDIUM] verify yeetd package checksum (1567795)
- database: use RNFBHandleMap for transaction and query maps (8adba4c)
- firestore, android: avoid Tasks.await wedging collection gets (718da09)
- firestore: clear terminate caches so a fresh instance can reconnect (8776b28)
- firestore: defer terminate cache eviction until shutdown completes (7f3c5be)
- firestore: restore namedQueryOnSnapshot completion callback (8932c1e)
- firestore: use RNFBHandleMap for snapshot and transaction maps (6f1f49c)
- functions: thread-safe Android streaming listener lifecycle (8b902e8)
- functions: use RNFBHandleMap for streaming listeners (8acd8bc)
- messaging, android: preserve stored JSON values (61fd558)
- messaging, android: preserve stored message integrity (1e18fdf)
- messaging, android: support disabled notification storage (afaba0b)
- messaging, android: use RNFBHandleMap for the notification map (5ff8825)
- messaging, ios: complete non-FCM notifications (f2697ab)
- messaging, ios: preserve existing FIRMessaging delegate (955509e)
- messaging, ios: preserve notification settings handler (325eddf)
- messaging, ios: run background task expiration cleanup (9348411)
- messaging: make FCM options optional (adcefc5)
- messaging: preserve registration state on failure (1a690e1)
- messaging: serialize array data values as JSON (9f27842)
- messaging: settle background notification work (77e71ff)
- messaging: update cached settings after native success (eb1a883)
- messaging: validate APNs token input (6442fb4)
- perf, android: use RNFBHandleMap for traces and http metrics (60b6e7d)
- remote-config: use RNFBHandleMap for config update handlers (f142bdb)
- storage: use RNFBHandleMap for pending tasks (acf77f1)