diff --git a/CHANGELOG.md b/CHANGELOG.md index 0953c1c8855..3a70f2946f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -336,7 +336,6 @@ Docs: https://docs.openclaw.ai - macOS: fix cron payload summary rendering and ISO 8601 formatter concurrency safety. - Discord: enforce DM allowlists for agent components (buttons/select menus), honoring pairing store approvals and tag matches. (#11254) Thanks @thedudeabidesai. - ## 2026.2.2-3 ### Fixes diff --git a/extensions/matrix/src/matrix/client/config.ts b/extensions/matrix/src/matrix/client/config.ts index 5265e7680fd..d454d067340 100644 --- a/extensions/matrix/src/matrix/client/config.ts +++ b/extensions/matrix/src/matrix/client/config.ts @@ -10,26 +10,17 @@ function clean(value?: string): string { } /** Shallow-merge known nested config sub-objects so partial overrides inherit base values. */ -function deepMergeConfig( - base: Record, - override: Record, -): Record { - const merged = { ...base, ...override }; +function deepMergeConfig>(base: T, override: Partial): T { + const merged = { ...base, ...override } as Record; // Merge known nested objects (dm, actions) so partial overrides keep base fields for (const key of ["dm", "actions"] as const) { - if ( - typeof base[key] === "object" && - base[key] !== null && - typeof override[key] === "object" && - override[key] !== null - ) { - merged[key] = { - ...(base[key] as Record), - ...(override[key] as Record), - }; + const b = base[key]; + const o = override[key]; + if (typeof b === "object" && b !== null && typeof o === "object" && o !== null) { + merged[key] = { ...(b as Record), ...(o as Record) }; } } - return merged; + return merged as T; } /** @@ -59,8 +50,7 @@ export function resolveMatrixConfigForAccount( // Deep merge: account-specific values override top-level values, preserving // nested object inheritance (dm, actions, groups) so partial overrides work. - const useAccountConfig = accountConfig !== undefined; - const matrix = useAccountConfig ? deepMergeConfig(matrixBase, accountConfig) : matrixBase; + const matrix = accountConfig ? deepMergeConfig(matrixBase, accountConfig) : matrixBase; const homeserver = clean(matrix.homeserver) || clean(env.MATRIX_HOMESERVER); const userId = clean(matrix.userId) || clean(env.MATRIX_USER_ID);