Dashboard › opencode › Distillation
d62310d8-038f-4662-885e-e90adeea6c4d["lore_tm_v1_bpDOhgw4pp5BI4u2Jl-ZSf0NzjVIDRNb3sjzGhX10HQ","lore_tm_v1_NKpui_FTqazJwF7nUqW9ajtZbpuRPKf1AlfUok5o7TA","lore_tm_v1_ItP6y-3k0A0p5OvvP54AY8zx7AfsvPS1eZC20OX1ztI"]
Date: Sep 17, 2026
SessionExecutionClaim.Claim: insert(db, sessionID, generation, claim), replace(db, sessionID, baselineSeq, result.generation, claim), and advance(db, sessionID, result.snapshot, claim). initializeOnce() now also accepts claim and passes it to insert().latestAssistantIndex(), implemented as state.messages.findLastIndex((message) => message.type === "assistant"), so ownership updates target the latest assistant rather than an older incomplete assistant row.status: "error" and preserves prior content only when the tool state was "running"; interruption messages include "Tool execution interrupted", "Session execution interrupted by server restart", and "Provider Step outcome unknown after server restart"./tmp/opencode/session-recovery-v21-review/packages/core/src/session/runner/index.ts defines SessionRunner.Interface.run() as one local continuation from already-recorded session history. Its input is { sessionID: SessionSchema.ID, force: boolean, executionID: string, ownerID: string, recoveryInputID?: SessionMessage.ID }; durable eligible work is drained, while explicit runs make one provider attempt even if no work is eligible./tmp/opencode/session-recovery-v21-review/packages/core/src/session/runner/index.ts defines RunError as the union of LLMError, SessionRunnerModel.Error, MessageDecodeError, ContextSnapshotDecodeError, SystemContext.InitializationBlocked, and ToolOutputStore.Error; the service identifier is @opencode/v2/SessionRunner.