()
| 20087 | newLogLines.forEach(logLine => { |
| 20088 | consoleBuffer.push(createConsoleEntryFromLog(logLine)); |
| 20089 | }); |
| 20090 | |
| 20091 | if (consoleBuffer.length > MAX_CONSOLE_LINES) { |
| 20092 | consoleBuffer = consoleBuffer.slice(-MAX_CONSOLE_LINES); |
| 20093 | } |
| 20094 | |
| 20095 | lastConsoleLogLine = cleanedLogs[cleanedLogs.length - 1]; |
| 20096 | updateConsoleDisplay(); |
| 20097 | } |
| 20098 | |
| 20099 | function updateConsoleDisplay() { |
| 20100 | const console = document.getElementById('console-output'); |
| 20101 | if (!console) return; |
| 20102 | |
| 20103 | console.innerHTML = consoleBuffer.map(entry => |
| 20104 | `<div class="${entry.colorClass}">[${entry.timestamp}] ${escapeHtml(entry.message)}</div>` |
| 20105 | ).join(''); |
| 20106 | |
| 20107 | // Auto-scroll to bottom |
no test coverage detected