Skip to content

Commit 5629a3d

Browse files
scoootscooobclaude
andcommitted
fix(synology-chat): respect SYNOLOGY_RATE_LIMIT=0 in env var parsing
parseInt(envRateLimit, 10) || 30 drops valid 0 because 0 is falsy. Switch to ?? (nullish coalescing) so only NaN triggers the default. Fixes #39191 Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent e3c21c9 commit 5629a3d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

extensions/synology-chat/src/accounts.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,11 @@ describe("resolveAccount", () => {
130130
const account = resolveAccount(cfg);
131131
expect(account.allowedUserIds).toEqual(["u1", "u2"]);
132132
});
133+
134+
it("respects SYNOLOGY_RATE_LIMIT=0 instead of defaulting to 30", () => {
135+
process.env.SYNOLOGY_RATE_LIMIT = "0";
136+
const cfg = { channels: { "synology-chat": {} } };
137+
const account = resolveAccount(cfg);
138+
expect(account.rateLimitPerMinute).toBe(0);
139+
});
133140
});

extensions/synology-chat/src/accounts.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ export function resolveAccount(cfg: any, accountId?: string | null): ResolvedSyn
6363
const envNasHost = process.env.SYNOLOGY_NAS_HOST ?? "localhost";
6464
const envAllowedUserIds = process.env.SYNOLOGY_ALLOWED_USER_IDS ?? "";
6565
const envRateLimit = process.env.SYNOLOGY_RATE_LIMIT;
66+
const parsedRateLimit = envRateLimit != null ? parseInt(envRateLimit, 10) : NaN;
67+
const envRateLimitValue = Number.isFinite(parsedRateLimit) ? parsedRateLimit : 30;
6668
const envBotName = process.env.OPENCLAW_BOT_NAME ?? "OpenClaw";
6769

6870
// Merge: account override > base channel config > env var
@@ -78,9 +80,7 @@ export function resolveAccount(cfg: any, accountId?: string | null): ResolvedSyn
7880
accountOverride.allowedUserIds ?? channelCfg.allowedUserIds ?? envAllowedUserIds,
7981
),
8082
rateLimitPerMinute:
81-
accountOverride.rateLimitPerMinute ??
82-
channelCfg.rateLimitPerMinute ??
83-
(envRateLimit ? parseInt(envRateLimit, 10) || 30 : 30),
83+
accountOverride.rateLimitPerMinute ?? channelCfg.rateLimitPerMinute ?? envRateLimitValue,
8484
botName: accountOverride.botName ?? channelCfg.botName ?? envBotName,
8585
allowInsecureSsl: accountOverride.allowInsecureSsl ?? channelCfg.allowInsecureSsl ?? false,
8686
};

0 commit comments

Comments
 (0)