chore: update opencode api to v2
Release / release (push) Failing after 5s

This commit is contained in:
2026-09-12 10:29:24 +02:00
parent 411cdd13ff
commit c48fe99b96
13 changed files with 740 additions and 37 deletions
+151
View File
@@ -95,6 +95,67 @@ test("normalizes additional named limits with stable IDs distinct from equal dur
).toEqual(["codex_luna:primary"]);
});
test("ignores Spark and representative reserve limits while preserving other quotas", () => {
const normalized = normalizeQuota({
...plus,
additional_rate_limits: [
{
limit_name: "gpt 5_3 codex spark",
metered_feature: "CODEX-BENGALFOX",
rate_limit: {
primary_window: { used_percent: "invalid" },
},
},
{
limit_name: "Luna Reserve",
metered_feature: "codex_luna",
rate_limit: { primary_window: { used_percent: "invalid" } },
},
{
limit_name: "Luna overflow",
metered_feature: "codex_luna_reserve",
rate_limit: { primary_window: { used_percent: "invalid" } },
},
{
limit_name: "GPT-5.6 Luna",
metered_feature: "codex_luna",
rate_limit: { primary_window: plus.rate_limit.primary_window },
},
{
limit_name: "Preserved capacity",
metered_feature: "codex_preserved",
rate_limit: { primary_window: plus.rate_limit.primary_window },
},
],
});
expect(normalized?.windows.map((window) => window.id)).toEqual([
"codex:primary",
"codex:secondary",
"codex_luna:primary",
"codex_preserved:primary",
]);
expect(normalized?.windows.slice(2).map((window) => window.label)).toEqual([
"GPT-5.6 Luna",
"Preserved capacity",
]);
});
test("returns no quota for a Spark-only payload", () => {
expect(
normalizeQuota({
plan_type: "pro",
additional_rate_limits: [
{
limit_name: "GPT-5.3-Codex-Spark",
metered_feature: "codex_bengalfox",
rate_limit: { primary_window: plus.rate_limit.primary_window },
},
],
}),
).toBeUndefined();
});
function fixture(
credential:
| {
@@ -190,6 +251,96 @@ function fixture(
};
}
async function accountFingerprint(id: string) {
const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(`account:${id}`));
return Buffer.from(bytes).toString("hex");
}
test("removes cached Spark and representative reserve windows and consumption while offline", async () => {
const cached = {
account: await accountFingerprint("account-one"),
latest: {
plan: "pro",
fetchedAt: 123,
windows: [
{
id: "codex:primary",
label: null,
seconds: 18_000,
used: 12.5,
resetsAt: 2_000_000_000_000,
},
{
id: "CODEX-BENGALFOX:primary",
label: "GPT 5.3 Codex Spark",
seconds: 18_000,
used: 80,
resetsAt: 2_000_000_000_000,
},
{
id: "codex_luna_reserve:primary",
label: "Luna Reserve",
seconds: 18_000,
used: 60,
resetsAt: 2_000_000_000_000,
},
{
id: "codex_luna:primary",
label: "GPT-5.6 Luna",
seconds: 18_000,
used: 20,
resetsAt: 2_000_000_000_000,
},
],
},
sessions: {
root: {
"codex:primary": {
resetsAt: 2_000_000_000_000,
lastUsed: 12.5,
consumed: 2,
},
"CODEX-BENGALFOX:primary": {
resetsAt: 2_000_000_000_000,
lastUsed: 80,
consumed: 40,
},
"codex_luna_reserve:primary": {
resetsAt: 2_000_000_000_000,
lastUsed: 60,
consumed: 30,
},
"codex_luna:primary": {
resetsAt: 2_000_000_000_000,
lastUsed: 20,
consumed: 3,
},
},
},
};
const result = fixture(
{
type: "oauth",
access: "opaque",
refresh: "refresh",
metadata: { accountID: "account-one" },
},
[new Error("offline")],
1_000_000,
[Promise.resolve(cached)],
);
await result.tracker.init();
const status = await result.tracker.status("root");
expect(status?.windows.map((window) => window.id)).toEqual([
"codex:primary",
"codex_luna:primary",
]);
expect(status?.windows[0]?.sessionConsumed).toBe(2);
expect(status?.windows[1]?.sessionConsumed).toBe(3);
await result.tracker.dispose();
});
test("activates only for OAuth and establishes an awaited root baseline shared by children", async () => {
const key = fixture({ type: "key", key: "secret" }, [plus]);
await key.tracker.init();