feat(quota): add opt-in Codex auto-ping
Generalize Claude 5h auto-ping into a provider-generic scheduler and add opt-in Codex auto-ping that warms the next 5h window via a tiny gpt-5.5 request when session.resetAt slides. Default off, per-connection toggle, failure cooldown, blocking-quota skip, drains stream before success. Closes #2107 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
committed by
decolua
co-authored by
Cursor
parent
fc8722e897
commit
b66b5c68ce
@@ -2,6 +2,7 @@ import { NextResponse } from "next/server";
|
||||
import { getSettings, updateSettings } from "@/lib/localDb";
|
||||
import { applyOutboundProxyEnv } from "@/lib/network/outboundProxy";
|
||||
import { resetComboRotation } from "open-sse/services/combo.js";
|
||||
import { runQuotaAutoPingTick } from "@/shared/services/quotaAutoPing";
|
||||
import bcrypt from "bcryptjs";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
@@ -96,6 +97,16 @@ export async function PATCH(request) {
|
||||
resetComboRotation();
|
||||
}
|
||||
|
||||
if (
|
||||
Object.prototype.hasOwnProperty.call(body, "claudeAutoPing") ||
|
||||
Object.prototype.hasOwnProperty.call(body, "codexAutoPing")
|
||||
) {
|
||||
// Run once immediately after opt-in changes so users don't wait for the next scheduler tick.
|
||||
runQuotaAutoPingTick().catch((error) => {
|
||||
console.warn("[AutoPing] settings-triggered tick failed:", error.message);
|
||||
});
|
||||
}
|
||||
|
||||
const { password, oidcClientSecret, ...safeSettings } = settings;
|
||||
safeSettings.oidcConfigured = !!(safeSettings.oidcIssuerUrl && safeSettings.oidcClientId && oidcClientSecret);
|
||||
return NextResponse.json(safeSettings, { headers: SETTINGS_RESPONSE_HEADERS });
|
||||
|
||||
Reference in New Issue
Block a user