
























@@ -2,6 +2,8 @@ import { normalizeProviderId } from "@openclaw/model-catalog-core/provider-id";
22import type { OpenClawConfig } from "../../config/types.openclaw.js";
33import { createSubsystemLogger } from "../../logging/subsystem.js";
44import {
5+asDateTimestampMs,
6+isFutureDateTimestampMs,
57positiveSecondsToSafeMilliseconds,
68resolveExpiresAtMsFromEpochSeconds,
79} from "../../shared/number-coercion.js";
@@ -812,8 +814,7 @@ export async function markAuthProfileBlockedUntil(params: {
812814if (
813815!profile ||
814816isAuthCooldownBypassedForProvider(profile.provider) ||
815-!Number.isFinite(blockedUntil) ||
816-blockedUntil <= Date.now()
817+!isFutureDateTimestampMs(blockedUntil)
817818) {
818819return;
819820}
@@ -828,16 +829,16 @@ export async function markAuthProfileBlockedUntil(params: {
828829if (!profile || isAuthCooldownBypassedForProvider(profile.provider)) {
829830return false;
830831}
831-const now = Date.now();
832+const now = asDateTimestampMs(Date.now());
833+if (now === undefined) {
834+return false;
835+}
832836previousStats = freshStore.usageStats?.[profileId];
833837updateTime = now;
834838const existingBlockedUntil = previousStats?.blockedUntil;
835-const activeBlockedUntil =
836-typeof existingBlockedUntil === "number" &&
837-Number.isFinite(existingBlockedUntil) &&
838-existingBlockedUntil > now
839- ? existingBlockedUntil
840- : 0;
839+const activeBlockedUntil = isFutureDateTimestampMs(existingBlockedUntil, { nowMs: now })
840+ ? existingBlockedUntil
841+ : 0;
841842nextStats = {
842843 ...previousStats,
843844blockedUntil: Math.max(activeBlockedUntil, blockedUntil),
@@ -876,15 +877,15 @@ export async function markAuthProfileBlockedUntil(params: {
876877return;
877878}
878879879-const now = Date.now();
880+const now = asDateTimestampMs(Date.now());
881+if (now === undefined) {
882+return;
883+}
880884previousStats = store.usageStats?.[profileId];
881885const existingBlockedUntil = previousStats?.blockedUntil;
882-const activeBlockedUntil =
883-typeof existingBlockedUntil === "number" &&
884-Number.isFinite(existingBlockedUntil) &&
885-existingBlockedUntil > now
886- ? existingBlockedUntil
887- : 0;
886+const activeBlockedUntil = isFutureDateTimestampMs(existingBlockedUntil, { nowMs: now })
887+ ? existingBlockedUntil
888+ : 0;
888889nextStats = {
889890 ...previousStats,
890891blockedUntil: Math.max(activeBlockedUntil, blockedUntil),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。