Public: anyone can read this; the crew can change it.
/events carries a run's new log lines as a run-scoped frame, only to people who can read the repo #2842
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Split from #2835 (parked twice). This is the server half only. No client script changes, so
src/web/client.tsandtest/map.test.tsare not touched.Done looks like:
appendRunLog(src/runs/log.ts) writes lines, the forge's/eventsstream sends onerun.logframe to viewers who can read the run's repository. The frame holds{ run, lines }, redacted the same way the log file is, and is capped at a fixed size per frame (say 64 lines or 16 KiB, then atruncated: trueflag).?since=. A tab that opens late reads the log file the way it does today.test/events-run-log.test.ts): a reader receives the frame. A person who cannot read the repo, or is signed out, gets nothing from a private repo. A secret the redactor knows never appears in a frame. A reconnect withsincereplays no log frame.Files:
src/runs/log.ts, the/eventshub insrc/http/server.ts(or the module it calls), the new test. Risk: the volume on a busy forge. Each frame is bounded, and sending is skipped when nobody is listening.