fix(clickclack): normalize reconnect intervals · openclaw/openclaw@604339e
steipete
·
2026-05-31
·
via Recent Commits to openclaw:main
File tree
extensions/clickclack/src
| Original file line number | Diff line number | Diff line change |
|---|
@@ -157,4 +157,26 @@ describe("ClickClack account resolution", () => {
|
157 | 157 | workspace: "wsp_1", |
158 | 158 | }); |
159 | 159 | }); |
| 160 | + |
| 161 | +it("normalizes reconnect intervals to the public config bounds", () => { |
| 162 | +const cfg = { |
| 163 | +channels: { |
| 164 | +clickclack: { |
| 165 | +enabled: true, |
| 166 | +baseUrl: "https://app.clickclack.chat", |
| 167 | +token: "ccb_global", |
| 168 | +workspace: "wsp_1", |
| 169 | +reconnectMs: 1, |
| 170 | +accounts: { |
| 171 | +slow: { |
| 172 | +reconnectMs: 1_000_000, |
| 173 | +}, |
| 174 | +}, |
| 175 | +}, |
| 176 | +}, |
| 177 | +} satisfies CoreConfig; |
| 178 | + |
| 179 | +expect(resolveClickClackAccount({ cfg }).reconnectMs).toBe(100); |
| 180 | +expect(resolveClickClackAccount({ cfg, accountId: "slow" }).reconnectMs).toBe(60_000); |
| 181 | +}); |
160 | 182 | }); |
| Original file line number | Diff line number | Diff line change |
|---|
@@ -4,6 +4,7 @@ import {
|
4 | 4 | } from "openclaw/plugin-sdk/account-helpers"; |
5 | 5 | import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id"; |
6 | 6 | import { resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution"; |
| 7 | +import { resolveIntegerOption } from "openclaw/plugin-sdk/number-runtime"; |
7 | 8 | import { resolveDefaultSecretProviderAlias } from "openclaw/plugin-sdk/provider-auth"; |
8 | 9 | import { |
9 | 10 | normalizeSecretInputString, |
@@ -14,6 +15,8 @@ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runti
|
14 | 15 | import type { ClickClackAccountConfig, CoreConfig, ResolvedClickClackAccount } from "./types.js"; |
15 | 16 | |
16 | 17 | const DEFAULT_RECONNECT_MS = 1_500; |
| 18 | +const MIN_RECONNECT_MS = 100; |
| 19 | +const MAX_RECONNECT_MS = 60_000; |
17 | 20 | |
18 | 21 | const { |
19 | 22 | listAccountIds: listClickClackAccountIds, |
@@ -128,7 +131,10 @@ export function resolveClickClackAccount(params: {
|
128 | 131 | toolsAllow: merged.toolsAllow, |
129 | 132 | defaultTo: merged.defaultTo?.trim() || "channel:general", |
130 | 133 | allowFrom: merged.allowFrom ?? ["*"], |
131 | | -reconnectMs: merged.reconnectMs ?? DEFAULT_RECONNECT_MS, |
| 134 | +reconnectMs: resolveIntegerOption(merged.reconnectMs, DEFAULT_RECONNECT_MS, { |
| 135 | +min: MIN_RECONNECT_MS, |
| 136 | +max: MAX_RECONNECT_MS, |
| 137 | +}), |
132 | 138 | config: { |
133 | 139 | ...merged, |
134 | 140 | allowFrom: merged.allowFrom ?? ["*"], |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。