mirror of
https://github.com/hanzoai/desktop.git
synced 2026-10-30 14:58:42 +00:00
The readiness probe asked /v1/node/health_check. The node mounts two different APIs rather than two versions of one: /v1 is the OpenAI-compatible surface (chat, completions, models) and /v2 is its own control plane. Measured against the shipped sidecar, /v2/health_check answers 200 and /v1/health_check answers 404, so readiness could never pass and the probe timed out every time. Worse, on that timeout spawn() killed the node it had just started and returned an error. A node still coming up is not a node that failed. It is left running now and the timeout is logged — a readiness probe is a hint about when something is usable, not a verdict on whether it lives. Startup also panicked in sixteen places. Showing, centring and hiding a window are requests to the compositor that can fail, and none of those failures are worth ending the process over; the same goes for emitting to a window that has gone, and for a missing window config. Those now log and carry on. The node-manager singleton is read with a let-else instead of unwrap, so a startup ordering change degrades rather than crashes. The readiness regex now escapes the address before compiling it — the dots in an IP are wildcards — and falls back to a looser match rather than panicking if it somehow will not compile.