control: named payloads for what other surfaces decode !211

merged merged by cmc on 2026-09-04 01:34 UTC · krz/gitbay:named-outputs into main

Discussion

cmc

issue create, issue comment, mr comment, mr create, issue show and mr show declared their output inline or as a map, so the web type-asserted data["number"].(float64) and nothing tied what a command emits to what a client reads.

output.go names them: Created, MRCreated, IssueShow, MRShow, and the ReviewOut, CheckOut and CommitOut rows inside. The web decodes into them through dispatchIntoStdin and runControlInto. The JSON on the wire is unchanged, so the iOS client and scripts see nothing new; they gain a type to import.

Left as Ref: the other 33 inline type out struct declarations belong to commands no other surface decodes (admin, keys, tokens, wiki, releases) and stay local until a consumer needs them.

Stacked on !210; depends on !209's runComment.

Ref #126

retargeted from partial-writes to main: !210 merged

2026-09-04 01:17 UTC