Files
zeekayandHanzo Dev b455fe3138 one installer, three names — generate /install instead of committing it twice
`public/install` was a byte-identical copy of `public/install.sh`, added because
hanzo.ai/install.sh fetches the extensionless path and a 404 there is silent
(curl -f writes nothing and exits 22; sh reading an empty script exits 0; the
documented one-liner reports success and installs nothing). The reason is right.
The mechanism was 328 duplicated lines held together by a sentence in a commit
message saying the two must stay identical.

scripts/build-polyglot.js already reads public/install.sh to build the polyglot,
so it writes dist/install from the same string it already has. One source, three
published faces — `/`, `/install.sh`, `/install` — and the Dockerfile `cmp`s the
last two so "identical" is checked rather than promised.

Also asserted there: dist/install opens with #!/bin/sh and parses under dash. It
is piped into sh by a caller in another repo, so the shell that must accept it is
not the one whoever edits it will test with.

Verified: clean rebuild, all four polyglot asserts, cmp, every served path 200
(/, /install, /install.sh, /cli, /mcp, /dev, /desktop, /bot, /node, /full,
/llms.txt) and a mistyped path still 404s; `curl /install | sh -s -- --help`
prints the installer usage.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-03 18:03:23 -07:00
..