)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bc5247a3a28ce9e13138559e67228ac51d42fd20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"01e719cc_afc22a15","updated":"2021-06-21 08:52:34.000000000","message":"LGTM","commit_id":"25aa4d1dd5907fa877a2194f6069416f5ec015b4"}],"metropolis/node/core/curator/proto/api/api.proto":[{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"55d8f14a1c42b3c48178a1567125e9d8a8bb9061","unresolved":true,"context_lines":[{"line_number":9,"context_line":"// It runs on top of Metropolis and is the main entrypoint for both external"},{"line_number":10,"context_line":"// and internal services to get cluster state and and get/mutate cluster"},{"line_number":11,"context_line":"// configuration."},{"line_number":12,"context_line":"// It is current implemented as a leader-elected service running on all nodes"},{"line_number":13,"context_line":"// that run a consensus server (etcd). Every instance either serves traffic"},{"line_number":14,"context_line":"// directly (if it is the leader) or passes all RPCs over to the current"},{"line_number":15,"context_line":"// leader."}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"b0a7d3a5_29f17bec","line":12,"range":{"start_line":12,"start_character":9,"end_line":12,"end_character":16},"updated":"2021-06-17 21:20:13.000000000","message":"*ly","commit_id":"bbb355cc37f753869b0b1456a0c93d4bc4940e35"},{"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":"933aa59c735d8a9203444861561cb7b8016b5fa0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"// It runs on top of Metropolis and is the main entrypoint for both external"},{"line_number":10,"context_line":"// and internal services to get cluster state and and get/mutate cluster"},{"line_number":11,"context_line":"// configuration."},{"line_number":12,"context_line":"// It is current implemented as a leader-elected service running on all nodes"},{"line_number":13,"context_line":"// that run a consensus server (etcd). Every instance either serves traffic"},{"line_number":14,"context_line":"// directly (if it is the leader) or passes all RPCs over to the current"},{"line_number":15,"context_line":"// leader."}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"23d8d0c9_cc45f43d","line":12,"range":{"start_line":12,"start_character":9,"end_line":12,"end_character":16},"in_reply_to":"b0a7d3a5_29f17bec","updated":"2021-06-20 11:14:24.000000000","message":"Done","commit_id":"bbb355cc37f753869b0b1456a0c93d4bc4940e35"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"55d8f14a1c42b3c48178a1567125e9d8a8bb9061","unresolved":true,"context_lines":[{"line_number":29,"context_line":"// keys."},{"line_number":30,"context_line":"service Curator {"},{"line_number":31,"context_line":"    // Watch returns a stream of updates concerning some part of the cluster"},{"line_number":32,"context_line":"    // managed by the curator, and is the main way in which node code responds"},{"line_number":33,"context_line":"    // to cluster configuration/state changes."},{"line_number":34,"context_line":"    rpc Watch(WatchRequest) returns (stream WatchEvent);"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"ee8b31f0_357668dd","line":33,"range":{"start_line":32,"start_character":31,"end_line":33,"end_character":45},"updated":"2021-06-17 21:20:13.000000000","message":"Does it include initial state, or only updates? What if the client reconnects, can it catch up on missed updates?","commit_id":"bbb355cc37f753869b0b1456a0c93d4bc4940e35"},{"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":"933aa59c735d8a9203444861561cb7b8016b5fa0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"// keys."},{"line_number":30,"context_line":"service Curator {"},{"line_number":31,"context_line":"    // Watch returns a stream of updates concerning some part of the cluster"},{"line_number":32,"context_line":"    // managed by the curator, and is the main way in which node code responds"},{"line_number":33,"context_line":"    // to cluster configuration/state changes."},{"line_number":34,"context_line":"    rpc Watch(WatchRequest) returns (stream WatchEvent);"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"e31a3a8b_ee3f8705","line":33,"range":{"start_line":32,"start_character":31,"end_line":33,"end_character":45},"in_reply_to":"ee8b31f0_357668dd","updated":"2021-06-20 11:14:24.000000000","message":"Oh yeah, this needs to be written down. Done.","commit_id":"bbb355cc37f753869b0b1456a0c93d4bc4940e35"}]}
