Dashboard › opencode › Distillation
2dfddb43-8bba-4a5b-b7b6-e4782828b6c1["lore_tm_v1_Ima2iPc3FPFPhTf7QXh2O5JRQWQjuLrSvU0wo3W8pzk"]
Date: Sep 14, 2026
messages: SessionMessage.Message[] and exposes an adapter operation updateShell: (shell: SessionMessage.Shell) => Effect.Effect<void>.activeShellIndex(callID), updateOwnedAssistant(assistantMessageID, ...), latestText(...), and latestTool(...); mutations are ignored when the targeted current message is not an assistant, implementing the rule that newer turns supersede stale incomplete assistant rows rather than resuming an older projection.session.next.step.started, then applying finish, cost, token accounting, snapshot/files, completion time, or error data from terminal step events to the assistant identified by assistantMessageID.session.next.text.delta locates the latest matching text content by textID, while final boundaries update the owned assistant rather than an arbitrary older assistant row.session.next.tool.called, session.next.tool.progress, success, and failure transitions. Calls create assistant tool content with decoded input; progress updates running structured and content; terminal states preserve provider result metadata, structured/content output, optional result, and error or success details, locating the latest matching tool by callID.assistantMessageID.callID to find the active shell and updates shell output/state through the adapter rather than appending unrelated shell rows."session.next.moved": () => Effect.void and "session.next.revert.staged": () => Effect.void.