mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
fix: kiosk voice reliability — stopListening on exit, exitVoiceMode kiosk guard
- stopListening() called in both toggleKiosk exit and _onFsChange so mic stops when leaving kiosk (was staying live indefinitely) - exitVoiceMode() now returns early if kiosk-mode active so the 30-min idle timer and face-detection loop cannot kill the always-on mic
This commit is contained in:
@@ -1405,6 +1405,7 @@ function enterVoiceMode(source) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function exitVoiceMode() {
|
function exitVoiceMode() {
|
||||||
|
if (document.body.classList.contains('kiosk-mode')) return;
|
||||||
voiceMode = false;
|
voiceMode = false;
|
||||||
voiceMuted = false;
|
voiceMuted = false;
|
||||||
updateMicBtn();
|
updateMicBtn();
|
||||||
@@ -1794,6 +1795,7 @@ async function toggleKiosk() {
|
|||||||
if (ex) ex.call(document).catch(() => {});
|
if (ex) ex.call(document).catch(() => {});
|
||||||
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
|
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
|
||||||
document.body.classList.remove("kiosk-mode");
|
document.body.classList.remove("kiosk-mode");
|
||||||
|
if (typeof stopListening === "function") stopListening();
|
||||||
if (btn) { btn.textContent = "⧞ KIOSK"; btn.style.color = ""; }
|
if (btn) { btn.textContent = "⧞ KIOSK"; btn.style.color = ""; }
|
||||||
if (!isTablet()) document.body.classList.remove("tablet-mode");
|
if (!isTablet()) document.body.classList.remove("tablet-mode");
|
||||||
}
|
}
|
||||||
@@ -1810,6 +1812,7 @@ function _onFsChange() {
|
|||||||
if (!document.fullscreenElement && !document.webkitFullscreenElement) {
|
if (!document.fullscreenElement && !document.webkitFullscreenElement) {
|
||||||
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
|
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
|
||||||
document.body.classList.remove("kiosk-mode");
|
document.body.classList.remove("kiosk-mode");
|
||||||
|
if (typeof stopListening === "function") stopListening();
|
||||||
if (btn) { btn.textContent = "⧞ KIOSK"; btn.style.color = ""; }
|
if (btn) { btn.textContent = "⧞ KIOSK"; btn.style.color = ""; }
|
||||||
if (!isTablet()) document.body.classList.remove("tablet-mode");
|
if (!isTablet()) document.body.classList.remove("tablet-mode");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -426,12 +426,12 @@
|
|||||||
style="position:fixed;top:-9999px;left:-9999px;width:320px;height:240px"></video>
|
style="position:fixed;top:-9999px;left:-9999px;width:320px;height:240px"></video>
|
||||||
<script data-cfasync="false" src="https://cdn.jsdelivr.net/npm/face-api.js@0.22.2/dist/face-api.min.js" crossorigin="anonymous"></script>
|
<script data-cfasync="false" src="https://cdn.jsdelivr.net/npm/face-api.js@0.22.2/dist/face-api.min.js" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script data-cfasync="false" src="assets/js/jarvis-effects.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/jarvis-effects.js?v=20260621k"></script>
|
||||||
<script data-cfasync="false" src="assets/js/jarvis-overlays.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/jarvis-overlays.js?v=20260621k"></script>
|
||||||
<script data-cfasync="false" src="assets/js/jarvis-app.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/jarvis-app.js?v=20260621k"></script>
|
||||||
<script data-cfasync="false" src="assets/js/panels/jarvis-arc.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/panels/jarvis-arc.js?v=20260621k"></script>
|
||||||
<script data-cfasync="false" src="assets/js/panels/jarvis-agents.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/panels/jarvis-agents.js?v=20260621k"></script>
|
||||||
<script data-cfasync="false" src="assets/js/panels/jarvis-assistant.js?v=20260621j"></script>
|
<script data-cfasync="false" src="assets/js/panels/jarvis-assistant.js?v=20260621k"></script>
|
||||||
|
|
||||||
<!-- VISION LIGHTBOX -->
|
<!-- VISION LIGHTBOX -->
|
||||||
<div id="vision-lightbox">
|
<div id="vision-lightbox">
|
||||||
|
|||||||
Reference in New Issue
Block a user