@@ -130,6 +130,16 @@ function inspectTokenValue(params: { cfg: OpenClawConfig; value: unknown }): {
130130 return null ;
131131}
132132
133+ function hasConfiguredTelegramAccounts ( cfg : OpenClawConfig ) : boolean {
134+ const accounts = cfg . channels ?. telegram ?. accounts ;
135+ return (
136+ ! ! accounts &&
137+ typeof accounts === "object" &&
138+ ! Array . isArray ( accounts ) &&
139+ Object . keys ( accounts ) . length > 0
140+ ) ;
141+ }
142+
133143function inspectTelegramAccountPrimary ( params : {
134144 cfg : OpenClawConfig ;
135145 accountId : string ;
@@ -140,6 +150,10 @@ function inspectTelegramAccountPrimary(params: {
140150 const enabled = params . cfg . channels ?. telegram ?. enabled !== false && merged . enabled !== false ;
141151
142152 const accountConfig = resolveTelegramAccountConfig ( params . cfg , accountId ) ;
153+ const allowChannelCredentialFallback =
154+ accountId === DEFAULT_ACCOUNT_ID ||
155+ ! ! accountConfig ||
156+ ! hasConfiguredTelegramAccounts ( params . cfg ) ;
143157 const accountTokenFile = inspectTokenFile ( accountConfig ?. tokenFile ) ;
144158 if ( accountTokenFile ) {
145159 return {
@@ -168,35 +182,37 @@ function inspectTelegramAccountPrimary(params: {
168182 } ;
169183 }
170184
171- const channelTokenFile = inspectTokenFile ( params . cfg . channels ?. telegram ?. tokenFile ) ;
172- if ( channelTokenFile ) {
173- return {
174- accountId,
175- enabled,
176- name : normalizeOptionalString ( merged . name ) ,
177- token : channelTokenFile . token ,
178- tokenSource : channelTokenFile . tokenSource ,
179- tokenStatus : channelTokenFile . tokenStatus ,
180- configured : channelTokenFile . tokenStatus !== "missing" ,
181- config : merged ,
182- } ;
183- }
185+ if ( allowChannelCredentialFallback ) {
186+ const channelTokenFile = inspectTokenFile ( params . cfg . channels ?. telegram ?. tokenFile ) ;
187+ if ( channelTokenFile ) {
188+ return {
189+ accountId,
190+ enabled,
191+ name : normalizeOptionalString ( merged . name ) ,
192+ token : channelTokenFile . token ,
193+ tokenSource : channelTokenFile . tokenSource ,
194+ tokenStatus : channelTokenFile . tokenStatus ,
195+ configured : channelTokenFile . tokenStatus !== "missing" ,
196+ config : merged ,
197+ } ;
198+ }
184199
185- const channelToken = inspectTokenValue ( {
186- cfg : params . cfg ,
187- value : params . cfg . channels ?. telegram ?. botToken ,
188- } ) ;
189- if ( channelToken ) {
190- return {
191- accountId,
192- enabled,
193- name : normalizeOptionalString ( merged . name ) ,
194- token : channelToken . token ,
195- tokenSource : channelToken . tokenSource ,
196- tokenStatus : channelToken . tokenStatus ,
197- configured : channelToken . tokenStatus !== "missing" ,
198- config : merged ,
199- } ;
200+ const channelToken = inspectTokenValue ( {
201+ cfg : params . cfg ,
202+ value : params . cfg . channels ?. telegram ?. botToken ,
203+ } ) ;
204+ if ( channelToken ) {
205+ return {
206+ accountId,
207+ enabled,
208+ name : normalizeOptionalString ( merged . name ) ,
209+ token : channelToken . token ,
210+ tokenSource : channelToken . tokenSource ,
211+ tokenStatus : channelToken . tokenStatus ,
212+ configured : channelToken . tokenStatus !== "missing" ,
213+ config : merged ,
214+ } ;
215+ }
200216 }
201217
202218 const allowEnv = accountId === DEFAULT_ACCOUNT_ID ;
0 commit comments