


























@@ -372,6 +372,7 @@ function shouldKeepStoreOnlyChildLink(entry: SessionEntry, now: number): boolean
372372type SessionListRowContext = {
373373subagentRuns: ReturnType<typeof buildSubagentRunReadIndex>;
374374storeChildSessionsByKey: Map<string, string[]>;
375+selectedModelByOverrideRef: Map<string, ReturnType<typeof resolveSessionModelRef>>;
375376thinkingLevelsByModelRef: Map<string, ReturnType<typeof listThinkingLevelOptions>>;
376377};
377378@@ -489,6 +490,7 @@ function buildSessionListRowContext(params: {
489490return {
490491 subagentRuns,
491492storeChildSessionsByKey: buildStoreChildSessionIndex(params.store, params.now, subagentRuns),
493+selectedModelByOverrideRef: new Map(),
492494thinkingLevelsByModelRef: new Map(),
493495};
494496}
@@ -497,6 +499,36 @@ function createSessionRowModelCacheKey(provider: string | undefined, model: stri
497499return `${normalizeLowercaseStringOrEmpty(provider)}\0${normalizeOptionalString(model) ?? ""}`;
498500}
499501502+function resolveSessionSelectedModelRef(params: {
503+cfg: OpenClawConfig;
504+entry?: SessionEntry;
505+agentId: string;
506+rowContext?: SessionListRowContext;
507+}): ReturnType<typeof resolveSessionModelRef> | null {
508+const override = normalizeStoredOverrideModel({
509+providerOverride: params.entry?.providerOverride,
510+modelOverride: params.entry?.modelOverride,
511+});
512+if (!override.modelOverride) {
513+return null;
514+}
515+if (!params.rowContext) {
516+return resolveSessionModelRef(params.cfg, params.entry, params.agentId);
517+}
518+const key = [
519+normalizeAgentId(params.agentId),
520+override.providerOverride ?? "",
521+override.modelOverride,
522+].join("\0");
523+const cached = params.rowContext.selectedModelByOverrideRef.get(key);
524+if (cached) {
525+return cached;
526+}
527+const selected = resolveSessionModelRef(params.cfg, params.entry, params.agentId);
528+params.rowContext.selectedModelByOverrideRef.set(key, selected);
529+return selected;
530+}
531+500532function resolveSessionRowThinkingLevels(params: {
501533provider: string;
502534model: string;
@@ -1540,9 +1572,12 @@ export function buildGatewaySessionRow(params: {
15401572 ? resolveSessionRuntimeMs(subagentRun, now)
15411573 : undefined))
15421574 : undefined;
1543-const selectedModel = entry?.modelOverride?.trim()
1544- ? resolveSessionModelRef(cfg, entry, sessionAgentId)
1545- : null;
1575+const selectedModel = resolveSessionSelectedModelRef({
1576+ cfg,
1577+ entry,
1578+agentId: sessionAgentId,
1579+ rowContext,
1580+});
15461581const resolvedModel = resolveSessionModelIdentityRef(
15471582cfg,
15481583entry,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。