Dashboard › opencode › Distillation
498c8645-f6c6-40ce-9baa-9d1285bc0791["lore_tm_v1_ONB79WAKpdQ_-KR8ICOXuJkXc_I5r5wtY3Uadx54qhA","lore_tm_v1_SBZskrP4R2A5QbW89J9XQNNudM6dyo3ylff6caFJTIU","lore_tm_v1_-8Hvgmf8Pfcq7d1dl-bi4P5-r124uL13EBddiNwJKNE","lore_tm_v1_NWJkPnKhhnD9k-AlEQqmed2exAe3eF3408MvXIpZFwo","lore_tm_v1__8UXANzRxsIcNPEhK47g_7mk-Bb_BpbmGOJHUgx6tbA","lore_tm_v1_DodkwCTPgD6GnXWxJxyZbn6g0pnQK-_m7nzm5rWTBQg","lore_tm_v1__zIDUGffoU_LojFFS_KyVq2xYrjgLyJwCpifFR-epxE","lore_tm_v1_EbwMduC_EIRaJcH-Df3241d2g5Cp4LaLJcogbi_jXOM"]
Date: Sep 15, 2026
packages/core/test/session-runner.test.ts configures OpenAIChat.route with limits { context: 20_000, output: 1_000 }, tracks activeToolExecutions, and includes application tools echo and a tool described as "Fail unexpectedly".packages/core/test/session-runner.test.ts:838 changes execution ownership with .set({ id: "interrupted-tool-successor", owner_id: "successor" }) in the interrupted-tool fencing test.packages/core/test/session-runner.test.ts, in source order: 1. line 1336, "rebuilds the baseline directly after completed compaction"; 2. line 1375, "automatically compacts into a completed summary and retained recent turn"; 3. line 1448, "keeps automatic compaction unknown until Compaction.Ended commits"; 4. line 1495, "retains only complete serialized messages during compaction"; 5. line 1556, "forces one compaction and retries after provider context overflow"; 6. line 1585, "persists a second context overflow after one recovery"; 7. line 1608, "recovers once from a raw context overflow failure"; 8. line 1636, "publishes the original overflow when recovery summarization fails"; 9. line 1656, "interrupts overflow recovery while the summary provider is running"; 10. line 1681, "preserves effective System updates while compaction rebaseline is blocked"; 11. line 3557, "does not recover context overflow after durable assistant output".compact; successful overflow recovery embeds "<summary>\n## Objective\n- Recover overflow\n</summary>" in the retried request and projects { type: "compaction", summary: "## Objective\n- Recover overflow" }.LLMEvent.providerError({ message: "prompt too long", classification: "context-overflow" }) and summary text "## Objective\n- Recover raw overflow"."text-uncommitted-summary" with summary "## Objective\n- Interrupted"; no compaction message is projected, and the successor execution remains { id: "compaction-successor", phase: "unknown" }.packages/core/src/session/recovery-id.ts defines message(executionID, assistantMessageID?) as assistantMessageID ?? SessionMessage.ID.make(\msg_recovery_${executionID}`)andcontinuation(executionID)asSessionMessage.ID.make(`msg_recovery_continue_${executionID}`)`.packages/schema/src/session-event.ts:207-217 defines Step.Recovered with event type "session.next.step.recovered"; it is included in the schema unions at lines 485 and 518.