index/index.js:1064:Wt foreignFailed reports through progress().note, and
index/index.js:410:Wt gates every progress channel on io.isatty(2), so a piped
run, the commit hook and bee http swallow a foreign bring-up failure and
answer off whatever stale rows the read-only open finds. BEE-065:23:uS rules the
opposite: a refused repo names itself on stderr rather than stalling mute.
Found in the 2026-09-18 index review.
Route refusals to an ungated stderr write; keep the progress ticks tty-only.
progress()'s private raw became a module-level sayErr, the
one ungated stderr write; tick/note/done keep the
isatty(2) gate and go through it, foreignFailed calls it
straight. The refusal is still said once per gitdir.
test/coldfan/run.sh C8 CONTRADICTS this ticket: it asserts
[ ! -s "$WORK/c8e" ] — "an unwritable be/ degrades to the
read-only open, exit 0, no new run", in silence. With the fix
that file holds bee: <repo>: index bring-up failed (Error:
cannot write to the index) and the check fails. Not amended
(the loop forbids it): gritzko rules whether C8 loses its
silence half.
INDEXES.mkd:277:6K says it in prose too — a refusing repo "falls
back to the read-only open and then to silence"; untouched too.
BEE-065:22:uS reads "never an error", which BEE-067 "a bring-up
that failed says so once" already amended; the tty gate was the
bug.
coldfan leg 5 lost BOTH processes once in four runs — the
suite's own known ~1/3 SIGBUS race, older than this — and the
other three runs fail C8 alone.