Dashboard › opencode › Distillation
5154a15c-aee7-42ee-888f-10d9a902577e["lore_tm_v1_SA5LIqHB7Um_LsjOEQvU-uVIJSqnjPL8-fAUBj9VR04","lore_tm_v1_zGUByhIAxwuPAxJo1Al2qWeNbfY-Ha0wgPDF2hOIrPc","lore_tm_v1_ERgIRgmbfCXwm5bZ1GyHbtfcQzY2w9UasC5sJSvTNq0","lore_tm_v1_Z1cQcaVfcwZkRztIWn1nowL4NQQF0Q1GdWkXhYgl5lI","lore_tm_v1_1PSlHp1JQYoJ71y7l81xM7IlCND4S6ERbiKWYcVpuNY","lore_tm_v1_B0nOEJ8aelGJM78Qdp_-brzmdd7guvEtT8arbNvBqqM"]
Date: Sep 16, 2026
/tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts asserts that the runner “never dispatches a provider after ownership changes” (line 740)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts asserts that the runner “never publishes streamed output after ownership changes” (line 766)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts asserts that the runner “never starts a local tool after ownership changes” (line 793)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts asserts that the runner “never fails interrupted tools after ownership changes” (line 833)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts asserts that the runner “never commits continuation before unresolved hosted tools are reconciled” (line 1963)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts cover: redriving only the synthetic recovery continuation (line 607), clearing durable execution intent when ordinary input is promoted (676), redriving an ordinary prompt after its advisory wake is lost (703), recovering the continuation committed with Compaction.Ended (1530), recovering the continuation committed with a settled tool step (2108), promoting queued inputs one at a time in FIFO order (2694), promoting steers before the next queued input (2771), coalescing multiple active steering prompts into one continuation turn (2836), and retrying inbox input after prompt projection rolls back (3084)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts cover: reloading history after durably settling one local tool call (line 1905), starting recorded local tools eagerly and awaiting settlement before continuing (2330), durably failing local tools left running by a prior process (2905), durably failing hosted tools left running by a prior process before continuing inline (2965), durably failing pending tool input left by a prior process (3025), durably settling local-tool failures before continuing (3262), awaiting started local tools before surfacing provider-stream failure (3624), and never marking a failed Step safe while a sibling tool finalizer is active (3658)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts cover: never committing a Step end after provider-stream failure (line 2015), keeping a provider defect after Step finish unknown (2037), keeping provider failure unknown until unresolved tools are durable (2060), not continuing automatically after a provider error follows a local tool call (4082), durably failing a hosted tool when its provider errors before returning a result (4107), durably failing a hosted tool unresolved at normal provider EOF (4138), and durably failing a hosted tool unresolved by a raw provider-stream failure (4163)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-runner.test.ts cover: joining concurrent resume calls into one active provider run (line 2479), preserving durable queued input for a later wake after interruption (2608), preserving durable steering input for a later resume after interruption (2651), running different sessions concurrently (3132), retaining a claim after user decline until runner finalizers finish (3461), retaining a claim after Step interruption until runner finalizers finish (3776), and interrupting a blocked provider turn without local-tool execution (3831)./tmp/opencode/session-recovery-v7-check/packages/core/src/session/recovery-id.ts defines message(executionID, assistantMessageID?) as the supplied assistantMessageID or SessionMessage.ID.make(\msg_recovery_${executionID}`); continuation(executionID)returnsSessionMessage.ID.make(`msg_recovery_continue_${executionID}`)`./tmp/opencode/session-recovery-v7-check/packages/core/test/session-projector.test.ts includes recovery reconciliation tests for: atomically reconciling one abandoned execution into one continuation (line 68), recording a recovery continuation without forging an assistant identity (222), recovering each abandoned execution once across repeated startup scans (259), never recovering a live execution lease (305), never recovering an execution superseded by a newer assistant (343), and redriving a durable recovery wake after admission (390)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-projector.test.ts includes quarantine and fairness tests for: quarantining a malformed recovery row without blocking a valid wake (line 441), quarantining a full batch of poison recovery rows before redriving valid work (495), fairly redriving recovery and ordinary work beyond a full bounded batch (560), rejecting invalid persisted wake-attempt counters (696), never waking work settled between selection and redrive CAS (797), and quarantining a continuation belonging to another Session (880)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-projector.test.ts covers ordinary-input and boundary recovery behavior: redriving durable ordinary-input execution intent after a lost advisory wake (line 930), redriving ordinary input without recovering a claim that crashed before promotion (972), redriving one existing recovery after its replacement claim crashes before promotion (1031), and never recovering a pre-promotion claim when input commits at the recovery boundary (1086)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-projector.test.ts validates supersession and identity fencing by rejecting a recovered assistant from another Session (line 1153), quarantining a recovery wake behind a newer assistant (1200), never promoting a recovery superseded before scanner validation (1315), quarantining an assistant-less recovery superseded before scanner validation (1379), and never promoting a quarantined recovery continuation as an ordinary steer (1437)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-projector.test.ts also tests quarantining a malformed claim without blocking a valid claim (line 1493), bounding each deterministic recovery scan (1545), and rolling back claim renewal when Context Epoch advance fails (1743)./tmp/opencode/session-recovery-v7-check/packages/core/test/session-run-coordinator.test.ts tests keyed execution coordination: joining concurrent resumes for one key, joining a wake-started execution without forcing a successor, starting execution when woken while idle, snapshotting only active executions, cleaning active executions after failure/defect or scope closure, coalescing wakes during active execution, running again when woken during follow-up, interrupting active execution and clearing its pending wake, preserving wakes/resumes registered during interruption cleanup, starting one follow-up when wake races with failure, not cancelling execution when a joined waiter is interrupted, running different keys concurrently, and trampolining synchronous self-waking execution./tmp/opencode/session-recovery-v7-check/packages/core/test/event.test.ts tests durable event semantics including inline projectors, local operational state committed inside a new durable event transaction, rollback when a local commit fails, projectors before streams, listeners after projectors, observer-defect isolation after commit, global listeners only after durable commit, durable per-aggregate sequence increments, replay followed by tailing, retaining/coalescing durable wakes during replay, replay through projectors, contiguous aggregate validation, owner fencing, stale/divergent replay handling, and event-ID reuse rejection./tmp/opencode/session-recovery-v7-check/packages/core/test/database-migration.test.ts includes adds final recovery ownership tables to a populated predecessor (line 166), alongside checks that declared schema has no ungenerated migrations (118) and tracked migrations apply to an empty database (127).