perf(cron): lazy-load delivery logger runtime

This commit is contained in:
Vincent Koc
2026-04-13 17:37:17 +01:00
parent f1ec7a75f6
commit 139a3f49fe
2 changed files with 33 additions and 7 deletions

View File

@@ -10,7 +10,6 @@ import { sleepWithAbort } from "../../infra/backoff.js";
import { formatErrorMessage } from "../../infra/errors.js";
import type { OutboundDeliveryResult } from "../../infra/outbound/deliver.js";
import { normalizeTargetForProvider } from "../../infra/outbound/target-normalization.js";
import { logWarn, logError } from "../../logger.js";
import {
normalizeLowercaseStringOrEmpty,
normalizeOptionalLowercaseString,
@@ -133,6 +132,9 @@ let deliveryOutboundRuntimePromise:
let deliverySubagentRegistryRuntimePromise:
| Promise<typeof import("./delivery-subagent-registry.runtime.js")>
| undefined;
let deliveryLoggerRuntimePromise:
| Promise<typeof import("./delivery-logger.runtime.js")>
| undefined;
let subagentFollowupRuntimePromise:
| Promise<typeof import("./subagent-followup.runtime.js")>
| undefined;
@@ -158,6 +160,11 @@ async function loadDeliverySubagentRegistryRuntime(): Promise<
return await deliverySubagentRegistryRuntimePromise;
}
async function loadDeliveryLoggerRuntime(): Promise<typeof import("./delivery-logger.runtime.js")> {
deliveryLoggerRuntimePromise ??= import("./delivery-logger.runtime.js");
return await deliveryLoggerRuntimePromise;
}
async function loadSubagentFollowupRuntime(): Promise<
typeof import("./subagent-followup.runtime.js")
> {
@@ -165,6 +172,22 @@ async function loadSubagentFollowupRuntime(): Promise<
return await subagentFollowupRuntimePromise;
}
async function logCronDeliveryWarn(message: string): Promise<void> {
const { logWarn } = await loadDeliveryLoggerRuntime();
logWarn(message);
}
async function logCronDeliveryError(message: string): Promise<void> {
const { logError } = await loadDeliveryLoggerRuntime();
logError(message);
}
function logCronDeliveryErrorDeferred(message: string): void {
void loadDeliveryLoggerRuntime().then(({ logError }) => {
logError(message);
});
}
function cloneDeliveryResults(
results: readonly OutboundDeliveryResult[],
): OutboundDeliveryResult[] {
@@ -287,7 +310,7 @@ async function queueCronAwarenessSystemEvent(params: {
contextKey: params.deliveryIdempotencyKey,
});
} catch (err) {
logWarn(
await logCronDeliveryWarn(
`[cron:${params.jobId}] failed to queue isolated cron awareness for the main session: ${formatErrorMessage(err)}`,
);
}
@@ -352,7 +375,7 @@ async function retryTransientDirectCronDelivery<T>(params: {
}
const nextAttempt = retryIndex + 2;
const maxAttempts = retryDelaysMs.length + 1;
logWarn(
await logCronDeliveryWarn(
`[cron:${params.jobId}] transient direct announce delivery failure, retrying ${nextAttempt}/${maxAttempts} in ${Math.round(delayMs / 1000)}s: ${summarizeDirectCronDeliveryError(err)}`,
);
retryIndex += 1;
@@ -471,7 +494,7 @@ export async function dispatchCronDelivery(
job: params.job,
runStartedAt: params.runStartedAt,
});
logWarn(
await logCronDeliveryWarn(
`[cron:${params.job.id}] skipping stale delivery scheduled at ${new Date(scheduledAtMs).toISOString()}, started ${Math.round(startDelayMs / 60_000)}m late, current age ${Math.round((nowMs - scheduledAtMs) / 60_000)}m`,
);
return params.withRunSession({
@@ -502,7 +525,7 @@ export async function dispatchCronDelivery(
const onError = params.deliveryBestEffort
? (err: unknown, _payload: unknown) => {
hadPartialFailure = true;
logError(
logCronDeliveryErrorDeferred(
`[cron:${params.job.id}] delivery payload failed (bestEffort): ${formatErrorMessage(err)}`,
);
}
@@ -566,7 +589,9 @@ export async function dispatchCronDelivery(
...params.telemetry,
});
}
logError(`[cron:${params.job.id}] delivery failed (bestEffort): ${formatErrorMessage(err)}`);
await logCronDeliveryError(
`[cron:${params.job.id}] delivery failed (bestEffort): ${formatErrorMessage(err)}`,
);
return null;
}
};
@@ -695,7 +720,7 @@ export async function dispatchCronDelivery(
deliveryPayloads,
};
}
logWarn(`[cron:${params.job.id}] ${params.resolvedDelivery.error.message}`);
await logCronDeliveryWarn(`[cron:${params.job.id}] ${params.resolvedDelivery.error.message}`);
return {
result: params.withRunSession({
status: "ok",

View File

@@ -0,0 +1 @@
export { logError, logWarn } from "../../logger.js";