Summary
When the native binary isn't present next to the npm wrapper, zero doctor's runtime.go check still reports [pass] Zero Go runtime is available (go) — even though zero exec and zero providers list both hard-fail with [zero] No native binary found next to the npm wrapper. The one precondition that's actually broken gets a green check, which sends you debugging the wrong thing (I went after provider/network config first).
How I hit it
Fresh npm i -g @gitlawb/zero where the postinstall's release-asset download didn't complete (restricted network in my case). The postinstall exits 0 regardless — by design, so npm install doesn't break — leaving bin/ with only zero.js and no native binary. Nothing surfaced this until I ran an agent command.
Repro (deterministic)
ZERO_SKIP_DOWNLOAD=1 npm i -g @gitlawb/zero
zero doctor # -> [pass] runtime.go - Zero Go runtime is available (go)
zero exec --list-tools # -> [zero] No native binary found next to the npm wrapper.
zero providers list # -> same "No native binary found" error
Expected
doctor should verify the native binary actually exists and is runnable next to the wrapper, and fail that check loudly with the same guidance the wrapper prints ("No native binary found — reinstall or build from source"). Since a missing binary makes every agent command fail, it should be the first/hardest failure — not a pass.
Why it matters
exec and providers list correctly detect the missing binary, but doctor — the command you run to diagnose setup — doesn't, so it actively points away from the real cause. A binary-presence check in doctor would also be a natural safety net for the postinstall silently exiting 0 on a failed download.
Env
ZERO 0.1.0 · macOS 15 (x64) · installed via npm (@gitlawb/zero)
Summary
When the native binary isn't present next to the npm wrapper,
zero doctor'sruntime.gocheck still reports[pass] Zero Go runtime is available (go)— even thoughzero execandzero providers listboth hard-fail with[zero] No native binary found next to the npm wrapper.The one precondition that's actually broken gets a green check, which sends you debugging the wrong thing (I went after provider/network config first).How I hit it
Fresh
npm i -g @gitlawb/zerowhere the postinstall's release-asset download didn't complete (restricted network in my case). The postinstall exits 0 regardless — by design, sonpm installdoesn't break — leavingbin/with onlyzero.jsand no native binary. Nothing surfaced this until I ran an agent command.Repro (deterministic)
Expected
doctorshould verify the native binary actually exists and is runnable next to the wrapper, and fail that check loudly with the same guidance the wrapper prints ("No native binary found — reinstall or build from source"). Since a missing binary makes every agent command fail, it should be the first/hardest failure — not a pass.Why it matters
execandproviders listcorrectly detect the missing binary, butdoctor— the command you run to diagnose setup — doesn't, so it actively points away from the real cause. A binary-presence check indoctorwould also be a natural safety net for the postinstall silently exiting 0 on a failed download.Env
ZERO 0.1.0 · macOS 15 (x64) · installed via npm (
@gitlawb/zero)