Buckets:
| import { describe, expect, test } from "bun:test" | |
| import type { PermissionRequest, Session } from "@opencode-ai/sdk/v2/client" | |
| import { trimSessions } from "./session-trim" | |
| const session = (input: { id: string; parentID?: string; created: number; updated?: number; archived?: number }) => | |
| ({ | |
| id: input.id, | |
| parentID: input.parentID, | |
| time: { | |
| created: input.created, | |
| updated: input.updated, | |
| archived: input.archived, | |
| }, | |
| }) as Session | |
| describe("trimSessions", () => { | |
| test("keeps base roots and recent roots beyond the limit", () => { | |
| const now = 1_000_000 | |
| const list = [ | |
| session({ id: "a", created: now - 100_000 }), | |
| session({ id: "b", created: now - 90_000 }), | |
| session({ id: "c", created: now - 80_000 }), | |
| session({ id: "d", created: now - 70_000, updated: now - 1_000 }), | |
| session({ id: "e", created: now - 60_000, archived: now - 10 }), | |
| ] | |
| const result = trimSessions(list, { limit: 2, permission: {}, now }) | |
| expect(result.map((x) => x.id)).toEqual(["a", "b", "c", "d"]) | |
| }) | |
| test("keeps children when root is kept, permission exists, or child is recent", () => { | |
| const now = 1_000_000 | |
| const list = [ | |
| session({ id: "root-1", created: now - 1000 }), | |
| session({ id: "root-2", created: now - 2000 }), | |
| session({ id: "z-root", created: now - 30_000_000 }), | |
| session({ id: "child-kept-by-root", parentID: "root-1", created: now - 20_000_000 }), | |
| session({ id: "child-kept-by-permission", parentID: "z-root", created: now - 20_000_000 }), | |
| session({ id: "child-kept-by-recency", parentID: "z-root", created: now - 500 }), | |
| session({ id: "child-trimmed", parentID: "z-root", created: now - 20_000_000 }), | |
| ] | |
| const result = trimSessions(list, { | |
| limit: 2, | |
| permission: { | |
| "child-kept-by-permission": [{ id: "perm-1" } as PermissionRequest], | |
| }, | |
| now, | |
| }) | |
| expect(result.map((x) => x.id)).toEqual([ | |
| "child-kept-by-permission", | |
| "child-kept-by-recency", | |
| "child-kept-by-root", | |
| "root-1", | |
| "root-2", | |
| ]) | |
| }) | |
| }) | |
Xet Storage Details
- Size:
- 2.11 kB
- Xet hash:
- 83cd2a6e7f1f368492b1081e285f55a01d22f706f34cf59f73db1d6a53de6abe
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.