From 9418d95e3568770fb39eae4169ec9d0831749cde Mon Sep 17 00:00:00 2001 From: Rob Colbert Date: Mon, 11 May 2026 17:41:51 -0400 Subject: [PATCH] fix: resolve build errors in session-stability branch 1. Vite config: make HTTPS conditional on SSL cert/key files existing (pre-existing issue, broke builds when certs not present) 2. Drone reconnect handler: use socket.io Manager-level 'reconnect' event (this.socket.io.on) instead of Socket-level event, and add explicit type annotation for attemptNumber parameter --- gadget-code/frontend/vite.config.ts | 15 +++++++++++---- gadget-drone/src/gadget-drone.ts | 4 +++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/gadget-code/frontend/vite.config.ts b/gadget-code/frontend/vite.config.ts index 285c81e..6c4af97 100644 --- a/gadget-code/frontend/vite.config.ts +++ b/gadget-code/frontend/vite.config.ts @@ -14,10 +14,17 @@ export default defineConfig({ server: { port: 5174, host: '0.0.0.0', - https: { - key: fs.readFileSync(path.join(rootDir, 'ssl', 'code-dev.g4dge7.com.key')), - cert: fs.readFileSync(path.join(rootDir, 'ssl', 'code-dev.g4dge7.com.crt')), - }, + https: (() => { + const keyPath = path.join(rootDir, 'ssl', 'code-dev.g4dge7.com.key'); + const certPath = path.join(rootDir, 'ssl', 'code-dev.g4dge7.com.crt'); + if (fs.existsSync(keyPath) && fs.existsSync(certPath)) { + return { + key: fs.readFileSync(keyPath), + cert: fs.readFileSync(certPath), + }; + } + return undefined; + })(), hmr: { host: 'code-dev.g4dge7.com', port: 5174, diff --git a/gadget-drone/src/gadget-drone.ts b/gadget-drone/src/gadget-drone.ts index 267859f..9dbfc3b 100644 --- a/gadget-drone/src/gadget-drone.ts +++ b/gadget-drone/src/gadget-drone.ts @@ -268,8 +268,10 @@ class GadgetDrone extends GadgetProcess { /* * Handle socket reconnect: re-emit current drone status so the * platform knows the drone is still alive and available. + * NOTE: "reconnect" is a Manager-level event in Socket.IO v4, + * not a Socket-level event, so we listen on socket.io. */ - this.socket.on("reconnect", (attemptNumber) => { + this.socket.io.on("reconnect", (attemptNumber: number) => { this.log.info("socket reconnected to platform", { attemptNumber }); if (this.sessionLock) { this.socket?.emit("status", "session lock active (reconnected)");