Skip to content

Deliver a Client DISCONNECT reason to the disconnected client - #23

Open
mgasner wants to merge 1 commit into
fix/open-refuse-on-hubfrom
fix/kick-reason
Open

mgasner wants to merge 1 commit into
fix/open-refuse-on-hubfrom
fix/kick-reason

Conversation

@mgasner

@mgasner mgasner commented Sep 28, 2026 •

Copy link
Copy Markdown

Stacked on #22; the diff shows only this change.

The Clients panel says the kick reason is shown to the client, but the server dropped DISCONNECT's reason. It sent GOAWAY with empty detail, so a kicked CLI printed only yas: YAS server is closing with Ok: no detail.

Fix

  • The reason now travels in GOAWAY detail as a new optional Core extension, GOAWAY_REASON_EXTENSION (1). This is a schema addition, regenerated with cargo xtask protocol, and the compatibility check passes.
  • A kicked CLI exits with yas: disconnected by the YAS server: REASON.
  • The browser client decodes and tolerates the extension but doesn't display it yet, so for now the panel's claim holds only for CLI clients.
  • docs/design/yas.md and learn.md are updated.

Testing

  • Unit tests: goaway_reason_round_trips_as_optional_detail (yas-wire) and goaway_with_a_disconnect_reason_names_it (CLI).
  • Manual test: a yas events tail client kicked with yas client disconnect ID --reason "Removed by an administrator" printed the reason.

View in Indent
Tag @indent to continue the conversation here.

The server dropped DISCONNECT's reason and sent GOAWAY with empty detail, so
a kicked CLI printed 'YAS server is closing with Ok: no detail'. The reason
now travels in GOAWAY detail as the new optional Core extension
GOAWAY_REASON_EXTENSION (1), and the CLI prints
'disconnected by the YAS server: REASON'.
@github-actions

Copy link
Copy Markdown

Coverage

Crate Lines Functions Regions
alacritty-driver 85.6% (1081/1263) 89.4% (84/94) 89.3% (1746/1955)
browser 25.5% (309/1212) 30.4% (34/112) 27.7% (605/2183)
cli 35.1% (8394/23930) 36.0% (777/2159) 35.7% (12143/33975)
composite-transport 96.3% (526/546) 98.4% (60/61) 96.2% (884/919)
compositor 55.0% (11409/20760) 66.3% (835/1260) 54.8% (15800/28840)
desktop 78.4% (4460/5691) 71.6% (393/549) 75.1% (6211/8267)
edge 63.1% (800/1268) 50.9% (82/161) 58.0% (1043/1799)
fonts 77.3% (1257/1626) 82.7% (129/156) 78.9% (2424/3071)
fssync 85.4% (1598/1872) 84.4% (179/212) 86.4% (2813/3255)
git 70.4% (4462/6334) 68.5% (337/492) 67.3% (6313/9386)
guest 67.3% (6829/10148) 67.0% (488/728) 66.6% (8935/13416)
lsp 78.7% (3573/4542) 80.8% (336/416) 76.7% (5408/7054)
proxy 57.8% (1120/1937) 50.5% (104/206) 59.0% (1749/2965)
runtime-dir 93.6% (117/125) 100.0% (14/14) 94.8% (218/230)
sd-notify 73.9% (68/92) 100.0% (6/6) 83.2% (109/131)
server 68.7% (79700/116079) 70.4% (5712/8110) 66.3% (105505/159154)
ssh 42.6% (270/634) 51.5% (34/66) 42.9% (428/998)
terminal-model 49.9% (314/629) 62.3% (38/61) 50.3% (505/1004)
uplink 94.0% (581/618) 92.6% (50/54) 93.0% (1061/1141)
webrtc-forwarder 33.8% (1337/3961) 42.0% (136/324) 36.2% (2318/6409)
webserver 77.0% (1421/1846) 75.2% (179/238) 80.0% (2453/3067)
website 35.1% (355/1012) 34.4% (53/154) 35.8% (607/1694)
xtask 0.0% (0/5131) 0.0% (0/131) 0.0% (0/9124)
yas 87.8% (26481/30170) 93.2% (2035/2184) 82.7% (41695/50414)
Total 64.8% (156462/241426) 67.4% (12095/17948) 63.1% (220973/350451)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant