Dashboard › opencode › Distillation
0eb11bfd-28a5-4b58-906d-b242141159fe["lore_tm_v1_xH5nlV7DY6wCNLHIpruFwJnmPB0BMWgsbl1LK_4yEU4","lore_tm_v1_LFoo982izaTandEnMVOcIVJSbai4H_JWV1FlkaTl79E","lore_tm_v1_CqH2ZWUqAHxKIFXHB3NBNZJrzPAANLHaQOCiuQQe_GQ","lore_tm_v1_GfsNr5YqA95MTZ9VkoT5fkv6LKKY8JPMwd2H48hT2JM","lore_tm_v1_tMbXfbC7ZvrEB3yMXJ-aU1Xp2UYRCifI4XS6LbU7pno","lore_tm_v1_e08kx1u-VvLLyIjeK_YICNLI9a294kg88dR1-V0agdQ","lore_tm_v1_TktTkQss5JQ2yun1b-ct4gv84Aq0GP46xN_F3PgHS_A","lore_tm_v1_ZtRvLIOl7H5N8smwOBrf0zoktU2bAhsx3AC_mVu0wRk","lore_tm_v1_PssPwVdAAsnMqorA9UA_O3w6ZaBkGDqkSd20a_luK6Q"]
Date: Sep 14, 2026
packages/core/test/database-migration.test.ts test defaults missing workspace names while preserving legacy workspace data creates legacy workspace wrk_legacy with type="remote", branch="main", directory="/repo", extra="{}", and project_id="proj_legacy"; after DatabaseMigration.applyOnly(db, [workspaceNameMigration]), it expects name="" while preserving branch, directory, and extra.packages/core/test/database-migration.test.ts test imports unnamed legacy Drizzle journal entries by their actual migration timestamps inserts Date.UTC(2026, 3, 10, 17, 45, 13) into __drizzle_migrations.created_at and expects migration ID 20260410174513_workspace-name.packages/core/test/database-migration.test.ts test rejects unknown legacy Drizzle journal timestamps instead of guessing completed migrations inserts timestamp 1234567890000 and expects an error containing does not match any known migration.packages/core/test/database-migration.test.ts test serializes concurrent embedded initialization for one database path concurrently builds 2 Database.layerFromPath(filename) layers for the same embedded.sqlite path with { concurrency: "unbounded" }.packages/core/test/database-migration.test.ts test declared schema has no ungenerated migrations runs bun packages/core/script/migration.ts --check via the script URL.AbsolutePath.make("D:\\Moved\\Thing") is encoded in SQLite as D:/Moved/Thing, sandboxes is stored as JSON.stringify(["D:/Moved/Thing"]), querying ProjectTable.worktree by the normalized path finds the project, and reading an invalid raw value "not-absolute" throws.packages/core/test/database-migration.test.ts test imports existing drizzle migration state imports named legacy migration 20260127222353_familiar_lady_ursula from __drizzle_migrations into migration.packages/core/test/database-migration.test.ts test does not replay a migrated session metadata column records legacy migration 20260511173437_session-metadata, applies [sessionMetadataMigration], and expects only that migration ID in the new journal.packages/core/test/database-migration.test.ts test accepts the temporary replacement session metadata migration id begins with 20260530232709_lovely_romulus and expects both it and canonical ID 20260511173437_session-metadata after applying sessionMetadataMigration.packages/core/test/database-migration.test.ts test skips drizzle import when migration table already has state seeds migration with ID existing, also seeds legacy 20260127222353_familiar_lady_ursula, and expects only existing to remain after DatabaseMigration.applyOnly(db, []).dc661f30cb2055ad6248fdc59b14998d834497be, packages/core/test/session-projector.test.ts uses exact recovery error { type: "unknown", message: "Provider Step outcome unknown after server restart" }, including a text part { type: "text", id: "recovery:execution", text: "Provider Step outcome unknown after server restart" }.packages/core/test/session-projector.test.ts invokes SessionRecovery.recover() repeatedly with Effect.provideService(SessionExecution.Service, recoveryExecution), including 2 consecutive calls at lines 200-201.Tool execution interrupted; such tools must never be silently re-executed because their outcome and side-effect completion are unknown.Tool execution interrupted, stale projections or partial output must not be reopened, and a newer turn supersedes older incomplete work.continue through the normal execution path so the model decides whether to retry in a new Step.dc661f30cb2055ad6248fdc59b14998d834497be, packages/core/src/session/input.ts filters on null SessionInputTable.promoted_seq and exports SessionInput.hasPending; packages/core/src/session/projector.ts:489 compares both admitted_seq and promoted_seq against boundary.seq.dc661f30cb2055ad6248fdc59b14998d834497be, packages/core/src/session/runner/llm.ts:456-472 checks pending "steer" input before "queue" input: hasQueue is forced false when hasSteer, continuation can be triggered by pending steer input, and queue input determines shouldRun afterward.dev; local main may not exist, so diffs should use dev or origin/dev.feat/ or fix/; examples are session-recovery, fix-scroll-state, and regenerate-sdk.type(scope): summary; allowed types are feat, fix, docs, chore, refactor, and test, with optional scopes such as core, opencode, tui, app, desktop, sdk, or plugin.sdk-next composes Client, Core, and Server.HttpApi, run bun run generate from packages/client; do not edit src/generated or src/generated-effect directly. The legacy JavaScript SDK is regenerated with ./packages/sdk/js/script/build.ts.bun typecheck from package directories such as packages/opencode, never invoking tsc directly.dc661f30cb2055ad6248fdc59b14998d834497be, packages/schema/src/session-event.ts defines event types session.next.step.interrupted and session.next.step.recovered.DurableEventManifest; SessionDurable.definitions is Event.durable(SessionEvent.DurableDefinitions), SessionDurable.schema is SessionEvent.Durable, and aggregate Durable combines durable SessionV1.Event.Definitions with all SessionEvent.DurableDefinitions.packages/core/src/database/migration/20260603040000_session_message_projection_order.ts first deletes every row from session_message because pre-launch projections cannot be assigned truthful aggregate order, then adds required integer column seq, drops session_message_session_type_time_created_id_idx, and creates indexes session_message_session_seq_idx on (session_id, seq) and session_message_session_type_seq_idx on (session_id, type, seq).packages/core/src/database/migration/20260303231226_add_workspace_fields.ts adds workspace columns type text NOT NULL, nullable name text, nullable directory text, and nullable extra text, then drops config.