One unreachable-remote push prints FIVE lines for ONE failure: a raw ssh: stderr leak, a be: remote … unreachable line, then Error: WIREUNRCH and Error: BEDOGEXIT twice (one per spawned be process level). Collapse to ONE uniform error line — name + verb + URI + code, single-sourced (the BE-003 contract). See BE-003, POST-020.
be post ssh://localhost/src/dogs to an unreachable git remote, verbatim:
ssh: connect to host github.com port 22: Connection refused — the sshsubprocess's OWN stderr, inherited through the transport.
be: remote <url> is unreachable (transport refused or timed out). —
keeper/WIRECLI.c:86; the same failure, restated.
Error: WIREUNRCH then Error: BEDOGEXIT ×2 — abc/PRO.h:384's MAIN
error printer fires once PER spawned be process (sub-recursion), so the code re-announces at every level as the exit propagates up.
be head be://…?/beagle (abc sub) → HOMENOPROJ+WIRENOTRP+BEDOGEXIT ×2; be patch '?6a0ce1b7!' → WIREUNRCH+BEDOGEXIT. Not just post (see SUBS-032).
A failed push (or any error exit) reports ONCE, uniformly.
name + verb + URI + code line per failure (BE-003); no `Error:
<code> stack from nested be` processes.
WIREUNRCH) wins; the generic BEDOGEXIT re-throws fromparent frames are suppressed or collapsed.
ssh:) stderr is captured/labelled, not leaked alongside the
be-level unreachable line (one transport message, not two).
PRO.h MAIN printer is process-global, so thefix must gate per-process re-printing or thread the code up without re-announcing.
be's exit code must still propagate (BEDOGEXIT carries the failure),only its user-facing line is suppressed at non-root levels.
(pending — needs a ruling on where the single error line is sourced: root be process only, vs. each dog, vs. the spawning frame.)
(audit 2026-07-07: all three still present at tip b0fb0ce4 — the MAIN printer is the bare fprintf(stderr, "Error: %s\n", …) at dog/abc/PRO.h:384, the restated line at keeper/WIRECLI.c:87, ssh stderr inherited by the transport spawn; nothing landed.)
be post to an unreachable remote; assert exactly one error line.Error: re-prints: gate dog/abc/PRO.h:384 (or the
BERun/bepost_spawn_sub spawn layer, BE.cli.c:393) so only the root be announces; child exit codes still propagate via BE_NONE_LOW_BYTE.
ssh: transport stderr instead of leaking it, then drop
the duplicate keeper/WIRECLI.c:87 restatement into the one BE-003 line.
(none yet)
(pending)