@@ -4,7 +4,6 @@ import { EventSequenceTable } from "@/sync/event.sql"
44import { Workspace } from "@/control-plane/workspace"
55import type { WorkspaceID } from "@/control-plane/schema"
66import * as Log from "@opencode-ai/core/util/log"
7- import { AppRuntime } from "@/effect/app-runtime"
87import { Effect } from "effect"
98
109export const HEADER = "x-opencode-sync"
@@ -20,7 +19,7 @@ export function load(ids?: string[]) {
2019 return db . select ( ) . from ( EventSequenceTable ) . where ( inArray ( EventSequenceTable . aggregate_id , ids ) ) . all ( )
2120 } )
2221
23- return Object . fromEntries ( rows . map ( ( row ) => [ row . aggregate_id , row . seq ] ) ) as State
22+ return Object . fromEntries ( rows . map ( ( row ) => [ row . aggregate_id , row . seq ] ) )
2423}
2524
2625export function diff ( prev : State , next : State ) {
@@ -31,15 +30,14 @@ export function diff(prev: State, next: State) {
3130 . filter ( ( [ id , seq ] ) => {
3231 return ( prev [ id ] ?? - 1 ) !== seq
3332 } ) ,
34- ) as State
33+ )
3534}
3635
37- export function parse ( headers : Headers ) {
36+ export function parse ( headers : Headers ) : State | undefined {
3837 const raw = headers . get ( HEADER )
3938 if ( ! raw ) return
4039
4140 let data
42-
4341 try {
4442 data = JSON . parse ( raw )
4543 } catch {
@@ -49,10 +47,10 @@ export function parse(headers: Headers) {
4947 if ( ! data || typeof data !== "object" ) return
5048
5149 return Object . fromEntries (
52- Object . entries ( data ) . filter ( ( [ id , seq ] ) => {
53- return typeof id === "string" && Number . isInteger ( seq )
50+ Object . entries ( data ) . filter ( ( entry ) : entry is [ string , number ] => {
51+ return typeof entry [ 0 ] === "string" && Number . isInteger ( entry [ 1 ] )
5452 } ) ,
55- ) as State
53+ )
5654}
5755
5856export function waitEffect ( workspaceID : WorkspaceID , state : State , signal ?: AbortSignal ) {
@@ -68,7 +66,3 @@ export function waitEffect(workspaceID: WorkspaceID, state: State, signal?: Abor
6866 } )
6967 } )
7068}
71-
72- export async function wait ( workspaceID : WorkspaceID , state : State , signal ?: AbortSignal ) {
73- await AppRuntime . runPromise ( waitEffect ( workspaceID , state , signal ) )
74- }
0 commit comments