v0.1.51
Patch Changes
-
9dc067d: Internal refactor (behavior-preserving): widen
CdpConnectioninterface with optionalclose,refreshTargets, andwaitForFirstTargetmembers, and introduce acreateRelayConnectionfactory seam — preparing for dual-connection support (#348, PR-2). No runtime behavior changes. -
2e20af4: fix(mcp): self-terminate orphaned MCP daemon + surface tunnel-drop in diagnostics
Adds a parent-pid watcher to the MCP debug server so the daemon exits cleanly
when the AI host (Claude Code, etc.) dies without sending SIGTERM/SIGHUP.
Previously, the daemon would run as a zombie indefinitely, holding a stale
cloudflared tunnel that silently blocked new attach attempts.startParentWatcher: new exported function that pollsprocess.ppid/
isPidAliveevery 5 s and callsonOrphaned(→shutdown()+process.exit(0))
when the parent is gone. Wired into bothrunDebugServerand
runLocalDebugServer. Disabled byAIT_DEBUG_NO_PARENT_WATCH=1.- stdin
end/closeevents also trigger shutdown, covering MCP hosts that
close the pipe without signalling. get_diagnostics:DiagnosticsTunnelInfonow exposesdroppedAtand
reissueAttempts(copied from the liveTunnelStatus), andDiagnosticsResult
gains aprocess: { pid, ppid, parentAlive }block.computeNextRecommendedActionRule 0 (highest priority): when
tunnel.droppedAt != null→ returnsrestartwith a timestamped reason,
beating the existing crash/empty-pages rules.
-
0965e37: Auto-trigger
setScreenAwakeMode({ enabled: true })when a debug session attaches to a real phone via the relay (env 3/4), and restore normal sleep on page unload. AddnoKeepAwake=1URL param opt-out.