Dashboard › opencode › Distillation
7e10f70a-229d-4e7d-a1d4-4595041ee67b["lore_tm_v1_GoEtgMFfaqkBYRGUGWMd7odOsfptJC-9AitY6zMtCtA","lore_tm_v1_XEpIQ5ebtI5AzLtKBmzf0OVjWAxclN330zEwJnjhsY4","lore_tm_v1_32W5mweAawXM_MrphqCT2GuI7bjjHxrO453YRmZUrDg","lore_tm_v1_Xzqe5tDAH3xhsPMlf9j-eylrFv3HY92OJTScgYcFOhg","lore_tm_v1_tMEbz-mNpqfPJQrNsU0IMOHASp8NbEKe1KriMXBN-cE","lore_tm_v1_JQ-qIrhKLqKDp4CKthfq1sRqGkEhjm1kbmJPSMyZBt4","lore_tm_v1_TjQYdJbZOMOWjoW84-17aSRpg-uWkqx6CFzuLrwNW0o","lore_tm_v1_ik25tHu-T6magDoyDW0t-QWNe8kGw3lqxviMt2GDy1k","lore_tm_v1_XE2cyr07gv4BeRHQ8Pdzesd3hMvDKk4BcA_DL-lDODk","lore_tm_v1_KiVVmC1o18Lu-mUasVppZkmwxuzBr7CtnDWtiq_xgLw","lore_tm_v1_Jf587ttOz-elHfHR_ex1z1KwXfFDqX1bDkSnwVRYvqo","lore_tm_v1_dSsi4ABUk1f43So2z7NnGNUr_nMgIGGsQE-GKCBfquQ","lore_tm_v1_IXM8adJQVex_oMo_Z1A3ARm9UHkG1orSOQvKJreU80I","lore_tm_v1_nrfylXTnIbuGy1_I7FbLvbVK1iuX7VGAhgIHS_9_wWk","lore_tm_v1_I_1Xs79_C5Te3QKspPume9-fvpJtwCB57RocwqMF4xc","lore_tm_v1_ibVtqXPr5SEt4eTogkPI3nnDCe13j0ot9PCCUp-N27I","lore_tm_v1_UZF-sIqDgtfrftqnTVrWREMfIGphQ7DkplnTikEBXAo","lore_tm_v1_k1yDkNyk2zM4_TMq9UJkpwshwOBsUrk5uVXRQznl018","lore_tm_v1_4tRt3tndhOmQ0gjZMtVEvQg1Fdh-0SIHS6qLWW8hoDM","lore_tm_v1_EpZbP5SKCPQe8uUbC-p4uS_SQdV6n6VjwPq8ytISN1A","lore_tm_v1_SgAeW0aQ6j21ar1wtxAQAZox75SXudgbJgiEqsXZr6M"]
Date: Sep 16, 2026
ab9408c81cc9916177641ae8e9f08624fc27b5b9./tmp/opencode/session-recovery-final-v10.patch with expected SHA-256 07b95915924ccf5dcfdf7ea5eb45d6cf972a6058664518935154dff9934222b2./home/byk/Code/opencode/packages/opencode/dist/server/opencode-server with expected SHA-256 1117176c4cfbf77527216b4161b54f8d3918ca7f7415747117c24f94d8e0b090.quarantines an execution claim blocked by a conflicting recovery identity reaches the complete-identity mismatch/quarantine path.cancelling fail-closed behavior; live/expired lease invariants; startAssistant ordering; provider failure and hosted-tool reconciliation; pre-promotion admission race; continuation reservation/public retry rejection; bounded fairness; schema/generated contracts; dependency direction; and authorization/isolation.file:line evidence, classifications PASS/CONCERN/MUST-FIX, residual assumptions, non-empty output, and an ending of exactly MERGE or DO-NOT-MERGE.repo-setup skill was unavailable and committed to following repository instructions directly while keeping the review strictly read-only./tmp/opencode/session-recovery-final-v10.patch had SHA-256 07b95915924ccf5dcfdf7ea5eb45d6cf972a6058664518935154dff9934222b2, matching the expected patch hash./home/byk/Code/opencode/packages/opencode/dist/server/opencode-server had SHA-256 1117176c4cfbf77527216b4161b54f8d3918ca7f7415747117c24f94d8e0b090, matching the expected SEA hash./home/byk/Code/opencode working tree was not clean: it contained modifications/deletions across the target files plus untracked packages/core/src/session/execution/claim.ts, packages/core/src/session/recovery-id.ts, perf.data, and perf.data.old./tmp/opencode/session-recovery-v10-review did not exist (NotFound: FileSystem.access); a subsequent operation completed with no output, after which files were read from that review path.packages/core/src/database/migration/20260914170650_session-recovery.ts, packages/core/src/session/recovery.ts, packages/core/test/session-execution-local.test.ts, packages/core/src/session/execution/claim.ts, and packages/core/src/session/recovery-id.ts.sdk-next composes Client, Core, and Server.import { foo as bar } from "..." and resolve as pathResolve are prohibited.import * as Foo from "..." and import type * as Foo from "..." are prohibited.bun typecheck from package directories such as packages/opencode, never tsc directly.do-not-run-tests-from-root guard; tests must run from package directories such as packages/opencode.SessionV2.prompt(...) admits one durable session_input before advisory SessionExecution.wake(sessionID) unless resume: false; the serialized runner promotes admitted inputs at safe boundaries.SessionExecution is process-global and Session-ID based; its local implementation owns the process-local Session coordinator and discovers placement via SessionStore and LocationServiceMap.get(session.location) only when a drain starts; V2 interruption targets the active process-local ownership chain, while idle or missing interruption is a no-op.SessionRunner, model resolution, tool registry, permissions, and filesystem are Location-scoped; omitted Location.workspaceID means implicit-local placement.llm.stream(request) call and projected history must be reloaded before durable continuation; orchestration must not bridge through legacy SessionPrompt.loop(...) or an in-memory tool loop.SessionRunCoordinator joins explicit same-Session resumes, coalesces prompt wakeups, and permits different Sessions to run concurrently; EventV2 replay owner claims remain separate from clustered Session execution ownership.queue input stays pending until the Session would otherwise become idle; one queued input is promoted at that boundary before continuation is reevaluated; promoting new user input resets the selected agentβs provider-turn allowance, with a steer batch resetting it once.packages/core/src/session/execution/claim.ts defines claim identity as sessionID, executionID, and ownerID; lease predicates additionally require expires_at > now.SessionExecutionClaim.update() in packages/core/src/session/execution/claim.ts:38-52 renews expires_at to now + SESSION_EXECUTION_LEASE_MS, optionally updates assistant_message_id and phase, and dies with SessionExecutionClaim.Lost when no live matching row is returned.SessionExecutionClaim.clear() in packages/core/src/session/execution/claim.ts:54-63 deletes only a row matching Session, execution, owner, and a still-live lease; zero rows causes SessionExecutionClaim.Lost.SessionExecutionClaim.transaction() in packages/core/src/session/execution/claim.ts:65-66 opens an immediate transaction, renews/validates the claim first via update(db, claim), and only then executes the supplied effect.packages/core/src/session/recovery-id.ts deterministically generates fallback assistant message ID msg_recovery_${executionID} and continuation ID msg_recovery_continue_${executionID}; an existing assistant message ID takes precedence over the generated fallback.