@openbuilder/cli 0.50.28 → 0.50.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +45 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5450,6 +5450,8 @@ var BuildWebSocketServer = class {
|
|
|
5450
5450
|
// Instance ID for debugging singleton issues
|
|
5451
5451
|
instanceId = Math.random().toString(36).substring(7);
|
|
5452
5452
|
initialized = false;
|
|
5453
|
+
// Callback for runner status changes (set by app layer)
|
|
5454
|
+
onRunnerStatusChangeCallback = null;
|
|
5453
5455
|
constructor() {
|
|
5454
5456
|
buildLogger$2.websocket.serverCreated(this.instanceId);
|
|
5455
5457
|
}
|
|
@@ -5616,6 +5618,7 @@ var BuildWebSocketServer = class {
|
|
|
5616
5618
|
remaining: queueResult.remaining
|
|
5617
5619
|
});
|
|
5618
5620
|
}
|
|
5621
|
+
this.notifyRunnerConnected(runnerId);
|
|
5619
5622
|
ws.on("pong", () => {
|
|
5620
5623
|
const conn = this.runnerConnections.get(runnerId);
|
|
5621
5624
|
if (conn) {
|
|
@@ -5754,7 +5757,22 @@ var BuildWebSocketServer = class {
|
|
|
5754
5757
|
*/
|
|
5755
5758
|
isRunnerConnected(runnerId) {
|
|
5756
5759
|
const conn = this.runnerConnections.get(runnerId);
|
|
5757
|
-
|
|
5760
|
+
const isConnected = conn !== void 0 && conn.socket.readyState === WebSocket.OPEN;
|
|
5761
|
+
console.log(`[isRunnerConnected] Checking runner '${runnerId}':`, {
|
|
5762
|
+
hasConnection: conn !== void 0,
|
|
5763
|
+
socketState: conn?.socket.readyState,
|
|
5764
|
+
isOpen: conn?.socket.readyState === WebSocket.OPEN,
|
|
5765
|
+
result: isConnected,
|
|
5766
|
+
allRunners: Array.from(this.runnerConnections.keys())
|
|
5767
|
+
});
|
|
5768
|
+
return isConnected;
|
|
5769
|
+
}
|
|
5770
|
+
/**
|
|
5771
|
+
* Register a callback to be notified when runner status changes
|
|
5772
|
+
* This allows the app layer to emit project events when runners connect/disconnect
|
|
5773
|
+
*/
|
|
5774
|
+
onRunnerStatusChange(callback) {
|
|
5775
|
+
this.onRunnerStatusChangeCallback = callback;
|
|
5758
5776
|
}
|
|
5759
5777
|
/**
|
|
5760
5778
|
* Get runner metrics
|
|
@@ -5824,6 +5842,13 @@ var BuildWebSocketServer = class {
|
|
|
5824
5842
|
level: "info",
|
|
5825
5843
|
data: { runnerId, processCount: projectIds.length }
|
|
5826
5844
|
});
|
|
5845
|
+
if (this.onRunnerStatusChangeCallback) {
|
|
5846
|
+
try {
|
|
5847
|
+
this.onRunnerStatusChangeCallback(runnerId, false, projectIds);
|
|
5848
|
+
} catch (callbackError) {
|
|
5849
|
+
buildLogger$2.websocket.error("Runner status change callback failed", callbackError, { runnerId });
|
|
5850
|
+
}
|
|
5851
|
+
}
|
|
5827
5852
|
} catch (error) {
|
|
5828
5853
|
buildLogger$2.websocket.error("Failed to cleanup runner processes", error, { runnerId });
|
|
5829
5854
|
captureException(error, {
|
|
@@ -5832,6 +5857,25 @@ var BuildWebSocketServer = class {
|
|
|
5832
5857
|
});
|
|
5833
5858
|
}
|
|
5834
5859
|
}
|
|
5860
|
+
/**
|
|
5861
|
+
* Notify app layer when a runner connects so projects can update their UI
|
|
5862
|
+
*/
|
|
5863
|
+
async notifyRunnerConnected(runnerId) {
|
|
5864
|
+
if (!this.onRunnerStatusChangeCallback) return;
|
|
5865
|
+
try {
|
|
5866
|
+
const projectsWithRunner = await db.select({ id: projects.id }).from(projects).where(eq(projects.runnerId, runnerId));
|
|
5867
|
+
if (projectsWithRunner.length > 0) {
|
|
5868
|
+
const projectIds = projectsWithRunner.map((p) => p.id);
|
|
5869
|
+
buildLogger$2.log("info", "websocket", `Runner ${runnerId} connected - notifying ${projectIds.length} projects`, {
|
|
5870
|
+
runnerId,
|
|
5871
|
+
projectIds
|
|
5872
|
+
});
|
|
5873
|
+
this.onRunnerStatusChangeCallback(runnerId, true, projectIds);
|
|
5874
|
+
}
|
|
5875
|
+
} catch (error) {
|
|
5876
|
+
buildLogger$2.websocket.error("Failed to notify runner connected", error, { runnerId });
|
|
5877
|
+
}
|
|
5878
|
+
}
|
|
5835
5879
|
/**
|
|
5836
5880
|
* Handle messages from client (heartbeat, resubscribe, HMR, etc.)
|
|
5837
5881
|
*/
|