Dashboard › opencode › Distillation
bdbd96f8-91b1-4daf-a48d-af04fbef4cbf["lore_tm_v1_qF54r0KFGJWEpAava1641RL7hjD1u7Muv8NkeA_ssSg","lore_tm_v1_WEf9wtjYQfS7snutFxD5z5u0CE4Q51RoOUgXx7Z38w8","lore_tm_v1_V6I7-OrQFCePiKErWE0XsR0VtW47NWjG7VsxtSwbmlg","lore_tm_v1_Kw71s2Lll1PonpxyPrm_E1EzR5BVjrP48l1i8rZTwPE","lore_tm_v1_UFFkQZg8AdEuMhxEldi-g4jCyKY5k01xyorKuSwRchI","lore_tm_v1_zWGBBIYfvcIDRPDihRc9wU8AsWdF-_tJH2pJUWPI82k","lore_tm_v1_vOL67MVN1UI24oQb-mfGTQ2lG8nNL1grJXCVebMM_JU","lore_tm_v1_jpXbCNMT6CTbPQWBtwg3-BOOfKkKK5qqkpnn2iEINt0","lore_tm_v1_40qV8q20GrBgZIbgbsS3nGx4igBjvhbKyzvv25LEXfs"]
Date: Sep 15, 2026
SessionInput admission/projection call sites: SessionInput.admit in packages/core/test/session-projector.test.ts lines 521 and 812 and packages/core/src/session.ts line 368; SessionInput.projectPrompted in packages/core/src/session/projector.ts line 360; and SessionInput.projectAdmitted in packages/core/src/session/projector.ts lines 374 and 415.packages/core/src/session/runner/llm.ts:441-495 found Promotion is SessionInput.Delivery | { readonly recoveryInputID: SessionMessage.ID }; RunTurn receives sessionID, executionID, promotion, step, and ownerID; runTurn and runAfterOverflowCompaction retry after TurnTransitionError, preserving ownerID while clearing promotion, and a second overflow after compaction dies with "Post-compaction provider attempt cannot recover another overflow".packages/core/src/session/runner/llm.ts:497-531 found run() derives recovering from recoveryInputID, suppresses ordinary steer/queue checks during recovery, returns early when no recovery/force/pending input exists, invokes failInterruptedTools(), selects promotion priority recovery β steer β queue, loops provider continuations with incrementing step, promotes steers between continuation turns, and processes subsequent queued inputs only outside recovery.packages/core/test/database-migration.test.ts tests that unknown legacy Drizzle journal timestamp 1234567890000 is rejected with "does not match any known migration" rather than guessed; concurrent Database.layerFromPath(filename) initialization for one embedded.sqlite path is serialized under unbounded concurrency; and Linux runs bun ${fileURLToPath(new URL("../script/migration.ts", import.meta.url))} --check, requiring exit code 0 and "No schema changes, nothing to migrate" within 30_000 ms.packages/core/test/database-migration.test.ts verifies creation of session, session_input, and session_context_epoch; confirms session_context_epoch lacks agent, replacement_seq, and revision; requires migration-row count to equal migrations.length; and expects exactly these listed indexes: event_aggregate_seq_idx, event_aggregate_type_seq_idx, session_input_session_admitted_seq_idx, session_input_session_pending_delivery_seq_idx, session_input_session_promoted_seq_idx, session_message_session_seq_idx, session_message_session_time_created_id_idx, and session_message_session_type_seq_idx.packages/core/test/database-migration.test.ts preserves rows ses_existing, msg_existing, and msg_input after DatabaseMigration.applyOnly(db, [sessionRecoveryMigration]); verifies session_execution.id is required; and verifies inserting phase "invalid" into session_execution fails.packages/core/test/session-runner.test.ts recovery test "redrives only the synthetic recovery continuation" admits unrelated queued input msg_recovery_unrelated with resume: false, publishes SessionEvent.Step.Recovered for execution "lost-recovery-wake" in phase "ready", runs SessionRecovery.recover(), and expects provider user texts ["Session execution interrupted by server restart", "continue"]; the unrelated row remains promoted_seq: null, while SessionRecoveryTable.wake_pending becomes false.packages/core/test/session-runner.test.ts:647-659 pauses model resolution via Deferred values resolving and resumeResolution, prompts with text "fence provider" and resume: false, forks session.resume(sessionID), waits until model resolution is reached, and records the durable event count before changing ownership.packages/core/test/session-projector.test.ts found wake_pending: true at line 351, SessionEvent.Prompted uses at lines 744 and 755, and the test "marks an inbox row promoted with the Prompted event sequence" beginning at line 790.packages/core/test/session-projector.test.ts verifies durable aggregate sequence ordering independently of event IDs: two SessionEvent.Prompted events with the same timestamp use IDs evt_z then evt_a, yet ascending pagination and context return text in publication order ["first", "second"]; next and previous cursors also preserve that order.packages/core/test/session-projector.test.ts verifies publishing SessionEvent.Prompted for admitted inbox row msg_admitted with text "promote me" and delivery "steer" sets that rowβs promoted_seq to event.durable?.seq.packages/core/src/database/schema.gen.ts defines session_input_session_pending_delivery_seq_idx on session_input(session_id, promoted_seq, delivery, admitted_seq), unique session_input_session_admitted_seq_idx on (session_id, admitted_seq), and unique session_input_session_promoted_seq_idx on (session_id, promoted_seq).packages/core/src/database/schema.gen.ts found the session_input table begins at line 173; its session_id foreign key cascades deletion from session; and session_recovery.continuation_message_id references session_input.id with ON DELETE CASCADE.