From d91cdc3418d4e02005011196ddbc971745b52e95 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 20:59:53 +0000 Subject: [PATCH] fix(http): use app.server after listen; avoid calling on() on return; bump to 0.1.5 Co-Authored-By: Lars Baunwall --- package.json | 2 +- src/http/server.ts | 28 +++++++++++++++++++++------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index c6e7173..d40e4df 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "copilot-bridge", "displayName": "Copilot Bridge", "description": "Local OpenAI-compatible chat endpoint bridging to GitHub Copilot via the VS Code Language Model API.", - "version": "0.1.4", + "version": "0.1.5", "publisher": "thinkability", "engines": { "vscode": "^1.90.0" diff --git a/src/http/server.ts b/src/http/server.ts index 0ae8b1e..ad8094c 100644 --- a/src/http/server.ts +++ b/src/http/server.ts @@ -56,16 +56,30 @@ export const startServer = async (): Promise => { }); await new Promise((resolve, reject) => { - const srv: Server = app.listen(config.port, config.host, (err?: any) => { - if (err) { - reject(err); - } else { + let resolved = false; + try { + app.listen(config.port, config.host, () => { + const srv: Server | undefined = app.server; + if (!srv) { + reject(new Error('Server failed to start')); + return; + } state.server = srv; updateStatusAfterStart(); + resolved = true; resolve(); - } - }); - srv.on('error', reject); + }); + } catch (err) { + reject(err); + return; + } + const srv: Server | undefined = app.server; + if (srv && typeof (srv as any).on === 'function') { + srv.on('error', reject); + } + if (!resolved && app.server && typeof (app.server as any).on === 'function') { + app.server.on('error', reject); + } }); };