c2acd0e449c2c1f692bad1c235de8be2562c04be
dist CLI into build + test (0100 unblocked)
The sx 0100 fix (cli.parse / json.parse name collision) is merged on sx master, so `dist.sx` — co-importing std.cli (via dist) and std.json (via json_out) — now lowers and builds. Finish the step: - dist.sx: fix two real frontend errors the old IR-lowering crash had masked — `main` returns `!` (noreturn exit tails), and the post-parse dispatch is guarded by `if !perr` so the failable `p` is used only with its error proven absent. Drop the stale BLOCKED narration. - Makefile: `make build` now also compiles src/dist.sx -> build/dist; `make test` depends on `build` so the acceptance test finds the binary. - tests/cli_dispatch.sx: drives the BUILT build/dist via process.run and asserts the std.cli exit-code + --json purity contract: no-args and unknown-command -> human text on stderr + EX_USAGE (64); `ci publish --json` -> stdout is a single valid JSON object (std.json.parse, no trailing junk) with the human ack on stderr; `--help` lists ci/release. Handlers stay honest stubs (real ci publish is P3.4). Gate green: make build (build/dist), make test (7/7).
Description
No description provided
Languages
HTML
35.2%
CSS
30.3%
JavaScript
29%
Makefile
3.4%
Shell
2.1%