From 812f96cf24e278caa3c16ad7cbb4a6900efd5df2 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 19 Apr 2026 05:19:19 +0100 Subject: [PATCH] refactor: share gateway reload params --- src/gateway/server-reload-handlers.ts | 65 +++++++++++++-------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/src/gateway/server-reload-handlers.ts b/src/gateway/server-reload-handlers.ts index 36d4aff8525..a5696c4ac47 100644 --- a/src/gateway/server-reload-handlers.ts +++ b/src/gateway/server-reload-handlers.ts @@ -50,7 +50,12 @@ type GatewayHotReloadState = { channelHealthMonitor: ChannelHealthMonitor | null; }; -export function createGatewayReloadHandlers(params: { +type GatewayReloadLog = { + info: (msg: string) => void; + warn: (msg: string) => void; +}; + +type GatewayReloadHandlerParams = { deps: CliDeps; broadcast: (event: string, payload: unknown, opts?: { dropIfSlow?: boolean }) => void; getState: () => GatewayHotReloadState; @@ -64,9 +69,31 @@ export function createGatewayReloadHandlers(params: { }; logChannels: { info: (msg: string) => void; error: (msg: string) => void }; logCron: { error: (msg: string) => void }; - logReload: { info: (msg: string) => void; warn: (msg: string) => void }; + logReload: GatewayReloadLog; createHealthMonitor: (config: OpenClawConfig) => ChannelHealthMonitor | null; -}) { +}; + +type ManagedGatewayConfigReloaderParams = Omit< + GatewayReloadHandlerParams, + "createHealthMonitor" | "logReload" +> & { + minimalTestGateway: boolean; + initialConfig: OpenClawConfig; + initialInternalWriteHash: string | null; + watchPath: string; + readSnapshot: typeof import("../config/config.js").readConfigFileSnapshot; + subscribeToWrites: typeof import("../config/config.js").registerConfigWriteListener; + logReload: GatewayReloadLog & { + error: (msg: string) => void; + }; + channelManager: GatewayChannelManager; + activateRuntimeSecrets: ActivateRuntimeSecrets; + resolveSharedGatewaySessionGenerationForConfig: (config: OpenClawConfig) => string | undefined; + sharedGatewaySessionGenerationState: SharedGatewaySessionGenerationState; + clients: Iterable; +}; + +export function createGatewayReloadHandlers(params: GatewayReloadHandlerParams) { const applyHotReload = async (plan: GatewayReloadPlan, nextConfig: OpenClawConfig) => { setGatewaySigusr1RestartPolicy({ allowExternal: isRestartEnabled(nextConfig) }); const state = params.getState(); @@ -246,37 +273,7 @@ export function createGatewayReloadHandlers(params: { return { applyHotReload, requestGatewayRestart }; } -export function startManagedGatewayConfigReloader(params: { - minimalTestGateway: boolean; - initialConfig: OpenClawConfig; - initialInternalWriteHash: string | null; - watchPath: string; - readSnapshot: typeof import("../config/config.js").readConfigFileSnapshot; - subscribeToWrites: typeof import("../config/config.js").registerConfigWriteListener; - deps: CliDeps; - broadcast: (event: string, payload: unknown, opts?: { dropIfSlow?: boolean }) => void; - getState: () => GatewayHotReloadState; - setState: (state: GatewayHotReloadState) => void; - startChannel: (name: ChannelKind) => Promise; - stopChannel: (name: ChannelKind) => Promise; - logHooks: { - info: (msg: string) => void; - warn: (msg: string) => void; - error: (msg: string) => void; - }; - logChannels: { info: (msg: string) => void; error: (msg: string) => void }; - logCron: { error: (msg: string) => void }; - logReload: { - info: (msg: string) => void; - warn: (msg: string) => void; - error: (msg: string) => void; - }; - channelManager: GatewayChannelManager; - activateRuntimeSecrets: ActivateRuntimeSecrets; - resolveSharedGatewaySessionGenerationForConfig: (config: OpenClawConfig) => string | undefined; - sharedGatewaySessionGenerationState: SharedGatewaySessionGenerationState; - clients: Iterable; -}) { +export function startManagedGatewayConfigReloader(params: ManagedGatewayConfigReloaderParams) { if (params.minimalTestGateway) { return { stop: async () => {} }; }