fix(mobile): dictée validée sur iPhone physique — 2 bugs réels corrigés

setAudioModeAsync({allowsRecording:true}) manquant avant recorder.record()
(RecordingDisabledException iOS) ; EXPO_USE_PRECOMPILED_MODULES/
RCT_USE_PREBUILT_RNCORE jamais persistés dans .env (documentés dans ADR-005
mais seulement exportés en shell ad-hoc) — corrigé pour que tout rebuild
depuis zéro ne reproduise plus le crash dyld. Recette terrain complète
vérifiée : dictée → note → clôture → réindexation → recherche sémantique.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
pr-daaif
2026-08-01 22:09:04 +01:00
parent 59ed6f3952
commit 4af3f5668a
5 changed files with 68 additions and 5 deletions

View File

@@ -80,6 +80,18 @@
- Implémentée et vérifiée le 22/07/2026 : transcription réelle (français, voix de
synthèse) juste et rapide en local, bout en bout via l'API NestJS, et dans l'image
Docker de production construite pour l'occasion (modèle embarqué, aucun téléchargement
au démarrage). **Reste** : le test tactile sur iPhone physique (bouton dicter, permission
micro) n'a pas pu se jouer — blocage USB persistant malgré câble/port/redémarrage
multiples, reporté comme la recette Android (attend un accès matériel qui fonctionne).
au démarrage). Le test tactile sur iPhone physique n'avait pas pu se jouer ce jour-là
(blocage USB), reporté.
- **Recette terrain sur iPhone physique complétée le 01/08/2026** : micro, dictée réelle,
transcription fidèle, sauvegarde dans le bilan, clôture, puis retrouvée par la recherche
sémantique après réindexation — la chaîne complète (D5) est validée sur vrai matériel.
Deux bugs réels trouvés et corrigés en route :
1. `expo-audio` sur iOS refuse `recorder.record()` tant que la session audio n'a pas
été explicitement autorisée à enregistrer — `RecordingDisabledException`, corrigée
par un appel à `setAudioModeAsync({ allowsRecording: true })` avant l'enregistrement
(et remis à `false` après, par hygiène — le micro ne reste pas « armé »).
2. Le contournement des modules Expo/RN précompilés (`EXPO_USE_PRECOMPILED_MODULES=0`,
`RCT_USE_PREBUILT_RNCORE=0` — ADR-005) n'avait **jamais été rendu permanent** dans
`apps/mobile/.env`, contrairement au correctif FormData voisin : une reconstruction
ultérieure sans ces variables aurait reproduit le crash au lancement déjà documenté.
Désormais committé aux côtés de `EXPO_PUBLIC_USE_RN_FETCH`.