From 055c4f17a5efc431e71df09b4340bba0b82735fa Mon Sep 17 00:00:00 2001 From: Muhammed Mukhthar CM Date: Fri, 23 Jan 2026 04:42:50 +0000 Subject: [PATCH] Telegram-user: fix onboarding parse error --- extensions/telegram-user/src/onboarding.ts | 48 +++++++++++----------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/extensions/telegram-user/src/onboarding.ts b/extensions/telegram-user/src/onboarding.ts index 5380188e5..4c8e9ae85 100644 --- a/extensions/telegram-user/src/onboarding.ts +++ b/extensions/telegram-user/src/onboarding.ts @@ -19,6 +19,7 @@ import { import type { CoreConfig } from "./types.js"; const channel = "telegram-user" as const; +type TelegramUserChannelConfig = NonNullable["telegram-user"]; function setTelegramUserDmPolicy( cfg: ClawdbotConfig, @@ -26,23 +27,22 @@ function setTelegramUserDmPolicy( accountId?: string, ): ClawdbotConfig { const resolvedAccountId = normalizeAccountId(accountId) ?? DEFAULT_ACCOUNT_ID; + const current = cfg.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined; const allowFrom = policy === "open" - ? addWildcardAllowFrom( - (cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"])?.allowFrom, - ) + ? addWildcardAllowFrom(current?.allowFrom) : undefined; if (resolvedAccountId === DEFAULT_ACCOUNT_ID) { return { ...cfg, - channels: { - ...cfg.channels, - "telegram-user": { - ...(cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), - dmPolicy: policy, - ...(allowFrom ? { allowFrom } : {}), - }, + channels: { + ...cfg.channels, + "telegram-user": { + ...(current ?? {}), + dmPolicy: policy, + ...(allowFrom ? { allowFrom } : {}), + }, }, }; } @@ -52,13 +52,11 @@ function setTelegramUserDmPolicy( channels: { ...cfg.channels, "telegram-user": { - ...(cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), + ...(current ?? {}), accounts: { - ...((cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) - ?.accounts ?? {}), + ...(current?.accounts ?? {}), [resolvedAccountId]: { - ...((cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) - ?.accounts?.[resolvedAccountId] ?? {}), + ...(current?.accounts?.[resolvedAccountId] ?? {}), dmPolicy: policy, ...(allowFrom ? { allowFrom } : {}), }, @@ -118,6 +116,7 @@ async function promptTelegramUserAllowFrom(params: { ...parsed, ]; const unique = [...new Set(merged)]; + const current = params.cfg.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined; if (accountId === DEFAULT_ACCOUNT_ID) { return { @@ -125,7 +124,7 @@ async function promptTelegramUserAllowFrom(params: { channels: { ...params.cfg.channels, "telegram-user": { - ...(params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), + ...(current ?? {}), enabled: true, dmPolicy: "allowlist", allowFrom: unique, @@ -139,14 +138,12 @@ async function promptTelegramUserAllowFrom(params: { channels: { ...params.cfg.channels, "telegram-user": { - ...(params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]), + ...(current ?? {}), enabled: true, accounts: { - ...((params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) - ?.accounts ?? {}), + ...(current?.accounts ?? {}), [accountId]: { - ...((params.cfg.channels?.["telegram-user"] as CoreConfig["channels"]?.["telegram-user"]) - ?.accounts?.[accountId] ?? {}), + ...(current?.accounts?.[accountId] ?? {}), enabled: true, dmPolicy: "allowlist", allowFrom: unique, @@ -261,13 +258,14 @@ export const telegramUserOnboardingAdapter: ChannelOnboardingAdapter = { } } + const current = next.channels?.["telegram-user"] as TelegramUserChannelConfig | undefined; if (resolvedAccountId === DEFAULT_ACCOUNT_ID) { next = { ...next, channels: { ...next.channels, "telegram-user": { - ...next.channels?.["telegram-user"], + ...(current ?? {}), enabled: true, ...(useEnv ? {} @@ -284,12 +282,12 @@ export const telegramUserOnboardingAdapter: ChannelOnboardingAdapter = { channels: { ...next.channels, "telegram-user": { - ...next.channels?.["telegram-user"], + ...(current ?? {}), enabled: true, accounts: { - ...next.channels?.["telegram-user"]?.accounts, + ...(current?.accounts ?? {}), [resolvedAccountId]: { - ...next.channels?.["telegram-user"]?.accounts?.[resolvedAccountId], + ...(current?.accounts?.[resolvedAccountId] ?? {}), enabled: true, ...(useEnv ? {}