Skip to content

Commit 0a600bc

Browse files
fix(live): public log is node-only — drop client-generated SYS/lifecycle lines
/live generates its own SYS entries (Testing started/stopped, Round N starting/done, gap countdowns) in response to state/loop SSE events — these never pass through the server's node-only log filtering. When the log-filter tabs were removed and the log unified, those previously- filterable SYS lines became permanently visible. appendLog now drops explicit-cat 'sys'/'events' objects so the public log shows only node activity (cat 'node') and node failures (cat 'fail', kept per the failure-log UX). Raw server-forwarded strings are NOT re-judged — they're already node-filtered server-side (publicLogBuffer + the /api/public/events sys/events drop), so the weaker client string heuristic must not second-guess them.
1 parent dcc05e4 commit 0a600bc

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

live.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1411,6 +1411,16 @@ <h1 class="live-page-title">
14111411
o = opts || {};
14121412
}
14131413

1414+
// Public /live is NODE-ONLY: drop the operator/system + lifecycle entries
1415+
// the client generates itself (Testing started/stopped, Round N starting/
1416+
// done). Node activity (cat 'node') and node failures (cat 'fail') stay —
1417+
// the failure-log UX requires failures to remain visible. Only gate
1418+
// explicit-cat objects: raw strings here are already node-filtered
1419+
// server-side (publicLogBuffer + the /api/public/events sys/events drop),
1420+
// so re-judging them with the weaker string heuristic would risk hiding a
1421+
// legitimate node line the server already approved.
1422+
if (typeof opts !== 'string' && (o.cat === 'sys' || o.cat === 'events')) return;
1423+
14141424
const div = document.createElement('div');
14151425
const cls =
14161426
o.status === 'fail' ? 'log-err' :

0 commit comments

Comments
 (0)