From b28956f0dbc22d786fab24b2a34fd07fba6d27ec Mon Sep 17 00:00:00 2001 From: James Long Date: Thu, 16 Apr 2026 12:35:37 -0400 Subject: [PATCH] fix(core): better global sync event structure (#22858) --- packages/opencode/src/control-plane/workspace.ts | 3 +-- packages/opencode/src/sync/sync-event.ts | 12 ++++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/packages/opencode/src/control-plane/workspace.ts b/packages/opencode/src/control-plane/workspace.ts index b43fe848ba..d870eb6360 100644 --- a/packages/opencode/src/control-plane/workspace.ts +++ b/packages/opencode/src/control-plane/workspace.ts @@ -460,8 +460,7 @@ export namespace Workspace { if (!("payload" in evt)) return if (evt.payload.type === "sync") { - // This name -> type is temporary - SyncEvent.replay({ ...evt.payload, type: evt.payload.name } as SyncEvent.SerializedEvent) + SyncEvent.replay(evt.payload.syncEvent as SyncEvent.SerializedEvent) } GlobalBus.emit("event", { diff --git a/packages/opencode/src/sync/sync-event.ts b/packages/opencode/src/sync/sync-event.ts index db487ddd24..94c889d917 100644 --- a/packages/opencode/src/sync/sync-event.ts +++ b/packages/opencode/src/sync/sync-event.ts @@ -155,8 +155,10 @@ function process(def: Def, event: Event, options: { workspace: WorkspaceContext.workspaceID, payload: { type: "sync", - name: versionedType(def.type, def.version), - ...event, + syncEvent: { + type: versionedType(def.type, def.version), + ...event, + }, }, }) } @@ -164,12 +166,6 @@ function process(def: Def, event: Event, options: { }) } -// TODO: -// -// * Support applying multiple events at one time. One transaction, -// and it validets all the sequence ids -// * when loading events from db, apply zod validation to ensure shape - export function replay(event: SerializedEvent, options?: { publish: boolean }) { const def = registry.get(event.type) if (!def) {