feat(logs): coalesce repeated identical lines into one row (×N badge)

A line identical to the last persisted row (level+source+message+path)
within a 5-min refreshing window updates that row — context._repeat counts
the fold, _firstAt keeps the first occurrence, createdAt tracks the latest
so the storm stays at the top of the newest-first viewer. A continuous
storm stays ONE row however long it rages, so it can't evict unrelated
history via the 50k row cap or grind the appliance disk. LogsViewer badges
coalesced rows ×N (tooltip: count + first occurrence, sq/en). In-memory
last-row cache only; a pruned-under-us row falls through to a fresh insert.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-07-10 08:29:43 +02:00
parent e2d5105da2
commit 51b160bfc9
5 changed files with 137 additions and 7 deletions
+1
View File
@@ -963,6 +963,7 @@ export const sq = {
status: "Statusi",
path: "Rruga",
empty: "Asnjë regjistër.",
repeated: "Përsëritur {{count}} herë (hera e parë {{firstAt}})",
},
backup: {
title: "Kopje rezervë",