Dashboard › opencode › Distillation
f2b9e55c-e435-4eb7-82cf-8d3bf7024eae["lore_tm_v1_wgBkkP3E2nQS9eb4nEZo7sOcHfp2MyFhJxN-I9UeWoA","lore_tm_v1_T1BPUIm_u3khGAD0V9YKG9xiHSqzw1aFR6opuDsSD3U","lore_tm_v1_cF6bYEf6HVhSSqYi0za6ZlsVa_OgcD8y8D59evTA5pQ"]
Date: Sep 16, 2026
packages/core/src/session/runner/publish-llm-event.ts so createLLMEventPublisher input includes startCommit: (assistantMessageID: SessionMessage.ID) => Effect.Effect<void>.createLLMEventPublisher patch introduces publishEvent(...), which distinguishes event definitions having durable behavior and supports publishing them with an associated commit effect.SessionMessage.ID.create() when starting an assistant message and couples publication to input.startCommit(created).interruptAssistant(message): it flushes buffered output before publishing SessionEvent.Step.Interrupted with error: { type: "unknown", message }.publisher.interruptAssistant("Provider Step outcome unknown after interruption") when a provider step’s outcome cannot be determined following interruption.publishEvent(...) path, including SessionEvent.Text.Started, SessionEvent.Reasoning.Delta, SessionEvent.Tool.Success, and SessionEvent.Step.Interrupted.PromptExecutionRequested with wire type "session.next.prompt.execution_requested".Step.Interrupted with wire type "session.next.step.interrupted" and Step.Recovered with wire type "session.next.step.recovered"; recovered phases are exactly "ready", "unknown", and "continue".PromptExecutionRequested, Step.Interrupted, and Step.Recovered in the session event collections/unions and propagates them into generated SDK types in packages/sdk/js/src/v2/gen/types.gen.ts, including GlobalEvent, sync-event unions, and exported event payload types.