* Tell the daemon our pids right after we verify its hello, so its liveness * sweep can reap this client if our process dies without the socket ever * signalling close (the Windows named-pipe hazard behind #692). Best-effort: * sent before any piped bytes so it's always the daemon's first line fr
(socket: net.Socket)
| 175 | * host pid if set, else our own parent (the host, on a no-relaunch bundle). |
| 176 | */ |
| 177 | function sendClientHello(socket: net.Socket): void { |
| 178 | const clientHello: DaemonClientHello = { |
| 179 | codegraph_client: 1, |
| 180 | pid: process.pid, |
| 181 | hostPid: parseHostPpid(process.env[HOST_PPID_ENV]) ?? process.ppid, |
| 182 | }; |
| 183 | try { socket.write(JSON.stringify(clientHello) + '\n'); } catch { /* best-effort */ } |
| 184 | } |
| 185 | |
| 186 | type JsonRpc = Record<string, unknown>; |
| 187 |
no test coverage detected