mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
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:
@@ -4,6 +4,39 @@ Trace chronologique des sessions (la plus récente en premier). Le **playbook**
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-01 — Pr. Daaif (+ Claude) — Dictée validée sur iPhone physique (ADR-004 §5)
|
||||
|
||||
**Actions**
|
||||
|
||||
- Reprise du reste laissé le 22/07 : le test tactile de la dictée sur iPhone, alors bloqué par une connexion
|
||||
USB qui ne se rétablissait pas. Diagnostic cette fois : `system_profiler` (l'outil utilisé pour vérifier la
|
||||
détection USB) était lui-même en panne et renvoyait un faux négatif silencieux — `ioreg` a révélé que
|
||||
l'iPhone était en réalité détecté. Le vrai câble/port n'a jamais été le problème.
|
||||
- Une fois l'app reconstruite (certificat gratuit expiré après plus d'une semaine — régénéré via le pipeline
|
||||
officiel `expo run:ios`, jamais par un contournement manuel), **deux bugs réels trouvés et corrigés** :
|
||||
1. `expo-audio` sur iOS refuse d'enregistrer sans un appel explicite à `setAudioModeAsync({ allowsRecording:
|
||||
true })` avant `recorder.record()` — absent du code initial, jamais détecté hors d'un vrai appareil.
|
||||
2. Le correctif des modules Expo/RN précompilés (ADR-005, `EXPO_USE_PRECOMPILED_MODULES=0` /
|
||||
`RCT_USE_PREBUILT_RNCORE=0`) n'avait **jamais été committé** dans `apps/mobile/.env`, contrairement au
|
||||
correctif FormData voisin déjà permanent — un vrai trou qui aurait refait planter l'app à la prochaine
|
||||
reconstruction depuis zéro. Corrigé : les deux variables vivent maintenant côte à côte dans `.env`.
|
||||
- **Recette réelle bout en bout** : micro → dictée d'une phrase → transcription fidèle (`faster-whisper` réel)
|
||||
→ relecture → sauvegarde dans le bilan → clôture de l'OT → réindexation du corpus → **le contenu dicté
|
||||
retrouvé par la recherche sémantique** (score 0,476). La boucle complète de l'idée d'origine (« cette
|
||||
transcription devrait alimenter le corpus ») est validée sur vrai matériel, vraie voix, vrai réseau.
|
||||
- Infra locale relancée depuis zéro après une semaine d'inactivité (Docker, conteneurs `siop2-*`, API,
|
||||
service IA) — occasion de vérifier que le redémarrage à froid fonctionne proprement.
|
||||
|
||||
**Décisions**
|
||||
|
||||
- Aucune — cette session referme un reste déjà décidé, sans nouvelle décision de conception.
|
||||
|
||||
**Prochaine étape** : recette Android sur appareil physique (toujours en attente d'un appareil) ; redéploiement
|
||||
Dokploy (`AI_SERVICE_TOKEN`) ; calibrage `AI_SEUIL_*` et qualité darija sur corpus SPELEV réel ; secret
|
||||
`DOKPLOY_WEBHOOK_URL`.
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-22 — Pr. Daaif (+ Claude) — Dictée implémentée : audio → transcription locale → corpus (ADR-004 §5)
|
||||
|
||||
**Actions**
|
||||
|
||||
Reference in New Issue
Block a user