mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 19:54:32 +00:00
fix: sessions_sspawn model override ignored for sub-agents
Fix bug where sessions_spawn model parameter was ignored, causing sub-agents to always use the parent's default model. The allowAny flag from buildAllowedModelSet() was not being captured or used. 🤖 AI-assisted (Claude) - fully tested locally Fixes #17479, #6295, #10963
This commit is contained in:
@@ -390,6 +390,7 @@ export async function agentCommand(
|
|||||||
let allowedModelKeys = new Set<string>();
|
let allowedModelKeys = new Set<string>();
|
||||||
let allowedModelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> = [];
|
let allowedModelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> = [];
|
||||||
let modelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> | null = null;
|
let modelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> | null = null;
|
||||||
|
let allowAnyModel = false;
|
||||||
|
|
||||||
if (needsModelCatalog) {
|
if (needsModelCatalog) {
|
||||||
modelCatalog = await loadModelCatalog({ config: cfg });
|
modelCatalog = await loadModelCatalog({ config: cfg });
|
||||||
@@ -401,6 +402,7 @@ export async function agentCommand(
|
|||||||
});
|
});
|
||||||
allowedModelKeys = allowed.allowedKeys;
|
allowedModelKeys = allowed.allowedKeys;
|
||||||
allowedModelCatalog = allowed.allowedCatalog;
|
allowedModelCatalog = allowed.allowedCatalog;
|
||||||
|
allowAnyModel = allowed.allowAny ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sessionEntry && sessionStore && sessionKey && hasStoredOverride) {
|
if (sessionEntry && sessionStore && sessionKey && hasStoredOverride) {
|
||||||
@@ -412,7 +414,7 @@ export async function agentCommand(
|
|||||||
const key = modelKey(normalizedOverride.provider, normalizedOverride.model);
|
const key = modelKey(normalizedOverride.provider, normalizedOverride.model);
|
||||||
if (
|
if (
|
||||||
!isCliProvider(normalizedOverride.provider, cfg) &&
|
!isCliProvider(normalizedOverride.provider, cfg) &&
|
||||||
allowedModelKeys.size > 0 &&
|
!allowAnyModel &&
|
||||||
!allowedModelKeys.has(key)
|
!allowedModelKeys.has(key)
|
||||||
) {
|
) {
|
||||||
const { updated } = applyModelOverrideToSessionEntry({
|
const { updated } = applyModelOverrideToSessionEntry({
|
||||||
@@ -439,7 +441,7 @@ export async function agentCommand(
|
|||||||
const key = modelKey(normalizedStored.provider, normalizedStored.model);
|
const key = modelKey(normalizedStored.provider, normalizedStored.model);
|
||||||
if (
|
if (
|
||||||
isCliProvider(normalizedStored.provider, cfg) ||
|
isCliProvider(normalizedStored.provider, cfg) ||
|
||||||
allowedModelKeys.size === 0 ||
|
allowAnyModel ||
|
||||||
allowedModelKeys.has(key)
|
allowedModelKeys.has(key)
|
||||||
) {
|
) {
|
||||||
provider = normalizedStored.provider;
|
provider = normalizedStored.provider;
|
||||||
|
|||||||
Reference in New Issue
Block a user