fix(app): Konversationsmodus auch im Hintergrund, wenn Background-Wake an
Diagnose aus dem App-State-Trail (Bridge-Log): nach jeder gesprochenen Antwort rief die App endConversation(bg || !converse) — der bg-Term (AppState != active) erzwang "zurueck aufs Wake-Word", sobald die App im Hintergrund war. Das war vor dem Background-Wake-Feature Absicht (kein Multi-Turn im Hintergrund). Jetzt, mit aktivem Background-Wake, killt genau das den Konversationsmodus im Hintergrund — im Vordergrund lief er weiter (daher "kommt beim Vorholen wieder"). converse kam korrekt als true vom Brain (keine Marker, Default true); die App warf es im Hintergrund weg. Fix: bg erzwingt "armed" nur noch, wenn Background-Wake AUS ist (isBgWakeEnabled()). Bei aktivem Background-Wake bleibt der Konversationsmodus auch im Hintergrund offen — der User hat das Zuhoeren ja bewusst eingeschaltet. Vordergrund-Verhalten unveraendert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1690,8 +1690,12 @@ const ChatScreen: React.FC = () => {
|
||||
// Im Hintergrund gibt's kein Multi-Turn → direkt re-armen (skipPassive).
|
||||
// converse=false (Skill-/Einzelantwort, z.B. 'was laeuft gerade') → auch
|
||||
// ohne 30s: vorlesen + direkt zurueck aufs Wake-Word.
|
||||
// Im Hintergrund normalerweise direkt re-armen (kein Multi-Turn) — ABER
|
||||
// wenn Hintergrund-Wake bewusst AN ist, will der User auch im Hintergrund
|
||||
// ein Gespraech fuehren, also den Konversationsmodus offen halten.
|
||||
const bg = AppState.currentState !== 'active';
|
||||
wakeWordService.endConversation(bg || !converseRef.current).catch(() => {});
|
||||
const bgForcesArmed = bg && !wakeWordService.isBgWakeEnabled();
|
||||
wakeWordService.endConversation(bgForcesArmed || !converseRef.current).catch(() => {});
|
||||
});
|
||||
return () => unsubPlayback();
|
||||
}, []);
|
||||
|
||||
@@ -348,6 +348,12 @@ class WakeWordService {
|
||||
console.log('[WakeWord] Hintergrund-Wake = %s', enabled);
|
||||
}
|
||||
|
||||
/** Ist Hintergrund-Wake an? Steuert u.a. ob der Konversationsmodus auch im
|
||||
* Hintergrund weiterlaeuft (sonst: im Hintergrund direkt zurueck aufs Wake-Word). */
|
||||
isBgWakeEnabled(): boolean {
|
||||
return this.bgWakeEnabled;
|
||||
}
|
||||
|
||||
/** App im Vordergrund: Detections wieder freigeben, plus kurzer Cooldown
|
||||
* als Schutz gegen den AudioFocus-/AudioTrack-Spike direkt nach dem Resume.
|
||||
* 1s statt 3s — 3s hat sich "traege" angefuehlt (Trigger direkt nach dem
|
||||
|
||||
Reference in New Issue
Block a user