@@ -28,9 +28,12 @@ import { socketPackageLink } from './utils/terminal-link.mts'
2828
2929const __filename = fileURLToPath ( import . meta. url )
3030
31+ // Capture CLI start time at module level for global error handlers.
32+ const cliStartTime = Date . now ( )
33+
3134void ( async ( ) => {
3235 // Track CLI start for telemetry.
33- const cliStartTime = await trackCliStart ( process . argv )
36+ await trackCliStart ( process . argv )
3437
3538 const registryUrl = lookupRegistryUrl ( )
3639 await updateNotifier ( {
@@ -129,7 +132,7 @@ void (async () => {
129132 console . error ( 'Fatal error:' , err )
130133
131134 // Track CLI error for fatal exceptions.
132- await trackCliError ( process . argv , Date . now ( ) , err , 1 )
135+ await trackCliError ( process . argv , cliStartTime , err , 1 )
133136
134137 // Finalize telemetry before fatal exit.
135138 await finalizeTelemetry ( )
@@ -143,7 +146,7 @@ process.on('uncaughtException', async err => {
143146 console . error ( 'Uncaught exception:' , err )
144147
145148 // Track CLI error for uncaught exception.
146- await trackCliError ( process . argv , Date . now ( ) , err , 1 )
149+ await trackCliError ( process . argv , cliStartTime , err , 1 )
147150
148151 // Finalize telemetry before exit.
149152 await finalizeTelemetry ( )
@@ -158,7 +161,7 @@ process.on('unhandledRejection', async (reason, promise) => {
158161
159162 // Track CLI error for unhandled rejection.
160163 const error = reason instanceof Error ? reason : new Error ( String ( reason ) )
161- await trackCliError ( process . argv , Date . now ( ) , error , 1 )
164+ await trackCliError ( process . argv , cliStartTime , error , 1 )
162165
163166 // Finalize telemetry before exit.
164167 await finalizeTelemetry ( )
0 commit comments