fix(ui): Notruf-Button dezent in den Header; Log live & durchscrollend
P1: Der prominente rote Footer-Banner war erdrückend ("erinnert ständig an
Not"). Ersatz: kleiner, quadratischer, dezenter 🆘-Button links neben der
Sprachauswahl im Header.
P4: journalctl -f wird via `stdbuf -oL` zeilengepuffert — neue Log-Zeilen
kommen jetzt sofort (statt blockweise) im Browser an und scrollen durch.
app.js-Cache-Bust auf v=43.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3389f75af0
commit
40291d318b
2 changed files with 6 additions and 7 deletions
|
|
@ -383,7 +383,10 @@ async def admin_log_ws(websocket: WebSocket, key: str | None = None):
|
|||
except Exception:
|
||||
pass
|
||||
|
||||
# stdbuf -oL: zeilenweise Pufferung erzwingen, damit neue Log-Zeilen sofort
|
||||
# (nicht erst blockweise) im Browser ankommen und durchscrollen.
|
||||
proc = await asyncio.create_subprocess_exec(
|
||||
"stdbuf", "-oL", "-eL",
|
||||
"journalctl", "-f", "-u", "voice-assistant.service",
|
||||
"-n", "100", "--no-pager", "-o", "short",
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
|
|
|
|||
|
|
@ -219,6 +219,8 @@
|
|||
<header class="shrink-0 h-14 flex items-center gap-2 px-3 border-b border-slate-200 dark:border-slate-700 bg-white/80 dark:bg-slate-800/80 backdrop-blur">
|
||||
<img src="/favicon.svg?v=1" alt="" class="w-7 h-7 shrink-0" />
|
||||
<h1 class="flex-1 truncate font-semibold text-base">Voice Assistant</h1>
|
||||
<button type="button" id="emergency-btn" title="Hilfe rufen" aria-label="Hilfe rufen"
|
||||
class="shrink-0 h-9 w-9 grid place-items-center rounded-lg border border-red-300 dark:border-red-800 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors text-base">🆘</button>
|
||||
<select id="lang-sel" title="Sprache"
|
||||
class="text-sm rounded-lg border border-slate-300 dark:border-slate-600 bg-transparent px-2 py-1.5">
|
||||
<option value="de">🇩🇪 DE</option>
|
||||
|
|
@ -339,12 +341,6 @@
|
|||
<main id="messages" class="flex-1 overflow-y-auto px-4 py-4 space-y-3 w-full max-w-3xl mx-auto"></main>
|
||||
|
||||
<footer class="shrink-0 border-t border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 px-3 pt-3 pb-[calc(env(safe-area-inset-bottom)+0.6rem)]">
|
||||
<div class="w-full max-w-3xl mx-auto mb-2">
|
||||
<button type="button" id="emergency-btn"
|
||||
class="w-full rounded-xl bg-red-600 hover:bg-red-700 active:bg-red-800 text-white font-semibold py-3 text-base flex items-center justify-center gap-2 transition-colors">
|
||||
🆘 Hilfe rufen
|
||||
</button>
|
||||
</div>
|
||||
<form id="prompt-form" class="flex items-center gap-2 w-full max-w-3xl mx-auto">
|
||||
<button type="button" id="mic" title="Mikrofon" aria-label="Mikrofon"
|
||||
class="shrink-0 h-11 w-11 grid place-items-center rounded-full bg-emerald-600 text-white text-lg">🎤</button>
|
||||
|
|
@ -360,6 +356,6 @@
|
|||
<div id="status" class="w-full max-w-3xl mx-auto mt-1 min-h-[1rem] text-xs text-slate-500 dark:text-slate-400"></div>
|
||||
</footer>
|
||||
|
||||
<script src="/app.js?v=42"></script>
|
||||
<script src="/app.js?v=43"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue