WS session currently reads inputs using r.Context() without a per-message deadline or read limit. The writer loop pings every ~1s but ignores Ping errors. This can leave half-open or slow connections ...