fix(telegram): preserve implicit default account (#82794) · openclaw/openclaw@c4f20b6
giodl73-repo
·
2026-05-17
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -37,6 +37,21 @@ function listConfiguredAccountIds(cfg: OpenClawConfig): string[] {
|
37 | 37 | return [...ids]; |
38 | 38 | } |
39 | 39 | |
| 40 | +function hasConfiguredDefaultAccountSource(cfg: OpenClawConfig): boolean { |
| 41 | +const telegram = cfg.channels?.telegram; |
| 42 | +if (!telegram) { |
| 43 | +return false; |
| 44 | +} |
| 45 | +const botToken = telegram.botToken; |
| 46 | +if (typeof botToken === "string") { |
| 47 | +return botToken.trim().length > 0; |
| 48 | +} |
| 49 | +if (botToken && typeof botToken === "object") { |
| 50 | +return true; |
| 51 | +} |
| 52 | +return typeof telegram.tokenFile === "string" && telegram.tokenFile.trim().length > 0; |
| 53 | +} |
| 54 | + |
40 | 55 | function resolveBindingAccount(params: { |
41 | 56 | binding: unknown; |
42 | 57 | channelId: string; |
@@ -114,7 +129,10 @@ function resolveListedDefaultAccountId(params: {
|
114 | 129 | export function listTelegramAccountIds(cfg: OpenClawConfig): string[] { |
115 | 130 | return combineAccountIds({ |
116 | 131 | configuredAccountIds: listConfiguredAccountIds(cfg), |
117 | | -additionalAccountIds: listBoundAccountIds(cfg, "telegram"), |
| 132 | +additionalAccountIds: [ |
| 133 | + ...listBoundAccountIds(cfg, "telegram"), |
| 134 | + ...(hasConfiguredDefaultAccountSource(cfg) ? [DEFAULT_ACCOUNT_ID] : []), |
| 135 | +], |
118 | 136 | }); |
119 | 137 | } |
120 | 138 | |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -145,6 +145,33 @@ describe("resolveTelegramAccount", () => {
|
145 | 145 | expect(accounts.map((account) => account.accountId)).toEqual(["work"]); |
146 | 146 | expect(accounts[0]?.token).toBe("tok-work"); |
147 | 147 | }); |
| 148 | + |
| 149 | +it("keeps the implicit default account when named accounts are added to top-level credentials (#82780)", () => { |
| 150 | +const cfg = { |
| 151 | +channels: { |
| 152 | +telegram: { |
| 153 | +botToken: "tok-default", |
| 154 | +accounts: { |
| 155 | +fusion: { |
| 156 | +enabled: false, |
| 157 | +name: "Fusion", |
| 158 | +botToken: "tok-fusion", |
| 159 | +}, |
| 160 | +}, |
| 161 | +}, |
| 162 | +}, |
| 163 | +bindings: [{ agentId: "fusion", match: { channel: "telegram", accountId: "fusion" } }], |
| 164 | +} as unknown as OpenClawConfig; |
| 165 | + |
| 166 | +expect(listTelegramAccountIds(cfg)).toEqual(["default", "fusion"]); |
| 167 | +expect(resolveDefaultTelegramAccountId(cfg)).toBe("default"); |
| 168 | +expectNoMissingDefaultWarning(); |
| 169 | + |
| 170 | +const accounts = listEnabledTelegramAccounts(cfg); |
| 171 | +expect(accounts.map((account) => account.accountId)).toEqual(["default"]); |
| 172 | +expect(accounts[0]?.token).toBe("tok-default"); |
| 173 | +expect(accounts[0]?.tokenSource).toBe("config"); |
| 174 | +}); |
148 | 175 | }); |
149 | 176 | |
150 | 177 | describe("resolveDefaultTelegramAccountId", () => { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。