7 lines
1.9 KiB
Markdown
7 lines
1.9 KiB
Markdown
---
|
|
title: Déclenchement proactif câblé, et M3 fermé avec lui
|
|
---
|
|
<span>Quatre branchements : la garde, le cycle de vie, les points GPS, le réglage visiteur. APK <code>dev</code> vert. ⚠️ <strong>La garde recommandée par le plan aurait coûté de l'argent</strong> : <code>_trigger</code> appelle le LLM d'abord et ne parle qu'ensuite via <code>activeVoiceOrchestrator?.ttsEngine</code>, dont le <code>?.</code> avale le cas « aucun mode vocal actif ». Avec <code>proactiveModeEnabled</code> seul, un visiteur traversant une zone avec l'app en poche et le vocal éteint consommait des jetons Gemini facturés au client pour une phrase que personne n'entend. La garde retenue interroge l'orchestrateur : la vraie condition n'est pas « quel matériel » mais « y a-t-il quelqu'un pour écouter ».</span>
|
|
<span>⛔ <strong>Il n'y avait pas de troisième mode à inventer</strong> : <code>VoiceMode.voiceOnly</code> existe déjà et construit le <strong>même</strong> orchestrateur que le mode lunettes — l'audioguide sur téléphone était là. Le proactif est donc un <strong>sous-réglage</strong>, pas une tuile : l'opposer aux deux autres forcerait à choisir entre « je pose des questions » et « on me parle ». <code>glassesEnabled</code> est <strong>supprimé</strong>, ses trois usages étaient morts — dont une pastille « Lunettes / Déconnecté » que personne n'avait jamais vue.</span>
|
|
<span><strong>M3</strong> : <code>meterZoneGPS</code> devient le rayon par section, la constante ne servant plus que de défaut. ⚠️ Deux pièges de format vérifiés : <code>currentSections</code> porte des <strong>maps JSON brutes</strong>, pas des DTO, et <code>latitude</code>/<code>longitude</code> y sont des <strong>chaînes</strong>. ⚠️ <strong>Reste un bloquant avant d'activer le mode</strong> — voir la carte « Ce que demandent vos visiteurs » en Bugs ouverts.</span>
|