forked from EduCraft/curriculum-project-hub
fix(hub): enable SDK auto-compact for resumed sessions
Sessions resume across runs (ADR-0017). Without auto-compact the SDK jsonl grows unboundedly — a 7-day / 26-run session hit 31 MB / 1995 lines, making every API call resend the full history and inflating a trivial "change a title" task to 22 minutes. Enable autoCompactEnabled in the SDK settings so the SDK compacts automatically when the context window fills.
This commit is contained in:
@@ -211,6 +211,12 @@ export async function runAgent(req: RunRequest): Promise<RunResult> {
|
|||||||
settings: {
|
settings: {
|
||||||
disableBundledSkills: true,
|
disableBundledSkills: true,
|
||||||
todoFeatureEnabled: true,
|
todoFeatureEnabled: true,
|
||||||
|
// Sessions are resumed across runs (ADR-0017). Without auto-compact
|
||||||
|
// the SDK jsonl grows unboundedly — a long-lived project session hit
|
||||||
|
// 31 MB / 1995 lines, making every API call resend the entire history
|
||||||
|
// and inflating a "change a title" task to 22 minutes. Let the SDK
|
||||||
|
// compact automatically when the context window fills.
|
||||||
|
autoCompactEnabled: true,
|
||||||
},
|
},
|
||||||
...(hasSkills && security.skillPluginRoot !== undefined
|
...(hasSkills && security.skillPluginRoot !== undefined
|
||||||
? { plugins: [{ type: "local" as const, path: security.skillPluginRoot, skipMcpDiscovery: true }] }
|
? { plugins: [{ type: "local" as const, path: security.skillPluginRoot, skipMcpDiscovery: true }] }
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ describe("runAgent", () => {
|
|||||||
permissionMode: "bypassPermissions",
|
permissionMode: "bypassPermissions",
|
||||||
allowDangerouslySkipPermissions: true,
|
allowDangerouslySkipPermissions: true,
|
||||||
settingSources: [],
|
settingSources: [],
|
||||||
settings: { disableBundledSkills: true, todoFeatureEnabled: true },
|
settings: { disableBundledSkills: true, todoFeatureEnabled: true, autoCompactEnabled: true },
|
||||||
tools: expect.arrayContaining(["Read", "Write", "Edit", "Bash", "Glob", "Grep", "TodoWrite"]),
|
tools: expect.arrayContaining(["Read", "Write", "Edit", "Bash", "Glob", "Grep", "TodoWrite"]),
|
||||||
allowedTools: expect.arrayContaining(["TodoWrite", "mcp__cph_hub__todo_write"]),
|
allowedTools: expect.arrayContaining(["TodoWrite", "mcp__cph_hub__todo_write"]),
|
||||||
disallowedTools: expect.arrayContaining(["Agent", "SendMessage", "Task", "TeamCreate", "ScheduleWakeup"]),
|
disallowedTools: expect.arrayContaining(["Agent", "SendMessage", "Task", "TeamCreate", "ScheduleWakeup"]),
|
||||||
|
|||||||
Reference in New Issue
Block a user