
























@@ -1430,8 +1430,12 @@ export function buildGatewaySessionRow(params: {
14301430transcriptUsageMaxBytes?: number;
14311431storeChildSessionsByKey?: Map<string, string[]>;
14321432rowContext?: SessionListRowContext;
1433+skipTranscriptUsageFallback?: boolean;
1434+lightweightListRow?: boolean;
14331435}): GatewaySessionRow {
14341436const { cfg, storePath, store, key, entry } = params;
1437+const lightweight = params.lightweightListRow === true;
1438+const skipTranscriptUsage = params.skipTranscriptUsageFallback === true;
14351439const now = params.now ?? Date.now();
14361440const updatedAt = entry?.updatedAt ?? null;
14371441const parsed = parseGroupKey(key);
@@ -1533,7 +1537,8 @@ export function buildGatewaySessionRow(params: {
15331537 entry,
15341538}) === undefined;
15351539const transcriptUsage =
1536-needsTranscriptTotalTokens || needsTranscriptContextTokens || needsTranscriptEstimatedCostUsd
1540+!skipTranscriptUsage &&
1541+(needsTranscriptTotalTokens || needsTranscriptContextTokens || needsTranscriptEstimatedCostUsd)
15371542 ? resolveTranscriptUsageFallback({
15381543 cfg,
15391544 key,
@@ -1577,36 +1582,39 @@ export function buildGatewaySessionRow(params: {
15771582const latestCompactionCheckpoint = buildCompactionCheckpointPreview(
15781583resolveLatestCompactionCheckpoint(entry),
15791584);
1580-const agentRuntime = resolveAgentRuntimeMetadata(cfg, sessionAgentId);
1585+const agentRuntime = lightweight ? undefined : resolveAgentRuntimeMetadata(cfg, sessionAgentId);
15811586const selectedOrRuntimeModelProvider = selectedModel?.provider ?? modelProvider;
15821587const selectedOrRuntimeModel = selectedModel?.model ?? model;
1583-const rowModelIdentity = resolveSessionDisplayModelIdentityRef({
1584- cfg,
1585-agentId: sessionAgentId,
1586-provider: selectedOrRuntimeModelProvider,
1587-model: selectedOrRuntimeModel,
1588-});
1588+const rowModelIdentity = lightweight
1589+ ? { provider: selectedOrRuntimeModelProvider, model: selectedOrRuntimeModel }
1590+ : resolveSessionDisplayModelIdentityRef({
1591+ cfg,
1592+agentId: sessionAgentId,
1593+provider: selectedOrRuntimeModelProvider,
1594+model: selectedOrRuntimeModel,
1595+});
15891596const rowModelProvider = rowModelIdentity.provider;
15901597const rowModel = rowModelIdentity.model;
1591-const estimatedCostUsd =
1592-resolveEstimatedSessionCostUsd({
1593- cfg,
1594-provider: rowModelProvider,
1595-model: rowModel,
1596- entry,
1597-}) ?? resolveNonNegativeNumber(transcriptUsage?.estimatedCostUsd);
1598-const contextTokens =
1599-resolvePositiveNumber(entry?.contextTokens) ??
1600-resolvePositiveNumber(transcriptUsage?.contextTokens) ??
1601-resolvePositiveNumber(
1602-resolveContextTokensForModel({
1598+const estimatedCostUsd = lightweight
1599+ ? resolveNonNegativeNumber(entry?.estimatedCostUsd)
1600+ : resolveEstimatedSessionCostUsd({
16031601 cfg,
16041602provider: rowModelProvider,
16051603model: rowModel,
1606-// Gateway/session listing is read-only; don't start async model discovery.
1607-allowAsyncLoad: false,
1608-}),
1609-);
1604+ entry,
1605+}) ?? resolveNonNegativeNumber(transcriptUsage?.estimatedCostUsd);
1606+const contextTokens = lightweight
1607+ ? resolvePositiveNumber(entry?.contextTokens)
1608+ : resolvePositiveNumber(entry?.contextTokens) ??
1609+resolvePositiveNumber(transcriptUsage?.contextTokens) ??
1610+resolvePositiveNumber(
1611+resolveContextTokensForModel({
1612+ cfg,
1613+provider: rowModelProvider,
1614+model: rowModel,
1615+allowAsyncLoad: false,
1616+}),
1617+);
1610161816111619let derivedTitle: string | undefined;
16121620let lastMessagePreview: string | undefined;
@@ -1627,14 +1635,11 @@ export function buildGatewaySessionRow(params: {
1627163516281636const thinkingProvider = rowModelProvider ?? DEFAULT_PROVIDER;
16291637const thinkingModel = rowModel ?? DEFAULT_MODEL;
1630-const thinkingLevels = listThinkingLevelOptions(
1631-thinkingProvider,
1632-thinkingModel,
1633-params.modelCatalog,
1634-);
1635-const pluginExtensions = entry
1636- ? projectPluginSessionExtensionsSync({ sessionKey: key, entry })
1637- : [];
1638+const thinkingLevels = lightweight
1639+ ? []
1640+ : listThinkingLevelOptions(thinkingProvider, thinkingModel, params.modelCatalog);
1641+const pluginExtensions =
1642+!lightweight && entry ? projectPluginSessionExtensionsSync({ sessionKey: key, entry }) : [];
1638164316391644return {
16401645 key,
@@ -1662,13 +1667,15 @@ export function buildGatewaySessionRow(params: {
16621667thinkingLevel: entry?.thinkingLevel,
16631668 thinkingLevels,
16641669thinkingOptions: thinkingLevels.map((level) => level.label),
1665-thinkingDefault: resolveGatewaySessionThinkingDefault({
1666- cfg,
1667-provider: thinkingProvider,
1668-model: thinkingModel,
1669-agentId: sessionAgentId,
1670-modelCatalog: params.modelCatalog,
1671-}),
1670+thinkingDefault: lightweight
1671+ ? entry?.thinkingLevel
1672+ : resolveGatewaySessionThinkingDefault({
1673+ cfg,
1674+provider: thinkingProvider,
1675+model: thinkingModel,
1676+agentId: sessionAgentId,
1677+modelCatalog: params.modelCatalog,
1678+}),
16721679fastMode: entry?.fastMode,
16731680verboseLevel: entry?.verboseLevel,
16741681traceLevel: entry?.traceLevel,
@@ -2016,6 +2023,8 @@ export async function listSessionsFromStoreAsync(params: {
20162023transcriptUsageMaxBytes: sessionListTranscriptUsageMaxBytes,
20172024storeChildSessionsByKey: getRowContext().storeChildSessionsByKey,
20182025rowContext: getRowContext(),
2026+skipTranscriptUsageFallback: true,
2027+lightweightListRow: true,
20192028});
20202029if (
20212030entry?.sessionId &&
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。