




















@@ -87,6 +87,7 @@ import {
8787} from "./session-store-key.js";
8888import {
8989readLatestSessionUsageFromTranscript,
90+readRecentSessionUsageFromTranscript,
9091readSessionTitleFieldsFromTranscript,
9192} from "./session-utils.fs.js";
9293import type {
@@ -105,6 +106,7 @@ export {
105106readFirstUserMessageFromTranscript,
106107readLastMessagePreviewFromTranscript,
107108readLatestSessionUsageFromTranscript,
109+readRecentSessionUsageFromTranscript,
108110readRecentSessionMessages,
109111readSessionTitleFieldsFromTranscript,
110112readSessionPreviewItemsFromTranscript,
@@ -403,6 +405,7 @@ function resolveTranscriptUsageFallback(params: {
403405storePath: string;
404406fallbackProvider?: string;
405407fallbackModel?: string;
408+maxTranscriptBytes?: number;
406409}): {
407410estimatedCostUsd?: number;
408411totalTokens?: number;
@@ -419,12 +422,21 @@ function resolveTranscriptUsageFallback(params: {
419422const agentId = parsed?.agentId
420423 ? normalizeAgentId(parsed.agentId)
421424 : resolveDefaultAgentId(params.cfg);
422-const snapshot = readLatestSessionUsageFromTranscript(
423-entry.sessionId,
424-params.storePath,
425-entry.sessionFile,
426-agentId,
427-);
425+const snapshot =
426+typeof params.maxTranscriptBytes === "number"
427+ ? readRecentSessionUsageFromTranscript(
428+entry.sessionId,
429+params.storePath,
430+entry.sessionFile,
431+agentId,
432+params.maxTranscriptBytes,
433+)
434+ : readLatestSessionUsageFromTranscript(
435+entry.sessionId,
436+params.storePath,
437+entry.sessionFile,
438+agentId,
439+);
428440if (!snapshot) {
429441return null;
430442}
@@ -1300,6 +1312,7 @@ export function buildGatewaySessionRow(params: {
13001312now?: number;
13011313includeDerivedTitles?: boolean;
13021314includeLastMessage?: boolean;
1315+transcriptUsageMaxBytes?: number;
13031316}): GatewaySessionRow {
13041317const { cfg, storePath, store, key, entry } = params;
13051318const now = params.now ?? Date.now();
@@ -1408,6 +1421,7 @@ export function buildGatewaySessionRow(params: {
14081421 storePath,
14091422fallbackProvider: resolvedModel.provider,
14101423fallbackModel: resolvedModel.model ?? DEFAULT_MODEL,
1424+maxTranscriptBytes: params.transcriptUsageMaxBytes,
14111425})
14121426 : null;
14131427const preferLiveSubagentModelIdentity =
@@ -1614,6 +1628,7 @@ export function listSessionsFromStore(params: {
16141628}): SessionsListResult {
16151629const { cfg, storePath, store, opts } = params;
16161630const now = Date.now();
1631+const sessionListTranscriptUsageMaxBytes = 64 * 1024;
1617163216181633const includeGlobal = opts.includeGlobal === true;
16191634const includeUnknown = opts.includeUnknown === true;
@@ -1720,6 +1735,7 @@ export function listSessionsFromStore(params: {
17201735 now,
17211736 includeDerivedTitles,
17221737 includeLastMessage,
1738+transcriptUsageMaxBytes: sessionListTranscriptUsageMaxBytes,
17231739}),
17241740);
17251741此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。