d98cd83fe5
- StatusSession: ответ на ванильный статус на том же порту. Первый байт потока различает наш протокол и гостей: R - наш кадр, иначе старый пинг (FE) или новый handshake + request + ping. Логин в старом стиле получает вежливый отказ словами. - Reader: первый байт, уже прочитанный вручную, теперь правильно исключается из головы - раньше счётчик дважды пропускал его. - TokenAuth: точные причины отказа (не подписано, другой сервер, не тот вид, истёк, не тот игрок) и Verdict для каждой сессии. - ClientSession: первое чтение смотрит на байт и отдаёт гостей статусу; остальное идёт через прежнее расщепление. - StatusTest: 5 проверок (json, modern, pong, legacy, отказ). Легаси-пинг читался как знаковый байт; исправлено на беззнаковый. - StatusRouteTest: 3 проверки через настоящий сервер и настоящие порты. - watch-game.ps1: удаляет устаревший dev-token перед стартом сервера.