fix(telegram): cap configured request timeouts · openclaw/openclaw@d69ee67
steipete
·
2026-05-30
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import { MAX_TIMER_TIMEOUT_MS } from "openclaw/plugin-sdk/number-runtime"; |
1 | 2 | import { describe, expect, it } from "vitest"; |
2 | 3 | import { |
3 | 4 | resolveTelegramLongPollTimeoutSeconds, |
@@ -33,6 +34,15 @@ describe("resolveTelegramRequestTimeoutMs", () => {
|
33 | 34 | expect(resolveTelegramRequestTimeoutMs("getupdates", 90)).toBe(45_000); |
34 | 35 | }); |
35 | 36 | |
| 37 | +it("caps oversized configured timeoutSeconds before outbound timers use them", () => { |
| 38 | +expect(resolveTelegramRequestTimeoutMs("sendmessage", Number.MAX_SAFE_INTEGER)).toBe( |
| 39 | +MAX_TIMER_TIMEOUT_MS, |
| 40 | +); |
| 41 | +expect(resolveTelegramRequestTimeoutMs("sendmessage", Number.MAX_VALUE)).toBe( |
| 42 | +MAX_TIMER_TIMEOUT_MS, |
| 43 | +); |
| 44 | +}); |
| 45 | + |
36 | 46 | it("does not let low timeoutSeconds shorten method guards", () => { |
37 | 47 | expect(resolveTelegramRequestTimeoutMs("sendmessage", 10)).toBe(60_000); |
38 | 48 | expect(resolveTelegramRequestTimeoutMs("getme", 10)).toBe(15_000); |
@@ -70,4 +80,11 @@ describe("resolveTelegramStartupProbeTimeoutMs", () => {
|
70 | 80 | it("honors higher configured timeoutSeconds", () => { |
71 | 81 | expect(resolveTelegramStartupProbeTimeoutMs(60)).toBe(60_000); |
72 | 82 | }); |
| 83 | + |
| 84 | +it("caps oversized configured timeoutSeconds before startup probe timers use them", () => { |
| 85 | +expect(resolveTelegramStartupProbeTimeoutMs(Number.MAX_SAFE_INTEGER)).toBe( |
| 86 | +MAX_TIMER_TIMEOUT_MS, |
| 87 | +); |
| 88 | +expect(resolveTelegramStartupProbeTimeoutMs(Number.MAX_VALUE)).toBe(MAX_TIMER_TIMEOUT_MS); |
| 89 | +}); |
73 | 90 | }); |
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import { |
| 2 | +finiteSecondsToTimerSafeMilliseconds, |
| 3 | +MAX_TIMER_TIMEOUT_MS, |
| 4 | +} from "openclaw/plugin-sdk/number-runtime"; |
| 5 | + |
1 | 6 | export const TELEGRAM_GET_UPDATES_REQUEST_TIMEOUT_MS = 45_000; |
2 | 7 | const TELEGRAM_OUTBOUND_TEXT_REQUEST_TIMEOUT_MS = 60_000; |
3 | 8 | const TELEGRAM_DEFAULT_LONG_POLL_TIMEOUT_SECONDS = 30; |
@@ -34,7 +39,11 @@ function resolveConfiguredTelegramRequestTimeoutMs(timeoutSeconds: unknown): num
|
34 | 39 | if (typeof timeoutSeconds !== "number" || !Number.isFinite(timeoutSeconds)) { |
35 | 40 | return undefined; |
36 | 41 | } |
37 | | -return Math.max(1, Math.floor(timeoutSeconds)) * 1000; |
| 42 | +return ( |
| 43 | +finiteSecondsToTimerSafeMilliseconds(Math.max(1, timeoutSeconds), { |
| 44 | +floorSeconds: true, |
| 45 | +}) ?? MAX_TIMER_TIMEOUT_MS |
| 46 | +); |
38 | 47 | } |
39 | 48 | |
40 | 49 | export function resolveTelegramRequestTimeoutMs( |
@@ -70,6 +79,6 @@ export function resolveTelegramStartupProbeTimeoutMs(timeoutSeconds: unknown): n
|
70 | 79 | if (typeof timeoutSeconds !== "number" || !Number.isFinite(timeoutSeconds)) { |
71 | 80 | return getMeTimeoutMs; |
72 | 81 | } |
73 | | -const configuredTimeoutMs = Math.max(1, Math.floor(timeoutSeconds)) * 1000; |
| 82 | +const configuredTimeoutMs = resolveConfiguredTelegramRequestTimeoutMs(timeoutSeconds) ?? 1_000; |
74 | 83 | return Math.max(getMeTimeoutMs, configuredTimeoutMs); |
75 | 84 | } |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。