@@ -910,38 +910,16 @@ export class ClaudeAcpAgent extends BaseAcpAgent {
910910 }
911911 }
912912
913- // Fetch model config in parallel with SDK initialization for new sessions.
914- // The gateway REST call doesn't depend on the SDK being ready.
913+ // Kick off SDK initialization for new sessions so it runs concurrently
914+ // with the model config fetch below (the gateway REST call is independent).
915+ const initPromise = ! isResume
916+ ? withTimeout ( q . initializationResult ( ) , SESSION_VALIDATION_TIMEOUT_MS )
917+ : undefined ;
918+
915919 const [ modelOptions ] = await Promise . all ( [
916920 this . getModelConfigOptions (
917921 settingsManager . getSettings ( ) . model || meta ?. model || undefined ,
918922 ) ,
919- // For new sessions, await initialization concurrently with model fetch.
920- // SDK starts in the background via query() — we just need it ready
921- // before the first prompt, not before returning configOptions.
922- ...( ! isResume
923- ? [
924- withTimeout ( q . initializationResult ( ) , SESSION_VALIDATION_TIMEOUT_MS )
925- . then ( ( result ) => {
926- if ( result . result === "timeout" ) {
927- this . logger . error ( "Session initialization timed out" , {
928- sessionId,
929- taskId,
930- taskRunId : meta ?. taskRunId ,
931- } ) ;
932- }
933- } )
934- . catch ( ( err ) => {
935- this . logger . error ( "Session initialization failed" , {
936- sessionId,
937- taskId,
938- taskRunId : meta ?. taskRunId ,
939- error : err instanceof Error ? err . message : String ( err ) ,
940- } ) ;
941- } ) ,
942- ]
943- : [ ] ) ,
944- // Fire notification in parallel too
945923 ...( meta ?. taskRunId
946924 ? [
947925 this . client . extNotification ( "_posthog/sdk_session" , {
@@ -953,6 +931,27 @@ export class ClaudeAcpAgent extends BaseAcpAgent {
953931 : [ ] ) ,
954932 ] ) ;
955933
934+ if ( initPromise ) {
935+ try {
936+ const initResult = await initPromise ;
937+ if ( initResult . result === "timeout" ) {
938+ settingsManager . dispose ( ) ;
939+ throw new Error (
940+ `Session initialization timed out for sessionId=${ sessionId } ` ,
941+ ) ;
942+ }
943+ } catch ( err ) {
944+ settingsManager . dispose ( ) ;
945+ this . logger . error ( "Session initialization failed" , {
946+ sessionId,
947+ taskId,
948+ taskRunId : meta ?. taskRunId ,
949+ error : err instanceof Error ? err . message : String ( err ) ,
950+ } ) ;
951+ throw err ;
952+ }
953+ }
954+
956955 const settingsModel = settingsManager . getSettings ( ) . model ;
957956 const metaModel = meta ?. model ;
958957 const resolvedModelId =
0 commit comments