(scan)
| 20051 | newLogLines = cleanedLogs.slice(-MAX_CONSOLE_LINES); |
| 20052 | } |
| 20053 | } |
| 20054 | |
| 20055 | if (newLogLines.length === 0) { |
| 20056 | lastConsoleLogLine = cleanedLogs[cleanedLogs.length - 1]; |
| 20057 | return; |
| 20058 | } |
| 20059 | |
| 20060 | newLogLines.forEach(logLine => { |
| 20061 | consoleBuffer.push(createConsoleEntryFromLog(logLine)); |
| 20062 | }); |
| 20063 | |
| 20064 | if (consoleBuffer.length > MAX_CONSOLE_LINES) { |
| 20065 | consoleBuffer = consoleBuffer.slice(-MAX_CONSOLE_LINES); |
| 20066 | } |
| 20067 | |
| 20068 | lastConsoleLogLine = cleanedLogs[cleanedLogs.length - 1]; |
| 20069 | updateConsoleDisplay(); |
| 20070 | } |
| 20071 | |
| 20072 | function updateConsoleDisplay() { |
| 20073 | const console = document.getElementById('console-output'); |
| 20074 | if (!console) return; |
| 20075 | |
| 20076 | console.innerHTML = consoleBuffer.map(entry => |
| 20077 | `<div class="${entry.colorClass}">[${entry.timestamp}] ${escapeHtml(entry.message)}</div>` |
| 20078 | ).join(''); |
| 20079 | |
| 20080 | // Auto-scroll to bottom |
no test coverage detected