mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-02-18 10:40:50 +08:00
fix(quota): avoid fallback mislabeling for additional codex limits
This commit is contained in:
@@ -247,8 +247,10 @@ const buildCodexQuotaWindows = (payload: CodexUsagePayload, t: TFunction): Codex
|
||||
const rawAllowed = rateLimit?.allowed;
|
||||
|
||||
const pickClassifiedWindows = (
|
||||
limitInfo?: CodexRateLimitInfo | null
|
||||
limitInfo?: CodexRateLimitInfo | null,
|
||||
options?: { allowOrderFallback?: boolean }
|
||||
): { fiveHourWindow: CodexUsageWindow | null; weeklyWindow: CodexUsageWindow | null } => {
|
||||
const allowOrderFallback = options?.allowOrderFallback ?? true;
|
||||
const primaryWindow = limitInfo?.primary_window ?? limitInfo?.primaryWindow ?? null;
|
||||
const secondaryWindow = limitInfo?.secondary_window ?? limitInfo?.secondaryWindow ?? null;
|
||||
const rawWindows = [primaryWindow, secondaryWindow];
|
||||
@@ -266,12 +268,14 @@ const buildCodexQuotaWindows = (payload: CodexUsagePayload, t: TFunction): Codex
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to primary/secondary semantics when window seconds are missing or unknown.
|
||||
if (!fiveHourWindow) {
|
||||
fiveHourWindow = primaryWindow && primaryWindow !== weeklyWindow ? primaryWindow : null;
|
||||
}
|
||||
if (!weeklyWindow) {
|
||||
weeklyWindow = secondaryWindow && secondaryWindow !== fiveHourWindow ? secondaryWindow : null;
|
||||
// For legacy payloads without window duration, fallback to primary/secondary ordering.
|
||||
if (allowOrderFallback) {
|
||||
if (!fiveHourWindow) {
|
||||
fiveHourWindow = primaryWindow && primaryWindow !== weeklyWindow ? primaryWindow : null;
|
||||
}
|
||||
if (!weeklyWindow) {
|
||||
weeklyWindow = secondaryWindow && secondaryWindow !== fiveHourWindow ? secondaryWindow : null;
|
||||
}
|
||||
}
|
||||
|
||||
return { fiveHourWindow, weeklyWindow };
|
||||
@@ -333,7 +337,7 @@ const buildCodexQuotaWindows = (payload: CodexUsagePayload, t: TFunction): Codex
|
||||
`additional-${index + 1}`;
|
||||
|
||||
const idPrefix = normalizeWindowId(limitName) || `additional-${index + 1}`;
|
||||
const additionalWindows = pickClassifiedWindows(rateInfo);
|
||||
const additionalWindows = pickClassifiedWindows(rateInfo, { allowOrderFallback: false });
|
||||
const additionalLimitReached = rateInfo.limit_reached ?? rateInfo.limitReached;
|
||||
const additionalAllowed = rateInfo.allowed;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user