fix(memoryFlush): correct context token accounting for flush gating (#5343)

Merged via squash.

Prepared head SHA: afaa7bae3b
Co-authored-by: jarvis-medmatic <252428873+jarvis-medmatic@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
This commit is contained in:
Jarvis
2026-03-01 01:54:57 +01:00
committed by GitHub
parent 812a996b2f
commit fcb6859784
8 changed files with 478 additions and 44 deletions

View File

@@ -514,27 +514,32 @@ export async function runCronIsolatedAgentTurn(params: {
if (hasNonzeroUsage(usage)) {
const input = usage.input ?? 0;
const output = usage.output ?? 0;
const totalTokens =
deriveSessionTotalTokens({
usage,
contextTokens,
promptTokens,
}) ?? input;
const totalTokens = deriveSessionTotalTokens({
usage,
contextTokens,
promptTokens,
});
cronSession.sessionEntry.inputTokens = input;
cronSession.sessionEntry.outputTokens = output;
cronSession.sessionEntry.totalTokens = totalTokens;
cronSession.sessionEntry.totalTokensFresh = true;
const telemetryUsage: NonNullable<CronRunTelemetry["usage"]> = {
input_tokens: input,
output_tokens: output,
};
if (typeof totalTokens === "number" && Number.isFinite(totalTokens) && totalTokens > 0) {
cronSession.sessionEntry.totalTokens = totalTokens;
cronSession.sessionEntry.totalTokensFresh = true;
telemetryUsage.total_tokens = totalTokens;
} else {
cronSession.sessionEntry.totalTokens = undefined;
cronSession.sessionEntry.totalTokensFresh = false;
}
cronSession.sessionEntry.cacheRead = usage.cacheRead ?? 0;
cronSession.sessionEntry.cacheWrite = usage.cacheWrite ?? 0;
telemetry = {
model: modelUsed,
provider: providerUsed,
usage: {
input_tokens: input,
output_tokens: output,
total_tokens: totalTokens,
},
usage: telemetryUsage,
};
} else {
telemetry = {