diff --git a/routers/maintenance.py b/routers/maintenance.py
index 8c0be80..56f7155 100644
--- a/routers/maintenance.py
+++ b/routers/maintenance.py
@@ -65,7 +65,11 @@ async def stream_logs(websocket: WebSocket, service: str):
line = await process.stdout.readline()
if not line:
break
- await websocket.send_text(line.decode("utf-8", errors="replace"))
+ line_str = line.decode("utf-8", errors="replace")
+ # Filter spammy polls
+ if '"GET /running HTTP' in line_str or '"GET /api/' in line_str:
+ continue
+ await websocket.send_text(line_str)
except WebSocketDisconnect:
pass
finally:
diff --git a/static/js/core/ui.js b/static/js/core/ui.js
index c775c62..bb6f6f9 100644
--- a/static/js/core/ui.js
+++ b/static/js/core/ui.js
@@ -22,7 +22,7 @@ export function toast(msg, err = false) {
export function badge(state) {
if (state === "running" || state === "ready") return 'geladen';
if (state === "loading" || state === "starting") return 'lädt…';
- return 'bereit';
+ return 'bereit';
}
// relative Zeit aus Unix-Sekunden (z.B. "2m", "13h")
diff --git a/static/js/panels/overview.js b/static/js/panels/overview.js
index 12ae1f9..0f4f1fd 100644
--- a/static/js/panels/overview.js
+++ b/static/js/panels/overview.js
@@ -106,7 +106,7 @@ function renderQuickActions() {
function modelRow(m) {
const on = RUNNING.has(m.state);
- const dot = m.state === "loading" || m.state === "starting" ? "load" : on ? "on" : "";
+ const dot = m.state === "loading" || m.state === "starting" ? "load" : (on || m.state === "bereit") ? "on" : "";
const state = on ? (m.state === "loading" ? "lädt…" : "geladen") : "bereit";
let caps = "";
@@ -179,6 +179,6 @@ function renderAll() {
function mount() { renderAll(); }
function onStatus(s) { S = s; renderModels(); }
function onJobs(jobs) { J = jobs || []; renderRecentJobs(); }
-function onSystem(sys) { SYS = sys; renderQuickActions(); }
+function onSystem(sys) { SYS = sys; }
export default { id: "overview", mount, onStatus, onJobs, onSystem };