Dashboard › opencode › Distillation
ea359b97-9b99-4950-9c1d-79857c43246f["lore_tm_v1_ze1cAU_bP6poU12kOrfRnCmVlPgEaR4d8ger_pCRBww","lore_tm_v1_F--c3U5t4oOFnI-xsX_eF4JLLYPGmoUn7tkk1gRRnyQ","lore_tm_v1_EjyUdboE2T9B9q7pp9ytbnpyn77gQ0BEZR-nQOX5Jho","lore_tm_v1_kSR2i0hYvPv5_WVmO_xvLK-hd667sYbPaC9RvdN6q8Q","lore_tm_v1_iOH1QQPOYOrwQVBNLD7yBxVt7lzJMFDHgESa05f0ZIU","lore_tm_v1_Qp-AEp3Tk12MEg4OpoVx53m75cVh-d7G8sKE5B4v-ck","lore_tm_v1_rGst2HRDaaOgJFF7KHkBYPk61LB4H7jqE3CT3QJF7dA","lore_tm_v1_49LBeCdoSVeuN7x2bGgcbQIQOSUbvsN23UHplWJykeM"]
Date: Sep 16, 2026
/tmp/opencode/session-recovery-final-v4.patch = c2c8afb07a7b6a49c1d40c5515d718ad5a934c9291e80a068693259c26c566a0; /home/byk/Code/opencode/packages/opencode/dist/server/opencode-server = 56c1bc48b6e21397db05eb0d41f73d243a4b64da093fcfbe209baed65457f6e8.ab9408c81cc9916177641ae8e9f08624fc27b5b9, d3323b963b9ef2de41a7ff9884299c74b93886ba, and 2e9407768d1401a25b69febb36657638a779053a, alongside commit title feat(app): adapt vertical tab density../packages/sdk/js/script/build.ts.HttpApi, run bun run generate from packages/client; never edit src/generated or src/generated-effect directly.sdk-next composes Client, Core, and Server.dev; local main may not exist, so use dev or origin/dev for diffs.feat/ or fix/; examples: session-recovery, fix-scroll-state, regenerate-sdk.type(scope): summary. Valid types: feat, fix, docs, chore, refactor, test; scope is optional and examples include core, opencode, tui, app, desktop, sdk, and plugin.try/catch; avoid any; prefer Bun APIs such as Bun.file(); rely on type inference; avoid explicit annotations/interfaces unless needed for exports or clarity; prefer flatMap, filter, and map over loops; use filter type guards to retain downstream inference; reduce variable count by inlining single-use values.src/config must follow the self-export pattern, e.g. export * as ConfigAgent from "./agent".yield* (yield* Foo.Service).bar().import { foo as bar } from "..." or renamed imports such as resolve as pathResolve.import * as Foo from "..." or import type * as Foo from "...".import { Project } from "@opencode-ai/core/project" and then Project.ID.await import("./module").then((mod) => mod.value()) and (await import("./module")).value(); retain branch-specific imports inside the relevant branch to preserve lazy loading.bun typecheck from a package directory such as packages/opencode; never run tsc directly.SessionRunner, model resolution, tool registry, permissions, and filesystem must remain Location-scoped. An omitted Location.workspaceID means implicit-local placement; explicit workspace identity is reserved for future placement semantics.src/system-context; Context Source producers stay with their observed domains; Session History selection and Context Epoch persistence remain Session-owned.1.3+; from repository root run bun install and bun dev; local UI server uses http://localhost:5173 or the displayed similar port.bun dev spawn when server-code breakpoints do not trigger under worker-thread bun dev; alternatively debug the server with bun run --inspect=ws://localhost:6499/ --cwd packages/opencode ./src/index.ts serve --port 4096, attach the TUI with opencode attach http://localhost:4096, or debug the TUI with bun run --inspect=ws://localhost:6499/ --cwd packages/opencode ./src/index.ts.Effect.gen(function* () { ... }) for composition; Effect.fn("Domain.method") for named/traced effects; Effect.fnUntraced for internal helpers; use pipeable operators accepted by Effect.fn/Effect.fnUntraced instead of unnecessary outer .pipe() wrappers; use Effect.callback for callback APIs; use Effect.void rather than Effect.succeed(undefined) or Effect.succeed(void 0); prefer DateTime.nowAsDate over new Date(yield* Clock.currentTimeMillis) when a Date is needed.export * as.EffectBridge must be used for native or external callbacks such as @parcel/watcher, node-pty, native fs.watch, and plugin callbacks when they must re-enter Effect services with instance/workspace context.packages/core/src/database/migration/20260914170650_session-recovery.ts, packages/core/src/session/execution/claim.ts, packages/core/src/session/recovery-id.ts, packages/core/src/session/recovery.ts, and packages/core/test/session-execution-local.test.ts.packages/core/schema.json 527/48; packages/core/src/database/migration.gen.ts 1/0; packages/core/src/database/migration/20260914170650_session-recovery.ts 55/0; packages/core/src/database/schema.gen.ts 45/0; packages/core/src/session.ts 5/4; packages/core/src/session/compaction.ts 31/16; packages/core/src/session/context-epoch.ts 54/34; packages/core/src/session/execution/claim.ts 66/0; packages/core/src/session/execution/local.ts 118/19; packages/core/src/session/input.ts 342/31; packages/core/src/session/message-updater.ts 69/0; packages/core/src/session/projector.ts 77/1; packages/core/src/session/recovery-id.ts 6/0; packages/core/src/session/recovery.ts 315/0; packages/core/src/session/run-coordinator.ts 30/5; packages/core/src/session/runner/index.ts 4/0; packages/core/src/session/runner/llm.ts 207/90; packages/core/src/session/runner/publish-llm-event.ts 74/28; packages/core/src/session/sql.ts 70/1; packages/core/test/database-migration.test.ts 63/1; packages/core/test/session-execution-local.test.ts 239/0; packages/core/test/session-projector.test.ts 1557/3; packages/core/test/session-prompt.test.ts 247/25; packages/core/test/session-run-coordinator.test.ts 45/0; packages/core/test/session-runner-recorded.test.ts 4/10; packages/core/test/session-runner-tool-events.test.ts 4/0; packages/core/test/session-runner.test.ts 584/16; packages/opencode/src/server/routes/instance/httpapi/server.ts 2/1; packages/schema/src/session-event.ts 43/1; packages/schema/test/event-manifest.test.ts 8/5; packages/sdk/js/src/v2/gen/types.gen.ts 190/0; packages/sdk/openapi.json 657/44; packages/server/src/routes.ts 2/0./tmp/opencode/session-recovery-final-v4.patch applies cleanly to the base.packages/core/schema.json; 870 packages/core/src/database/migration.gen.ts; 881 packages/core/src/database/migration/20260914170650_session-recovery.ts; 942 packages/core/src/database/schema.gen.ts; 1033 packages/core/src/session.ts; 1065 packages/core/src/session/compaction.ts; 1154 packages/core/src/session/context-epoch.ts; 1330 packages/core/src/session/execution/claim.ts; 1402 packages/core/src/session/execution/local.ts; 1571 packages/core/src/session/input.ts; 2117 packages/core/src/session/message-updater.ts; 2211 packages/core/src/session/projector.ts; 2319 packages/core/src/session/recovery-id.ts; 2331 packages/core/src/session/recovery.ts; 2652 packages/core/src/session/run-coordinator.ts; 2721 packages/core/src/session/runner/index.ts; 2743 packages/core/src/session/runner/llm.ts; 3193 packages/core/src/session/runner/publish-llm-event.ts; 3433 packages/core/src/session/sql.ts; 3529 packages/core/test/database-migration.test.ts; 3618 packages/core/test/session-execution-local.test.ts; 3863 packages/core/test/session-projector.test.ts; 5465 packages/core/test/session-prompt.test.ts; 5792 packages/core/test/session-run-coordinator.test.ts; 5848 packages/core/test/session-runner-recorded.test.ts; 5882 packages/core/test/session-runner-tool-events.test.ts; 5897 packages/core/test/session-runner.test.ts; 6624 packages/opencode/src/server/routes/instance/httpapi/server.ts; 6645 packages/schema/src/session-event.ts; 6738 packages/schema/test/event-manifest.test.ts; 6781 packages/sdk/js/src/v2/gen/types.gen.ts; 7087 packages/sdk/openapi.json; 8100 packages/server/src/routes.ts.