Effect's RPC server drops the WebSocket close code, so a dropped /ws connection left no reason in the logs. Update log lines did not say which connection asked for the update, and an event-loop stall warning gave no hint of what was running. The socket reader now keeps the close code and reason and logs one "WebSocket closed" line per /ws connection with session, client and address. Every update log line, including the launcher handoff, carries requestedBy. Each event-loop window reports main-thread blocked and read time from /proc/thread-self and up to 3 candidate spans from a 128-entry slow-span ring fed by the existing tracer. That is attribution, not a stack. The trace ring cap is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Victor Vogel committed on 10/23/2026, 11:16:05 PMparent9a391eb
10 files changedLine totals unavailable