()
| 371 | |
| 372 | // Handle slave disconnect |
| 373 | const onDisconnect = () => { |
| 374 | logForDebugging(`[MasterMonitor] Slave "${slaveName}" disconnected`) |
| 375 | // Clear any lingering /send override before removing client |
| 376 | removeSendOverride(slaveName) |
| 377 | removeSlaveClient(slaveName) |
| 378 | setAppState(prev => { |
| 379 | const { [slaveName]: _removed, ...remainingSlaves } = |
| 380 | getPipeIpc(prev).slaves |
| 381 | const hasSlaves = Object.keys(remainingSlaves).length > 0 |
| 382 | return { |
| 383 | ...prev, |
| 384 | pipeIpc: { |
| 385 | ...getPipeIpc(prev), |
| 386 | role: hasSlaves ? 'master' : 'main', |
| 387 | displayRole: hasSlaves ? 'master' : 'main', |
| 388 | slaves: remainingSlaves, |
| 389 | }, |
| 390 | } |
| 391 | }) |
| 392 | } |
| 393 | |
| 394 | client.on('disconnect', onDisconnect) |
| 395 | cleanups.push(() => { |
nothing calls this directly
no test coverage detected