Ruling thread (gritzko 2026-07-18): bro renders gradually as hunks arrive. JS is 1 process, so the verb runs in a SEPARATE producer process; hunks go into a shared mmap log; a pipe carries the line protocol. The hunk substrate is already stream-shaped (HUNKcb one-at-a-time, TLV framing, sink rows) — only the plumbing is batch today (sink collected in full, pager blocked around the verb call).
io.fork() of the already-warm pager process — probe 2026-07-18: this musl JSCOnly jab runs Threads: 1 (no JIT/GC helpers), fork-safe. macOS/system JSC is multithreaded + CF-hostile → spawn fallback.Pager sends a request, paints arriving hunks incrementally, stays responsive throughout.
>>> //context verb args — the addr-bar form (BRO-024 prompt minus the colon), argline/spell escaping, no new grammar;<<< hunk OFF LEN — one line per committed hunk, byte offset+length into the log (no ordinals, no scanning; the line IS the commit publish);<<< ok N / <<< err CODE — terminator with tally or error code (bar prints the tally / flips red with CODE);>>> only after the terminator; abort = kill+respawn (a cancel line is a later nicety).--tlv emits; no headers, no markers, no other record kinds, no new serialization. The reader drains with the libdog-specified validation (HUNKTOKLEN/HUNKTOKOOB shape) so a torn/in-flight record rejects instead of corrupting the render.pol watches the pipe fd (no polling timers); append-tolerant views paint as hunks land; sort/total views (status quad, spot dedup) repaint in place at the terminator; BRO-034 yellow bar = stream open, normal at ok, red at err._exit.io.fork() is a NEW binding (io.cpp, alongside spawn/spawnFds/reap) gated by a threads==1 check (/proc/self/status) at fork time — a future JIT build must fail the gate, not corrupt; spawn (io.spawnFds + shared file / memfd) is the portable path, SAME protocol, pager agnostic.io.fork binding + threads==1 gate; io.reap wiring>>> lines, run verb with sink → log appends + <<< lines(pending)