)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c5afb696ee9d223edaa0ac1225356015dddd972f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"27b71e96_acce218a","updated":"2022-08-25 10:16:50.000000000","message":"Ooops","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"}],"metropolis/node/core/curator/impl_leader_management.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5c15ea5802191acac5094f7689494cb73b78c455","unresolved":true,"context_lines":[{"line_number":296,"context_line":"\t\tid \u003d identity.NodeID(rid.Pubkey)"},{"line_number":297,"context_line":"\tcase *apb.UpdateNodeRolesRequest_Id:"},{"line_number":298,"context_line":"\t\tid \u003d rid.Id"},{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"59108bbf_6202ded2","line":300,"range":{"start_line":299,"start_character":0,"end_line":300,"end_character":54},"updated":"2022-08-25 10:09:56.000000000","message":"You don\u0027t need this branch. Just leave the default:.","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ffe0b81b688594c99447886464dbb07859aa92d0","unresolved":false,"context_lines":[{"line_number":296,"context_line":"\t\tid \u003d identity.NodeID(rid.Pubkey)"},{"line_number":297,"context_line":"\tcase *apb.UpdateNodeRolesRequest_Id:"},{"line_number":298,"context_line":"\t\tid \u003d rid.Id"},{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"c0789918_85044b35","line":300,"range":{"start_line":299,"start_character":0,"end_line":300,"end_character":54},"in_reply_to":"59108bbf_6202ded2","updated":"2022-08-25 10:44:06.000000000","message":"Done","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5c15ea5802191acac5094f7689494cb73b78c455","unresolved":true,"context_lines":[{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"\t// Take l.muNodes before modifying the node."}],"source_content_type":"text/x-go","patch_set":3,"id":"057083c5_e1b89982","line":302,"range":{"start_line":302,"start_character":49,"end_line":302,"end_character":51},"updated":"2022-08-25 10:09:56.000000000","message":"\"exactly one of pubkey or id must be set\"","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5c15ea5802191acac5094f7689494cb73b78c455","unresolved":true,"context_lines":[{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"\t// Take l.muNodes before modifying the node."}],"source_content_type":"text/x-go","patch_set":3,"id":"23998c0c_4c8a43c6","line":302,"range":{"start_line":302,"start_character":34,"end_line":302,"end_character":47},"updated":"2022-08-25 10:09:56.000000000","message":"InvalidArgument","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ffe0b81b688594c99447886464dbb07859aa92d0","unresolved":false,"context_lines":[{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"\t// Take l.muNodes before modifying the node."}],"source_content_type":"text/x-go","patch_set":3,"id":"ae74c3af_2c0f8d51","line":302,"range":{"start_line":302,"start_character":49,"end_line":302,"end_character":51},"in_reply_to":"057083c5_e1b89982","updated":"2022-08-25 10:44:06.000000000","message":"Done","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ffe0b81b688594c99447886464dbb07859aa92d0","unresolved":false,"context_lines":[{"line_number":299,"context_line":"\tcase nil:"},{"line_number":300,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"\")"},{"line_number":301,"context_line":"\tdefault:"},{"line_number":302,"context_line":"\t\treturn nil, status.Errorf(codes.Unimplemented, \"\")"},{"line_number":303,"context_line":"\t}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"\t// Take l.muNodes before modifying the node."}],"source_content_type":"text/x-go","patch_set":3,"id":"4ca9988c_47a7a598","line":302,"range":{"start_line":302,"start_character":34,"end_line":302,"end_character":47},"in_reply_to":"23998c0c_4c8a43c6","updated":"2022-08-25 10:44:06.000000000","message":"Done","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5c15ea5802191acac5094f7689494cb73b78c455","unresolved":true,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":"\t// Find the node matching the requested public key."},{"line_number":310,"context_line":"\tnode, err :\u003d nodeLoad(ctx, l.leadership, id)"},{"line_number":311,"context_line":"\tif err !\u003d nil {"},{"line_number":312,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"while loading node %s: %v\", id, err)"},{"line_number":313,"context_line":"\t}"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"37920aaa_692c230b","line":311,"range":{"start_line":311,"start_character":1,"end_line":311,"end_character":16},"updated":"2022-08-25 10:09:56.000000000","message":"While you\u0027re at it:\n\n  if err \u003d\u003d errNodeNotFound {\n      return nil, status.Errorf(codes.NotFound, \"node %s not found\", id)\n  }","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ffe0b81b688594c99447886464dbb07859aa92d0","unresolved":false,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":"\t// Find the node matching the requested public key."},{"line_number":310,"context_line":"\tnode, err :\u003d nodeLoad(ctx, l.leadership, id)"},{"line_number":311,"context_line":"\tif err !\u003d nil {"},{"line_number":312,"context_line":"\t\treturn nil, status.Errorf(codes.InvalidArgument, \"while loading node %s: %v\", id, err)"},{"line_number":313,"context_line":"\t}"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"e88e2ced_f1f79499","line":311,"range":{"start_line":311,"start_character":1,"end_line":311,"end_character":16},"in_reply_to":"37920aaa_692c230b","updated":"2022-08-25 10:44:06.000000000","message":"Done","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"}],"metropolis/proto/api/management.proto":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d9263e4512895b83766fb580548085a0d19cf45d","unresolved":true,"context_lines":[{"line_number":158,"context_line":"// role fields are optional, and no change will result if they\u0027re either unset"},{"line_number":159,"context_line":"// or if their value matches existing state."},{"line_number":160,"context_line":"message UpdateNodeRolesRequest {"},{"line_number":161,"context_line":"  // id is the identifier of the updated node. This is always set."},{"line_number":162,"context_line":"  string id \u003d 1;"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  // kubernetesWorker adjusts the appropriate role when set. Nodes performing"},{"line_number":165,"context_line":"  // this role must also be consensus members. "}],"source_content_type":"text/x-protobuf","patch_set":1,"id":"59c2ada8_87868af1","line":162,"range":{"start_line":161,"start_character":1,"end_line":162,"end_character":16},"updated":"2022-08-17 09:29:07.000000000","message":"This breaks backwards compatibility in two ways:\n\n1. Calling this by pubkey of course doesn\u0027t work anymore.\n2. However, you\u0027re also reusing the tag here, which means whatever client was using the previous format will now make the server interpret the pubkey as an id, leading to confustion.\n  \nIf you really were okay with not supporting calling this by pubkey, you should at least mark this with a different tag (eg 4) and mark 1 as reserved.\n\nI would however implement support for using both, in the following way:\n\n  message UpdateNodeRolesRequest {\n      oneof node {\n          bytes pubkey \u003d 1;\n          string id \u003d 2;\n      }\n  }\n\n\u0027oneof\u0027s are transparent over the wire, they\u0027re just a hint for code generation that only one of the fields will be set at once (meaning different types get generated and unmarshaling ensures only one is set). So this is a compatible change over the wire. Old clients will continue to just set pubkey. New clients can choose to either use pubkey or id. New clients against old servers will fail if they specify id only, but that\u0027s okay (if you wanted to protect against that, you could not have this as oneof, but instead require both to be set and mark pubkey as deprecated, then phase that out and turn it into a oneof later).","commit_id":"c4f0672a850df7ee2c06ad3d99b01889454ce9b6"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c15130134d2465e71c03609f881b3342bd99eb05","unresolved":false,"context_lines":[{"line_number":158,"context_line":"// role fields are optional, and no change will result if they\u0027re either unset"},{"line_number":159,"context_line":"// or if their value matches existing state."},{"line_number":160,"context_line":"message UpdateNodeRolesRequest {"},{"line_number":161,"context_line":"  // id is the identifier of the updated node. This is always set."},{"line_number":162,"context_line":"  string id \u003d 1;"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  // kubernetesWorker adjusts the appropriate role when set. Nodes performing"},{"line_number":165,"context_line":"  // this role must also be consensus members. "}],"source_content_type":"text/x-protobuf","patch_set":1,"id":"f6894923_57e0a44d","line":162,"range":{"start_line":161,"start_character":1,"end_line":162,"end_character":16},"in_reply_to":"59c2ada8_87868af1","updated":"2022-08-24 12:45:04.000000000","message":"I\u0027ll go with supporting both.","commit_id":"c4f0672a850df7ee2c06ad3d99b01889454ce9b6"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5c15ea5802191acac5094f7689494cb73b78c455","unresolved":true,"context_lines":[{"line_number":163,"context_line":"    // pubkey is the Ed25519 public key of this node, which can be used to"},{"line_number":164,"context_line":"    // generate the node\u0027s ID."},{"line_number":165,"context_line":"    bytes pubkey \u003d 1;"},{"line_number":166,"context_line":"    // id is the identifier of the updated node."},{"line_number":167,"context_line":"    string id \u003d 4;"},{"line_number":168,"context_line":"  }"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"91e1c901_b560455b","line":166,"range":{"start_line":166,"start_character":17,"end_line":166,"end_character":48},"updated":"2022-08-25 10:09:56.000000000","message":"Leftover comment, needs some rework.\n\n// id is the human-readable identifier of the node, based on its pubkey.","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ffe0b81b688594c99447886464dbb07859aa92d0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    // pubkey is the Ed25519 public key of this node, which can be used to"},{"line_number":164,"context_line":"    // generate the node\u0027s ID."},{"line_number":165,"context_line":"    bytes pubkey \u003d 1;"},{"line_number":166,"context_line":"    // id is the identifier of the updated node."},{"line_number":167,"context_line":"    string id \u003d 4;"},{"line_number":168,"context_line":"  }"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"57c1b69a_766c0fe0","line":166,"range":{"start_line":166,"start_character":17,"end_line":166,"end_character":48},"in_reply_to":"91e1c901_b560455b","updated":"2022-08-25 10:44:06.000000000","message":"Done","commit_id":"46d204a462de294aa67c6bf6920f355485d739a7"}]}
