Dashboard › opencode › Distillation
ceb437bb-b01e-4af8-91c2-fd61881a779f["lore_tm_v1_J6hom2W1EmBfe75XWkK3VMkuAOQDQW8wkHloconyjI4","lore_tm_v1_ATLjFarX3-ev5ycO6FJ__WHYXR9iTVp-3C1QGgXeKGY","lore_tm_v1_jChThI_UL1rUGm2d6mPeAYfXbQlFbo7x1bGl9oLKpdc","lore_tm_v1_GMB3VyUKKuzoNKUlHVQO14yZYCcWsbbW1vq6rm-GIOA","lore_tm_v1_zsvBJxC8OWPc-txnj7arYx7sCH2UHQTvaqUWsmi0W58"]
Date: Sep 14, 2026
packages/core/test/session-runner.test.ts, the test durably fails blocked local tools when a provider turn is interrupted now queries SessionExecutionTable through Database.Service and verifies the active row for session_id = sessionID has phase: "unknown" before calling session.interrupt(sessionID).finish: "error" with Provider Step outcome unknown after interruption, and tool call-before-interrupt in error state with Tool execution outcome unknown after interruption. After replaySessionProjection(sessionID), the tool remains errored; a subsequent resume sends message roles ["user", "assistant", "tool"].packages/core/test/session-runner.test.ts includes interruption/settlement coverage: awaits started local tools before surfacing provider stream failure waits for call-before-failure to complete with { text: "settle" } before surfacing Provider unavailable; interrupts a blocked provider turn without local tool execution expects an interrupt-only failure and exactly 1 provider request; durably fails blocked local tools when interrupted while awaiting settlement persists call-await-interrupt with Tool execution outcome unknown after interruption.rejecting a question stops the run rejects pending question call-question, expects an interrupt-only failure, exactly 1 provider request, and persists the tool error message Tool execution interrupted.dc661f30cb2055ad6248fdc59b14998d834497be, packages/core/test/session-runner.test.ts imports ConfigCompaction and SessionExecutionTable, defines compactModel with id: "compact", and contains compaction tests including: rebuilds the baseline directly after completed compaction; automatically compacts into a completed summary and retained recent turn; retains only complete serialized messages during compaction; forces one compaction and retries after provider context overflow; persists a second context overflow after one recovery; recovers once from a raw context overflow failure; preserves effective System updates while compaction rebaseline is blocked; and does not recover context overflow after durable assistant output."Earlier question ".repeat(180), switches currentModel to compactModel, produces summary "## Objective\n- Preserve the task", and continues with "Continued"; overflow recovery verifies the continuation contains <summary>\n## Objective\n- Recover overflow\n</summary>.interrupts overflow recovery while the summary provider is running gates the initial and summary streams separately, interrupts after 2 provider requests, expects the run to fail, expects exactly 2 requests, and verifies no message with type === "compaction" was persisted.preserves effective System updates while compaction rebaseline is blocked begins with system baseline changes from the initial value to "Changed context" before publishing SessionEvent.Compaction.Started with reason: "manual" and a generated SessionMessage.ID.