# fix\(server\): log websocket close reasons, update requesters and stall attribution · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/e5365531eab15452bddc6e5745f24b23959e9731)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: e5365531eab15452bddc6e5745f24b23959e9731

Requested commit: e5365531eab15452bddc6e5745f24b23959e9731

Commit: e5365531eab15452bddc6e5745f24b23959e9731

Tree: 7890ef1af75d0c41efc84b3aecb364b789d570ab

Author: Victor Vogel

Committer: Victor Vogel

## Message

```
fix(server): log websocket close reasons, update requesters and stall attribution

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>

```

## Parents

- [9a391eb3f55b738113b61768cf2d8263b4f3ac2e](https://git.cafe/pingdotgg/t3code/commit/9a391eb3f55b738113b61768cf2d8263b4f3ac2e?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/e5365531eab15452bddc6e5745f24b23959e9731?format=markdown)
