@@ -140,7 +140,7 @@ export class UiOperationBridge extends EventEmitter {
140140 } ) ;
141141 }
142142
143- startApiServer ( socketPath : string ) : http . Server {
143+ startApiServer ( socketPath : string ) : Promise < void > {
144144 // Clean up stale socket file if it exists (Unix only)
145145 if ( process . platform !== 'win32' ) {
146146 try { fs . unlinkSync ( socketPath ) ; } catch { }
@@ -170,15 +170,22 @@ export class UiOperationBridge extends EventEmitter {
170170 }
171171 } ) ;
172172
173- server . listen ( socketPath , ( ) => {
174- if ( process . platform !== 'win32' ) {
175- fs . chmodSync ( socketPath , 0o600 ) ;
176- }
177- console . log ( `UI Bridge API server listening on ${ socketPath } ` ) ;
178- } ) ;
179-
180173 this . socketServer = server ;
181- return server ;
174+
175+ return new Promise < void > ( ( resolve , reject ) => {
176+ server . once ( 'error' , reject ) ;
177+ server . listen ( socketPath , ( ) => {
178+ server . removeListener ( 'error' , reject ) ;
179+ server . on ( 'error' , ( err ) => {
180+ console . warn ( `UI Bridge socket server error: ${ err . message } ` ) ;
181+ } ) ;
182+ if ( process . platform !== 'win32' ) {
183+ fs . chmodSync ( socketPath , 0o600 ) ;
184+ }
185+ console . log ( `UI Bridge API server listening on ${ socketPath } ` ) ;
186+ resolve ( ) ;
187+ } ) ;
188+ } ) ;
182189 }
183190
184191 private handleApiStatus ( res : http . ServerResponse ) : void {
0 commit comments