@@ -77,9 +77,6 @@ export function createEventHook(
7777 csvWriter : CsvWriter ,
7878 client : OpencodeClient
7979) {
80- // Track sessions that are currently being processed to prevent duplicates
81- const processingSessions = new Set < string > ( )
82-
8380 return async ( { event } : { event : Event } ) : Promise < void > => {
8481 // Track token usage from step-finish events
8582 if ( event . type === "message.part.updated" ) {
@@ -108,33 +105,13 @@ export function createEventHook(
108105 return
109106 }
110107
111- // Debug: Log all session.idle events
112- console . log ( `[TimeTracking] ${ new Date ( ) . toISOString ( ) } Received session.idle for session ${ sessionID } , processingSessions size before: ${ processingSessions . size } ` )
113-
114- // Prevent duplicate processing if this session is already being handled
115- if ( processingSessions . has ( sessionID ) ) {
116- console . log ( `[TimeTracking] ${ new Date ( ) . toISOString ( ) } Skipping duplicate session.idle for session ${ sessionID } ` )
117- return
118- }
119-
120- // Mark this session as being processed
121- processingSessions . add ( sessionID )
122- console . log ( `[TimeTracking] ${ new Date ( ) . toISOString ( ) } Added session ${ sessionID } to processingSessions, size now: ${ processingSessions . size } ` )
123-
124108 const session = sessionManager . get ( sessionID )
125109
126110 if ( ! session || session . activities . length === 0 ) {
127111 sessionManager . delete ( sessionID )
128- processingSessions . delete ( sessionID )
129112 return
130113 }
131114
132- // Delete session immediately to prevent duplicate processing
133- sessionManager . delete ( sessionID )
134-
135- // Debug: Log if we're processing this session
136- console . log ( `[TimeTracking] ${ new Date ( ) . toISOString ( ) } Processing session.idle for session ${ sessionID } , activities: ${ session . activities . length } , processingSessions: [${ Array . from ( processingSessions ) . join ( ', ' ) } ]` )
137-
138115 const endTime = Date . now ( )
139116 const durationSeconds = Math . round ( ( endTime - session . startTime ) / 1000 )
140117
@@ -180,8 +157,7 @@ export function createEventHook(
180157 } )
181158 }
182159
183- // Remove from processing set when done
184- processingSessions . delete ( sessionID )
185- }
160+ sessionManager . delete ( sessionID )
161+ }
186162 }
187163}
0 commit comments