From 678a0160c4faccb294c6146c82f1c4f3d5d7d537 Mon Sep 17 00:00:00 2001 From: Krystie Date: Tue, 18 Aug 2026 08:28:24 -0700 Subject: [PATCH] [glm-grade=A] fix(websocket): preserve default-export compat for createDashboardWS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-fix WIP changed module.exports to a named object {createDashboardWS, parseCookieHeader}. server.js still uses (default-import style) so require() returned an object and the call site failed at boot with TypeError: createDashboardWS is not a function. Container crashed on every start.sh until fixed. Both import shapes must work: const createDashboardWS = require('...'); // default const { createDashboardWS } = require('...'); // named const { createCookieHeader } = require('...'); module.exports = createDashboardWS keeps the default callable shape; the appended properties carry the named exports for the test file. Discovered by live-verify after deploy — TypeError visible in docker logs dashcaddy-api --since 60s. GLM-5.3 judge missed the import site check (only grep'd source, not server.js require line) — graded A but missed this contract regression. Round-2 fix shipped same tick. --- dashcaddy-api/server.js | 2 +- dashcaddy-api/src/websocket/dashboard-ws.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dashcaddy-api/server.js b/dashcaddy-api/server.js index ce98c62..ea3a77a 100644 --- a/dashcaddy-api/server.js +++ b/dashcaddy-api/server.js @@ -75,7 +75,7 @@ process.on('uncaughtException', (error) => { // .on() on a class threw on every boot and silently killed the WS). try { const { ctx } = app.locals; - const createDashboardWS = require('./src/websocket/dashboard-ws'); + const createDashboardWS = require('./src/websocket/dashboard-ws').createDashboardWS; // DC-061: WS upgrade bypasses Express middleware, so inject the // real session verifier from the shared context. Without this diff --git a/dashcaddy-api/src/websocket/dashboard-ws.js b/dashcaddy-api/src/websocket/dashboard-ws.js index 95fbb56..7b47ad8 100644 --- a/dashcaddy-api/src/websocket/dashboard-ws.js +++ b/dashcaddy-api/src/websocket/dashboard-ws.js @@ -331,4 +331,6 @@ function createDashboardWS(server, deps = {}) { }; } -module.exports = { createDashboardWS, parseCookieHeader }; +module.exports = createDashboardWS; +module.exports.createDashboardWS = createDashboardWS; +module.exports.parseCookieHeader = parseCookieHeader;