mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-02-19 19:20:49 +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 rawAllowed = rateLimit?.allowed;
|
||||||
|
|
||||||
const pickClassifiedWindows = (
|
const pickClassifiedWindows = (
|
||||||
limitInfo?: CodexRateLimitInfo | null
|
limitInfo?: CodexRateLimitInfo | null,
|
||||||
|
options?: { allowOrderFallback?: boolean }
|
||||||
): { fiveHourWindow: CodexUsageWindow | null; weeklyWindow: CodexUsageWindow | null } => {
|
): { fiveHourWindow: CodexUsageWindow | null; weeklyWindow: CodexUsageWindow | null } => {
|
||||||
|
const allowOrderFallback = options?.allowOrderFallback ?? true;
|
||||||
const primaryWindow = limitInfo?.primary_window ?? limitInfo?.primaryWindow ?? null;
|
const primaryWindow = limitInfo?.primary_window ?? limitInfo?.primaryWindow ?? null;
|
||||||
const secondaryWindow = limitInfo?.secondary_window ?? limitInfo?.secondaryWindow ?? null;
|
const secondaryWindow = limitInfo?.secondary_window ?? limitInfo?.secondaryWindow ?? null;
|
||||||
const rawWindows = [primaryWindow, secondaryWindow];
|
const rawWindows = [primaryWindow, secondaryWindow];
|
||||||
@@ -266,13 +268,15 @@ const buildCodexQuotaWindows = (payload: CodexUsagePayload, t: TFunction): Codex
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback to primary/secondary semantics when window seconds are missing or unknown.
|
// For legacy payloads without window duration, fallback to primary/secondary ordering.
|
||||||
|
if (allowOrderFallback) {
|
||||||
if (!fiveHourWindow) {
|
if (!fiveHourWindow) {
|
||||||
fiveHourWindow = primaryWindow && primaryWindow !== weeklyWindow ? primaryWindow : null;
|
fiveHourWindow = primaryWindow && primaryWindow !== weeklyWindow ? primaryWindow : null;
|
||||||
}
|
}
|
||||||
if (!weeklyWindow) {
|
if (!weeklyWindow) {
|
||||||
weeklyWindow = secondaryWindow && secondaryWindow !== fiveHourWindow ? secondaryWindow : null;
|
weeklyWindow = secondaryWindow && secondaryWindow !== fiveHourWindow ? secondaryWindow : null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return { fiveHourWindow, weeklyWindow };
|
return { fiveHourWindow, weeklyWindow };
|
||||||
};
|
};
|
||||||
@@ -333,7 +337,7 @@ const buildCodexQuotaWindows = (payload: CodexUsagePayload, t: TFunction): Codex
|
|||||||
`additional-${index + 1}`;
|
`additional-${index + 1}`;
|
||||||
|
|
||||||
const idPrefix = normalizeWindowId(limitName) || `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 additionalLimitReached = rateInfo.limit_reached ?? rateInfo.limitReached;
|
||||||
const additionalAllowed = rateInfo.allowed;
|
const additionalAllowed = rateInfo.allowed;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user