You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ignorer l'absence de moteur haptique au lieu de remonter une erreur #476
Constat de Paul en recette le 2026-10-15 (build preview EAS 858b93ac, Redmi Note 9) : chaque vibration de toast lève « Call to function 'ExpoHaptics.performHapticsAsync' has been rejected → A haptics engine is not available on this device ». L'erreur remonte à Sentry (issue WIDOO-MOBILE-W, 4 événements en 20 minutes : 09:01:08Z, 09:02:38Z, 09:10:50Z, 09:19:04Z).
Les vibrations sont centralisées dans apps/mobile/src/ui/haptics.ts (fonction haptic, livrée avec le toast par la PR #419 pour #387) : les promesses d'expo-haptics y sont lancées par void, sans catch, d'où un rejet non géré.
Comportement attendu
Tous les appels haptiques passent par une enveloppe qui intercepte le refus du moteur : l'absence de moteur haptique est ignorée silencieusement, ni erreur, ni rapport Sentry.
Le reste de l'action (toast, navigation) se déroule normalement.
Critères d'acceptation
Les appels expo-haptics (Android et iOS) sont enveloppés dans haptic ; aucun appel direct à expo-haptics ailleurs dans apps/mobile/src
Un refus du moteur haptique ne produit ni erreur non gérée, ni rapport Sentry
Test unitaire : un performAndroidHapticsAsync (et un appel iOS) rejeté ne remonte rien et ne lève rien
🔨 Démarrage — plan : une enveloppe vibrate dans apps/mobile/src/ui/haptics.ts qui intercepte le rejet de chaque appel expo-haptics (Android et iOS), et l'exception synchrone d'un module natif absent ; test Vitest qui simule le refus du moteur et vérifie l'absence de promesse non gérée et d'appel Sentry. Branche issue/476-haptics-rejection.
Recette sur appareil, déclarée par Paul en session le 2026-10-15 vers 13:40 (Paris), consignée par MANAGER. Build preview EAS 98b537be (main4b766c5), Redmi Note 9 (Android), API de staging. Paul : « tout est bon ».
Aucun nouvel événement Sentry : WIDOO-MOBILE-W sans événement depuis 4 h sur le Redmi Note 9 (sans moteur haptique).
Activity
PaulThiberville commentedon Oct 15, 2026
🔨 Démarrage — plan : une enveloppe
vibratedansapps/mobile/src/ui/haptics.tsqui intercepte le rejet de chaque appelexpo-haptics(Android et iOS), et l'exception synchrone d'un module natif absent ; test Vitest qui simule le refus du moteur et vérifie l'absence de promesse non gérée et d'appel Sentry. Brancheissue/476-haptics-rejection.PaulThiberville commentedon Oct 15, 2026
Recette sur appareil, déclarée par Paul en session le 2026-10-15 vers 13:40 (Paris), consignée par MANAGER. Build preview EAS
98b537be(main4b766c5), Redmi Note 9 (Android), API de staging. Paul : « tout est bon ».WIDOO-MOBILE-Wsans événement depuis 4 h sur le Redmi Note 9 (sans moteur haptique).hapticseule, tests) et ce constat.Status du Project : Terminés.