fix: slotsfull is occupancy, not free slots, and cover it end to end
Running the e2e suite against a real soulfind showed the per-member slots field was implemented backwards. The wire field is `slotsfull` -- a boolean that is true when the member's upload slots are all occupied -- not a count of free ones. `slots_free: u32` named it, documented it and printed it as the opposite of what the server means, so a caller reading it would pick the busiest peer to download from. - types: `slots_full: bool`, with the wire name in the doc comment - the DTO, the `room users` output and SKILL.md follow - a new e2e test joins a room with a member sharing a known three files and asserts the counts, the roster alignment and the slot flag against soulfind, so the parsing is checked against a real server rather than only against frames this repo wrote itself
This commit is contained in:
@@ -772,10 +772,9 @@
|
||||
"minimum": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"slots_free": {
|
||||
"format": "uint32",
|
||||
"minimum": 0,
|
||||
"type": "integer"
|
||||
"slots_full": {
|
||||
"description": "True when the member's upload slots are all occupied.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"status": {
|
||||
"description": "`online`, `away`, or `offline`.",
|
||||
@@ -791,7 +790,7 @@
|
||||
"average_speed",
|
||||
"shared_files",
|
||||
"shared_folders",
|
||||
"slots_free"
|
||||
"slots_full"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user