From db125c7d571ec75eb35ea85e4ad2679a562cd62e Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Thu, 29 Jan 2026 12:32:03 -0800 Subject: [PATCH] feat(gmail-watcher): register gog child with registry --- src/hooks/gmail-watcher.ts | 4 ++++ src/infra/ssh-tunnel.ts | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/hooks/gmail-watcher.ts b/src/hooks/gmail-watcher.ts index bf1b08b35..ad9093eb9 100644 --- a/src/hooks/gmail-watcher.ts +++ b/src/hooks/gmail-watcher.ts @@ -8,6 +8,7 @@ import { type ChildProcess, spawn } from "node:child_process"; import { hasBinary } from "../agents/skills.js"; import type { MoltbotConfig } from "../config/config.js"; +import { registerChild } from "../infra/child-registry.js"; import { createSubsystemLogger } from "../logging/subsystem.js"; import { runCommandWithTimeout } from "../process/exec.js"; import { @@ -73,6 +74,9 @@ function spawnGogServe(cfg: GmailHookRuntimeConfig): ChildProcess { detached: false, }); + // Register with child registry (managedExternally: true because we have our own stop logic) + registerChild("gog-gmail-watcher", child, { managedExternally: true }); + child.stdout?.on("data", (data: Buffer) => { const line = data.toString().trim(); if (line) log.info(`[gog] ${line}`); diff --git a/src/infra/ssh-tunnel.ts b/src/infra/ssh-tunnel.ts index 399dc22e3..9cdb6460a 100644 --- a/src/infra/ssh-tunnel.ts +++ b/src/infra/ssh-tunnel.ts @@ -1,6 +1,7 @@ import { spawn } from "node:child_process"; import net from "node:net"; +import { registerChild } from "./child-registry.js"; import { ensurePortAvailable } from "./ports.js"; export type SshParsedTarget = { @@ -145,6 +146,8 @@ export async function startSshPortForward(opts: { const child = spawn("/usr/bin/ssh", args, { stdio: ["ignore", "ignore", "pipe"], }); + // Register with child registry (managedExternally: true because tunnel has its own stop logic) + registerChild("ssh-tunnel", child, { managedExternally: true }); child.stderr?.setEncoding("utf8"); child.stderr?.on("data", (chunk) => { const lines = String(chunk)