From ac6e8a0d815292804ad3aba9447859b979aa11cd Mon Sep 17 00:00:00 2001 From: root Date: Wed, 18 Feb 2026 05:01:24 +0000 Subject: [PATCH 1/3] fix(gateway): resolve identity.get session agent via config default --- src/gateway/server-methods/agent.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gateway/server-methods/agent.ts b/src/gateway/server-methods/agent.ts index 5aa518a558d..d002b20f721 100644 --- a/src/gateway/server-methods/agent.ts +++ b/src/gateway/server-methods/agent.ts @@ -1,5 +1,5 @@ import { randomUUID } from "node:crypto"; -import { listAgentIds } from "../../agents/agent-scope.js"; +import { listAgentIds, resolveSessionAgentId } from "../../agents/agent-scope.js"; import { BARE_SESSION_RESET_PROMPT } from "../../auto-reply/reply/session-reset-prompt.js"; import { agentCommand } from "../../commands/agent.js"; import { loadConfig } from "../../config/config.js"; @@ -680,6 +680,7 @@ export const agentHandlers: GatewayRequestHandlers = { const agentIdRaw = typeof p.agentId === "string" ? p.agentId.trim() : ""; const sessionKeyRaw = typeof p.sessionKey === "string" ? p.sessionKey.trim() : ""; let agentId = agentIdRaw ? normalizeAgentId(agentIdRaw) : undefined; + const cfg = loadConfig(); if (sessionKeyRaw) { if (classifySessionKeyShape(sessionKeyRaw) === "malformed_agent") { respond( @@ -692,7 +693,7 @@ export const agentHandlers: GatewayRequestHandlers = { ); return; } - const resolved = resolveAgentIdFromSessionKey(sessionKeyRaw); + const resolved = resolveSessionAgentId({ sessionKey: sessionKeyRaw, config: cfg }); if (agentId && resolved !== agentId) { respond( false, @@ -706,7 +707,6 @@ export const agentHandlers: GatewayRequestHandlers = { } agentId = resolved; } - const cfg = loadConfig(); const identity = resolveAssistantIdentity({ cfg, agentId }); const avatarValue = resolveAssistantAvatarUrl({ From b9c2ecab918c4733851b995a89c1d2261f33bfbc Mon Sep 17 00:00:00 2001 From: root Date: Thu, 19 Feb 2026 19:12:00 +0000 Subject: [PATCH 2/3] fix(version): fallback runtime service version to resolved VERSION --- src/version.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/version.ts b/src/version.ts index 18c3c968dd7..545b551a7b3 100644 --- a/src/version.ts +++ b/src/version.ts @@ -84,6 +84,7 @@ export function resolveRuntimeServiceVersion( env["OPENCLAW_VERSION"], env["OPENCLAW_SERVICE_VERSION"], env["npm_package_version"], + VERSION, ) ?? fallback ); } From 542b56a37c8e2dfe5f3b781b7a3f58a7457540ad Mon Sep 17 00:00:00 2001 From: root Date: Tue, 24 Feb 2026 14:59:38 +0000 Subject: [PATCH 3/3] fix(config): preserve explicit channel enabled state for plugin auto-enable --- src/config/plugin-auto-enable.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/config/plugin-auto-enable.ts b/src/config/plugin-auto-enable.ts index eccb6f980ed..baf19826b1f 100644 --- a/src/config/plugin-auto-enable.ts +++ b/src/config/plugin-auto-enable.ts @@ -437,7 +437,6 @@ function registerPluginEntry(cfg: OpenClawConfig, pluginId: string): OpenClawCon ...cfg.channels, [builtInChannelId]: { ...existingRecord, - enabled: true, }, }, }; @@ -515,7 +514,7 @@ export function applyPluginAutoEnable(params: { ) { return false; } - return (channelConfig as { enabled?: unknown }).enabled === true; + return (channelConfig as { enabled?: unknown }).enabled !== false; })() : next.plugins?.entries?.[entry.pluginId]?.enabled === true; if (alreadyEnabled && !allowMissing) {