From 28b70d7b38fbc3a9789f5d18fb394744c20e0180 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 4 Jul 2026 10:57:39 -0400 Subject: [PATCH] refactor(core): consolidate session event reset --- packages/core/src/database/migration.gen.ts | 3 +-- ...s => 20260703200000_reset_v2_session_events.ts} | 2 +- .../20260703210000_reset_v2_execution_errors.ts | 14 -------------- packages/core/test/database-migration.test.ts | 6 +++--- specs/v2/schema-changelog.md | 2 +- 5 files changed, 6 insertions(+), 21 deletions(-) rename packages/core/src/database/migration/{20260703200000_reset_v2_event_fragments.ts => 20260703200000_reset_v2_session_events.ts} (89%) delete mode 100644 packages/core/src/database/migration/20260703210000_reset_v2_execution_errors.ts diff --git a/packages/core/src/database/migration.gen.ts b/packages/core/src/database/migration.gen.ts index 2e584a7873..80cb22fb94 100644 --- a/packages/core/src/database/migration.gen.ts +++ b/packages/core/src/database/migration.gen.ts @@ -44,7 +44,6 @@ export const migrations = ( import("./migration/20260703090000_reset_v2_event_rename_sweep"), import("./migration/20260703181610_event_created_column"), import("./migration/20260703190000_reset_v2_shell_event_payloads"), - import("./migration/20260703200000_reset_v2_event_fragments"), - import("./migration/20260703210000_reset_v2_execution_errors"), + import("./migration/20260703200000_reset_v2_session_events"), ]) ).map((module) => module.default) satisfies DatabaseMigration.Migration[] diff --git a/packages/core/src/database/migration/20260703200000_reset_v2_event_fragments.ts b/packages/core/src/database/migration/20260703200000_reset_v2_session_events.ts similarity index 89% rename from packages/core/src/database/migration/20260703200000_reset_v2_event_fragments.ts rename to packages/core/src/database/migration/20260703200000_reset_v2_session_events.ts index 0541e19b3c..75108b3f11 100644 --- a/packages/core/src/database/migration/20260703200000_reset_v2_event_fragments.ts +++ b/packages/core/src/database/migration/20260703200000_reset_v2_session_events.ts @@ -2,7 +2,7 @@ import { Effect } from "effect" import type { DatabaseMigration } from "../migration" export default { - id: "20260703200000_reset_v2_event_fragments", + id: "20260703200000_reset_v2_session_events", up(tx) { return Effect.gen(function* () { yield* tx.run(`DELETE FROM \`session_input\`;`) diff --git a/packages/core/src/database/migration/20260703210000_reset_v2_execution_errors.ts b/packages/core/src/database/migration/20260703210000_reset_v2_execution_errors.ts deleted file mode 100644 index bcb96adbd7..0000000000 --- a/packages/core/src/database/migration/20260703210000_reset_v2_execution_errors.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" - -export default { - id: "20260703210000_reset_v2_execution_errors", - up(tx) { - return Effect.gen(function* () { - yield* tx.run(`DELETE FROM \`session_input\`;`) - yield* tx.run(`DELETE FROM \`session_message\`;`) - yield* tx.run(`DELETE FROM \`event\`;`) - yield* tx.run(`DELETE FROM \`event_sequence\`;`) - }) - }, -} satisfies DatabaseMigration.Migration diff --git a/packages/core/test/database-migration.test.ts b/packages/core/test/database-migration.test.ts index 1954b29add..b190170f23 100644 --- a/packages/core/test/database-migration.test.ts +++ b/packages/core/test/database-migration.test.ts @@ -15,7 +15,7 @@ import eventSourcedSessionInputMigration from "@opencode-ai/core/database/migrat import contextEpochAgentMigration from "@opencode-ai/core/database/migration/20260605042240_add_context_epoch_agent" import simplifyIntegrationCredentialsMigration from "@opencode-ai/core/database/migration/20260611192811_lush_chimera" import simplifySessionInputMigration from "@opencode-ai/core/database/migration/20260622202450_simplify_session_input" -import resetExecutionErrorsMigration from "@opencode-ai/core/database/migration/20260703210000_reset_v2_execution_errors" +import resetSessionEventsMigration from "@opencode-ai/core/database/migration/20260703200000_reset_v2_session_events" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { LayerNode } from "@opencode-ai/core/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" @@ -39,7 +39,7 @@ const run = (effect: Effect.Effect) => const makeDb = EffectDrizzleSqlite.makeWithDefaults() describe("DatabaseMigration", () => { - test("resets incompatible V2 execution and error history", async () => { + test("resets incompatible V2 Session event history", async () => { await run( Effect.gen(function* () { const db = yield* makeDb @@ -52,7 +52,7 @@ describe("DatabaseMigration", () => { yield* db.run(sql`INSERT INTO event (id) VALUES ('event')`) yield* db.run(sql`INSERT INTO event_sequence (aggregate_id, seq) VALUES ('session', 1)`) - yield* DatabaseMigration.applyOnly(db, [resetExecutionErrorsMigration]) + yield* DatabaseMigration.applyOnly(db, [resetSessionEventsMigration]) expect(yield* db.get(sql`SELECT id FROM session_input`)).toBeUndefined() expect(yield* db.get(sql`SELECT id FROM session_message`)).toBeUndefined() diff --git a/specs/v2/schema-changelog.md b/specs/v2/schema-changelog.md index c99a742638..5eaa02ad39 100644 --- a/specs/v2/schema-changelog.md +++ b/specs/v2/schema-changelog.md @@ -972,5 +972,5 @@ Compatibility: Compatibility: -- All changed durable definitions remain version 1. `20260703200000_reset_v2_event_fragments` wipes experimental V2 events, sequences, projected messages, and admitted inputs. +- All changed durable definitions remain version 1. `20260703200000_reset_v2_session_events` performs the single reset for this Session event contract update, wiping experimental V2 events, sequences, projected messages, and admitted inputs. - Promise, Effect, and legacy JavaScript SDK surfaces are regenerated from the simplified schemas.