fix: serialize claude cli runs

This commit is contained in:
Peter Steinberger
2026-01-09 04:58:21 +00:00
parent aa5e75e853
commit 9114331218
8 changed files with 222 additions and 47 deletions

View File

@@ -57,6 +57,7 @@ let cachedConsoleSettings: ConsoleSettings | null = null;
let overrideSettings: LoggerSettings | null = null;
let consolePatched = false;
let forceConsoleToStderr = false;
let consoleSubsystemFilter: string[] | null = null;
let rawConsole: {
log: typeof console.log;
info: typeof console.info;
@@ -258,6 +259,27 @@ export function routeLogsToStderr(): void {
forceConsoleToStderr = true;
}
export function setConsoleSubsystemFilter(filters?: string[] | null): void {
if (!filters || filters.length === 0) {
consoleSubsystemFilter = null;
return;
}
const normalized = filters
.map((value) => value.trim())
.filter((value) => value.length > 0);
consoleSubsystemFilter = normalized.length > 0 ? normalized : null;
}
export function shouldLogSubsystemToConsole(subsystem: string): boolean {
if (!consoleSubsystemFilter || consoleSubsystemFilter.length === 0) {
return true;
}
return consoleSubsystemFilter.some(
(prefix) =>
subsystem === prefix || subsystem.startsWith(`${prefix}/`),
);
}
const SUPPRESSED_CONSOLE_PREFIXES = [
"Closing session:",
"Opening session:",
@@ -536,6 +558,7 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
}
logToFile(getFileLogger(), level, message, fileMeta);
if (!shouldLogToConsole(level, consoleSettings)) return;
if (!shouldLogSubsystemToConsole(subsystem)) return;
const line = formatConsoleLine({
level,
subsystem,
@@ -559,7 +582,9 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
fatal: (message, meta) => emit("fatal", message, meta),
raw: (message) => {
logToFile(getFileLogger(), "info", message, { raw: true });
writeConsoleLine("info", message);
if (shouldLogSubsystemToConsole(subsystem)) {
writeConsoleLine("info", message);
}
},
child: (name) => createSubsystemLogger(`${subsystem}/${name}`),
};