Dashboard › opencode › Distillation
e6a0bd9a-6440-43f9-b61c-1ac24e88ae7c["lore_tm_v1_OFuNJwgBhpMB6vKgQnRVn3DAiCVQkWlzWhmQq6e_sLU","lore_tm_v1_5ECX4X9byKUNaI-XllsDJRyOUt0j6DsFSSY2NUXBqYU","lore_tm_v1_6dyFosY_Q3PD_X5Dzz0cazpOCkzdxsDiGsjLQmjWpqg","lore_tm_v1_xlftvL3Sq4r-rEkzU6NfXVRzDZcMofDMcA9hxiO9tYY","lore_tm_v1_I1gT8r3bjObrMG_LQrGY7k4EK2zYLP-VuNrR8dQF4dk","lore_tm_v1_sqHToFkZXYllCzY0RUEwy8vah4ph-nwYLG3J_2sg1Vg","lore_tm_v1_ahHAbGSNWqdYchB4dwnUhvBN14yT8vQqUAsY_L467G0","lore_tm_v1_ZG5kWhpctKcVT8BnYymLZEcKZcCOQQCShO-ijtVYZfc","lore_tm_v1_RbzHtXjlUED6BvIdCd3TNolSxuPDqMbMideBWgxnbUo","lore_tm_v1_S1ejuZDGFhHIZuUd6xQz6zwUDqpjsbsxvIozli0cGxg","lore_tm_v1_5oyfyYESvJ9bwcfLlTJ9qUHxxIkyPQEGiXg6B5FDb7I","lore_tm_v1_By7AGYbLJ2v3BVMRBnaJVQqiW2j1q5wUgGwvWEk551k"]
Date: Sep 15, 2026
"never recovers a live execution lease": an execution with owner_id: "live" and expires_at: Date.now() + 60_000 must remain in SessionExecutionTable, with no rows added to SessionRecoveryTable or SessionInputTable."never recovers an execution superseded by a newer assistant": an expired execution tied to msg_recovery_abandoned must be removed without creating recovery or continuation rows when a newer completed assistant message msg_recovery_newer exists.SessionExecutionTable import fix, the broader test run reported exactly 171 pass, 4 fail, 1 error, 483 expect() calls, and 175 tests across 5 files in 20.44s.SessionProjector > atomically reconciles one abandoned execution into one continuation failed with SessionInput.LifecycleConflict for id: "msg_recovery_continue_execution" at packages/core/src/session/input.ts:183; matchesProjection(stored, input) rejected the row after an update in projectPrompted().SessionProjector > redrives a durable recovery wake after admission failed because two calls to SessionRecovery.recover() produced wakes === 0 instead of the expected 2.SessionProjector > quarantines a malformed recovery row without blocking a valid wake failed because no session was woken ([]) instead of [SessionV2.ID.make("ses_recovery_row_valid")]; the malformed row had its session_input.prompt changed to '{}' and was expected to receive recovery_error: "Invalid recovery continuation input" without blocking the valid row.SessionRunnerLLM > redrives only the synthetic recovery continuation timed out after 5000ms; the provider request contained only "clear durable wake" instead of the expected ordered user texts ["Session execution interrupted by server restart", "continue"], and the same assertion surfaced as an unhandled error between tests.SessionEvent.Step.Recovered creates a durable continuation with Prompt.make({ text: "continue" }), delivery: "queue", and wake_pending: true; replaying SessionEvent.Prompted should settle that row to wake_pending: false.SessionRecovery.recover() calls, tests require exactly 1 SessionRecoveryTable row, exactly 1 SessionInputTable row, no SessionExecutionTable rows, and exactly 1 synthetic SessionMessageTable row.executionID: "continue-only" and phase: "continue", the recovery row must have assistant_message_id: null, wake_pending: true, and no assistant message row.finish: "error", error { type: "unknown", message: "Provider Step outcome unknown after server restart" }, and text content { type: "text", id: "recovery:execution", text: "Provider Step outcome unknown after server restart" }.packages/core/test/session-projector.test.ts while addressing the recovery projection and replay failures.packages/core/src/session/sql.ts defines SessionRecoveryTable as session_recovery with fields session_id, execution_id, nullable assistant_message_id, required unique continuation_message_id, phase restricted to "ready" | "unknown" | "continue", wake_pending defaulting to true, nullable recovery_error, and time_created; primary key session_recovery_pk is on execution_id.packages/core/src/session/sql.ts defines SessionExecutionTable as session_execution with fields id, session_id, owner_id, nullable assistant_message_id, phase restricted to "ready" | "safe" | "unknown" | "continue", time_created, expires_at, and nullable recovery_error; it has primary key session_execution_pk, unique index session_execution_session_idx on session_id, and index session_execution_owner_idx on owner_id.session-projector.test.ts run reported exactly 1 pass, 2 fail, 21 filtered out, 15 expect() calls, and 3 tests across 1 file in 1305.00ms; the remaining failures were durable-wake redrive (Expected: 2, Received: 0) and malformed-row quarantine (Expected: ["ses_recovery_row_valid"], Received: []).packages/core/src/session/input.ts and packages/core/src/session/recovery.ts in response to the projection conflict and missing recovery wakes, then made an additional update to packages/core/src/session/recovery.ts; no post-change test outcome was shown.