/** * Shared buffers and types — extracted to break circular dependency * between server.ts and browser-manager.ts */ export interface LogEntry { timestamp: number; level: string; text: string; } export interface NetworkEntry { timestamp: number; method: string; url: string; status?: number; duration?: number; size?: number; } export const consoleBuffer: LogEntry[] = []; export const networkBuffer: NetworkEntry[] = []; const HIGH_WATER_MARK = 50_000; // Total entries ever added — used by server.ts flush logic as a cursor // that keeps advancing even after the ring buffer wraps. export let consoleTotalAdded = 0; export let networkTotalAdded = 0; export function addConsoleEntry(entry: LogEntry) { if (consoleBuffer.length >= HIGH_WATER_MARK) { consoleBuffer.shift(); } consoleBuffer.push(entry); consoleTotalAdded++; } export function addNetworkEntry(entry: NetworkEntry) { if (networkBuffer.length >= HIGH_WATER_MARK) { networkBuffer.shift(); } networkBuffer.push(entry); networkTotalAdded++; }