@@ -52,7 +52,6 @@ function search<T>(items: T[], target: string, key: (item: T) => string) {
5252}
5353
5454export const {
55- context : SyncContext ,
5655 use : useSync ,
5756 provider : SyncProvider ,
5857} = createSimpleContext ( {
@@ -145,7 +144,7 @@ export const {
145144 const syncingSessions = new Map < string , Promise < void > > ( )
146145 const hydratingSessions = new Map < string , { messages : Set < string > ; parts : Set < string > } > ( )
147146 let lspStatusTimer : ReturnType < typeof setTimeout > | undefined
148- const debouncedLspStatus = ( workspace : string ) => {
147+ const debouncedLspStatus = ( workspace : string | undefined ) => {
149148 if ( lspStatusTimer ) clearTimeout ( lspStatusTimer )
150149 lspStatusTimer = setTimeout ( ( ) => {
151150 void sdk . client . lsp . status ( { workspace } ) . then (
@@ -177,7 +176,7 @@ export const {
177176 function listSessions ( ) {
178177 return sdk . client . session
179178 . list ( { start : Date . now ( ) - 30 * 24 * 60 * 60 * 1000 , ...sessionListQuery ( ) } )
180- . then ( ( x ) => ( x . data ?? [ ] ) . toSorted ( ( a , b ) => a . id . localeCompare ( b . id ) ) )
179+ . then ( ( x ) => ( x . data ?? [ ] ) . toSorted ( ( a , b ) => ( a . id < b . id ? - 1 : a . id > b . id ? 1 : 0 ) ) )
181180 }
182181
183182 const unsubscribe = event . subscribe ( ( event , { directory, workspace } ) => {
@@ -368,6 +367,7 @@ export const {
368367 case "message.removed" : {
369368 touchMessage ( event . properties . sessionID , event . properties . messageID )
370369 const messages = store . message [ event . properties . sessionID ]
370+ if ( ! messages ) break
371371 const result = search ( messages , event . properties . messageID , ( m ) => m . id )
372372 if ( result . found ) {
373373 setStore (
@@ -424,6 +424,7 @@ export const {
424424 case "message.part.removed" : {
425425 touchPart ( event . properties . sessionID , event . properties . partID )
426426 const parts = store . part [ event . properties . messageID ]
427+ if ( ! parts ) break
427428 const result = search ( parts , event . properties . partID , ( p ) => p . id )
428429 if ( result . found ) {
429430 setStore (
@@ -438,8 +439,7 @@ export const {
438439 }
439440
440441 case "lsp.updated" : {
441- const workspace = project . workspace . current ( )
442- if ( workspace ) debouncedLspStatus ( workspace )
442+ debouncedLspStatus ( project . workspace . current ( ) )
443443 break
444444 }
445445
0 commit comments