From a68395bfef03e1ccb55ffaade10f68fa61188611 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 1 Apr 2026 23:58:06 -0400 Subject: [PATCH] fix(sync): bind transaction inside effect --- packages/opencode/src/sync/index.ts | 32 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/opencode/src/sync/index.ts b/packages/opencode/src/sync/index.ts index 1c3798dea0..f320f49357 100644 --- a/packages/opencode/src/sync/index.ts +++ b/packages/opencode/src/sync/index.ts @@ -235,22 +235,24 @@ export namespace SyncEvent { throw new Error(`SyncEvent.run: running old versions of events is not allowed: ${def.type}`) } - Database.transaction( - (tx) => { - const id = EventID.ascending() - const row = tx - .select({ seq: EventSequenceTable.seq }) - .from(EventSequenceTable) - .where(eq(EventSequenceTable.aggregate_id, agg)) - .get() - const seq = row?.seq != null ? row.seq + 1 : 0 + yield* Effect.sync(() => + Database.transaction( + (tx) => { + const id = EventID.ascending() + const row = tx + .select({ seq: EventSequenceTable.seq }) + .from(EventSequenceTable) + .where(eq(EventSequenceTable.aggregate_id, agg)) + .get() + const seq = row?.seq != null ? row.seq + 1 : 0 - const event = { id, seq, aggregateID: agg, data } - process(def, event, { publish: true }) - }, - { - behavior: "immediate", - }, + const event = { id, seq, aggregateID: agg, data } + process(def, event, { publish: true }) + }, + { + behavior: "immediate", + }, + ), ) })