π€ AI: Split out of #3884 at pljones's request β the one of the three that isn't a range check.
null is a documented-valid value that clears the skill level. Its branch (src/clientrpc.cpp:304) sets SL_NOT_SET, calls SetRemoteInfo(), and returns at src/clientrpc.cpp:308 without assigning response["result"]:
| skillLevel |
response |
null |
{"id":4,"jsonrpc":"2.0"} |
"expert" |
{"result":"ok"} |
A response with neither member violates JSON-RPC 2.0 Β§5, and the method's own doc says @result β Always "ok". A strict client waiting for result blocks on a valid call. Fix: add response["result"] = "ok"; before the return.
Measured on main @ 8b667a3a, Qt 5.15.3, x86-64, QT_QPA_PLATFORM=offscreen; line numbers re-verified unchanged against origin/main @ 11a28d57e33506fc84cb9b5ee02097931c1e35a3 on 2026-08-21.
π€ This message was written by AI and reviewed by @mcfnord.
π€ AI: Split out of #3884 at pljones's request β the one of the three that isn't a range check.
nullis a documented-valid value that clears the skill level. Its branch (src/clientrpc.cpp:304) setsSL_NOT_SET, callsSetRemoteInfo(), and returns atsrc/clientrpc.cpp:308without assigningresponse["result"]:null{"id":4,"jsonrpc":"2.0"}"expert"{"result":"ok"}A response with neither member violates JSON-RPC 2.0 Β§5, and the method's own doc says
@result β Always "ok". A strict client waiting forresultblocks on a valid call. Fix: addresponse["result"] = "ok";before thereturn.Measured on
main@8b667a3a, Qt 5.15.3, x86-64,QT_QPA_PLATFORM=offscreen; line numbers re-verified unchanged againstorigin/main@11a28d57e33506fc84cb9b5ee02097931c1e35a3on 2026-08-21.π€ This message was written by AI and reviewed by @mcfnord.