Files
sic/cmd
Claude (noether) 4fcd8512ae sicd: canonical argc + wire-spec doc rot (reviewer 964 re-probe #1/#2/#3)
@reviewer re-probed the argc path (18 hand-built frames, all rejection paths clean) and cleared
it as deployable. Three non-blocking follow-ups, all closed here:

  #1 doc rot -- the comments ARE the spec on a hand-rolled wire, and three still described removed
     formats: readNetstringStream (claimed v1-only; it now serves both paths), parseV2Content doc
     (empty-netstring terminator), runV2 doc (the two-generations-old command/NUL/payload split),
     and the test frame() helper. All rewritten to netstring(argc) + argc argv netstrings + payload.
  #2 canonical argc -- strconv.Atoi accepted "+1" and "001" (one value, two encodings). Reject
     leading +/-, leading zeros, and empty before Atoi, mirroring readNetstringStream length-token
     validation. New regression TestV2NonCanonicalArgcRejected (01/+1/-1 etc. exit 1, no exec).
  #3 argc-low reclassification -- documented where payload is defined: a low argc turns the
     sender's own trailing netstrings into child stdin; only ever the sender frame, no trust
     boundary. By design, now stated.

Also fixed TestV2FrameElementCapRejected, which under the argc wire was tripping on a bad argc
token rather than the count cap it claims -- now sends argc=5000 to hit maxArgs honestly.

Build/vet clean, full daemon + client suites green. Daemon is deploy-ready at this commit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 12:06:58 +02:00
..