mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-14 18:01:20 +08:00
02166dad9f
Rework of the original `preview --detach` PR on top of the `--background/--status/--stop` lifecycle that landed in #2384: instead of a parallel detached-server implementation (state files, launch nonces, a --detached-child internal mode), the two capabilities main lacks become first-class preview flags that ride the existing argv forwarding into the background child. - `--idle-timeout <minutes>`: the server shuts itself down after this long with no requests. An open Studio tab counts as activity (it polls the project signature), so "idle" means nobody — human or agent — is looking. `--background` children default to 60 minutes (injected by buildBackgroundPreviewArgs unless the caller pinned a value; `--idle-timeout 0` opts out), so background servers no longer outlive their usefulness. Foreground default stays disabled. - `--owner-pid <pid>`: the server exits when that process does — an agent session can tie the preview to its own lifetime instead of leaking servers when it is killed. The watcher checks both conditions every 30s and SIGTERMs itself, reusing the exact Ctrl+C shutdown path (browser-pool drain, ffmpeg kill, hard deadline). Flags parse and fail loudly in the launching process, not inside a detached child's log file. Vite dev/local-studio modes warn that lifecycle flags apply to the embedded server only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>