BE-062: every curlRun call loses its first flag — io.spawn consumes argv0, so curl never sees -sSf (no --fail, no silence)

Now:
OPEN
Sev:
MED

io.spawn(bin, argv) takes argv WITH argv0: io.spawn("/bin/echo", ["AAA","BBB"]) runs echo with argv0 AAA and prints BBB. Every other spawn site obeys that — classify() builds argv: [keeperBin, verb, sp] and [sshBin, dest, cmd], bin repeated. curlRun does not: be/shared/wire.js:252 calls io.spawn(CURL_BIN, argv) where all four callers pass ["-sSf", "-A", "git/2.0", …]. So -sSf becomes argv0 and is DROPPED. curl therefore runs without -f: an HTTP 404/500 is written to stdout as a body and returned as success, and without -sS its progress meter goes to stderr on every fetch. Visible in any http clone. Found by the TEST-004 treadmill; method Issues.

Input

Context

Goals

curl receives every flag its caller passed, and an HTTP error surfaces as an HTTP error.

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome

Not started — filed 2026-07-27 from a TEST-004 treadmill finding.