@@ -22,7 +22,6 @@ import { registerSessionMaintenancePreserveKeysProvider } from "./store-maintena
|
22 | 22 | import { |
23 | 23 | clearSessionStoreCacheForTest, |
24 | 24 | loadSessionStore, |
25 | | -runQuotaSuspensionMaintenance, |
26 | 25 | saveSessionStore, |
27 | 26 | updateSessionStore, |
28 | 27 | } from "./store.js"; |
@@ -892,57 +891,6 @@ describe("Integration: saveSessionStore with pruning", () => {
|
892 | 891 | } |
893 | 892 | }); |
894 | 893 | |
895 | | -it("persists quota suspension TTL transitions through writer maintenance", async () => { |
896 | | -const now = Date.now(); |
897 | | -const store: Record<string, SessionEntry> = { |
898 | | -suspended: { |
899 | | - ...makeEntry(now), |
900 | | -quotaSuspension: { |
901 | | -schemaVersion: 1, |
902 | | -suspendedAt: now - 30_000, |
903 | | -expectedResumeBy: now - 1, |
904 | | -state: "suspended", |
905 | | -reason: "quota_exhausted", |
906 | | -failedProvider: "anthropic", |
907 | | -failedModel: "claude-opus-4-6", |
908 | | -laneId: "main", |
909 | | -}, |
910 | | -}, |
911 | | -active: { |
912 | | - ...makeEntry(now), |
913 | | -quotaSuspension: { |
914 | | -schemaVersion: 1, |
915 | | -suspendedAt: now - 61_000, |
916 | | -expectedResumeBy: now - 31_000, |
917 | | -state: "active", |
918 | | -reason: "circuit_open", |
919 | | -failedProvider: "anthropic", |
920 | | -failedModel: "claude-opus-4-6", |
921 | | -laneId: "main", |
922 | | -}, |
923 | | -}, |
924 | | -}; |
925 | | -await fs.writeFile(storePath, JSON.stringify(store), "utf-8"); |
926 | | - |
927 | | -const result = await runQuotaSuspensionMaintenance({ |
928 | | - storePath, |
929 | | - now, |
930 | | -ttlMs: 30_000, |
931 | | -log: false, |
932 | | -}); |
933 | | - |
934 | | -expect(result).toEqual({ resumed: [{ sessionKey: "suspended", laneId: "main" }], cleared: 1 }); |
935 | | -const loaded = loadSessionStore(storePath, { skipCache: true }); |
936 | | -expect(loaded.suspended?.quotaSuspension?.state).toBe("resuming"); |
937 | | -expect(loaded.active?.quotaSuspension).toBeUndefined(); |
938 | | -const persisted = JSON.parse(await fs.readFile(storePath, "utf-8")) as Record< |
939 | | -string, |
940 | | -SessionEntry |
941 | | ->; |
942 | | -expect(persisted.suspended?.quotaSuspension?.state).toBe("resuming"); |
943 | | -expect(persisted.active?.quotaSuspension).toBeUndefined(); |
944 | | -}); |
945 | | - |
946 | 894 | it("updateSessionStore batches cap-hit maintenance instead of pruning every new session", async () => { |
947 | 895 | const now = Date.now(); |
948 | 896 | const store = Object.fromEntries( |
|