)]}'
{"metropolis/node/abloader/main.rs":[{"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":"295f0d1c77245c20e169f5a8f5d812ce8bf212df","unresolved":true,"context_lines":[{"line_number":82,"context_line":"    let new_image_path \u003d {"},{"line_number":83,"context_line":"        let loaded_image_device_path \u003d"},{"line_number":84,"context_line":"            boot::open_protocol_exclusive::\u003cLoadedImageDevicePath\u003e(boot::image_handle())"},{"line_number":85,"context_line":"                .expect(\"failed to open LoadedImageDevicePath protocol\");"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        let mut builder \u003d DevicePathBuilder::with_vec(\u0026mut storage);"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"865a9976_e81ed838","line":85,"range":{"start_line":85,"start_character":17,"end_line":85,"end_character":72},"updated":"2025-07-07 12:36:43.000000000","message":"This function returns a Result, don\u0027t panic in there.","commit_id":"4ee1705dec64baec9191ff59b8b8a47571411c7d"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"87a6805c93614c39dfa726ebcae7d74558453ccc","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    let new_image_path \u003d {"},{"line_number":83,"context_line":"        let loaded_image_device_path \u003d"},{"line_number":84,"context_line":"            boot::open_protocol_exclusive::\u003cLoadedImageDevicePath\u003e(boot::image_handle())"},{"line_number":85,"context_line":"                .expect(\"failed to open LoadedImageDevicePath protocol\");"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        let mut builder \u003d DevicePathBuilder::with_vec(\u0026mut storage);"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"bc436398_d8af6a8e","line":85,"range":{"start_line":85,"start_character":17,"end_line":85,"end_character":72},"in_reply_to":"865a9976_e81ed838","updated":"2025-07-07 13:33:06.000000000","message":"Done","commit_id":"4ee1705dec64baec9191ff59b8b8a47571411c7d"},{"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":"295f0d1c77245c20e169f5a8f5d812ce8bf212df","unresolved":true,"context_lines":[{"line_number":123,"context_line":"            Ok(d) \u003d\u003e d,"},{"line_number":124,"context_line":"            Err(e) \u003d\u003e {"},{"line_number":125,"context_line":"                println!("},{"line_number":126,"context_line":"                    \"Unable to load A/B loader state, using default slot A: {}\","},{"line_number":127,"context_line":"                    e"},{"line_number":128,"context_line":"                );"},{"line_number":129,"context_line":"                AbLoaderData {"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"60a74fb4_f85926d1","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":80},"updated":"2025-07-07 12:36:43.000000000","message":"Please undo the formatting changes. For example this one is just terrible.","commit_id":"4ee1705dec64baec9191ff59b8b8a47571411c7d"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"87a6805c93614c39dfa726ebcae7d74558453ccc","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            Ok(d) \u003d\u003e d,"},{"line_number":124,"context_line":"            Err(e) \u003d\u003e {"},{"line_number":125,"context_line":"                println!("},{"line_number":126,"context_line":"                    \"Unable to load A/B loader state, using default slot A: {}\","},{"line_number":127,"context_line":"                    e"},{"line_number":128,"context_line":"                );"},{"line_number":129,"context_line":"                AbLoaderData {"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"6697fd1c_d4767bca","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":80},"in_reply_to":"60a74fb4_f85926d1","updated":"2025-07-07 13:33:06.000000000","message":"Done","commit_id":"4ee1705dec64baec9191ff59b8b8a47571411c7d"},{"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":"fa206423454e02fda359da68eeb2cf6a08d7e6da","unresolved":true,"context_lines":[{"line_number":162,"context_line":"                Ok(img) \u003d\u003e img,"},{"line_number":163,"context_line":"                Err(e) \u003d\u003e {"},{"line_number":164,"context_line":"                    panic!(\"Loading from both slots failed, second slot error: {}\", e);"},{"line_number":165,"context_line":"                },"},{"line_number":166,"context_line":"            }"},{"line_number":167,"context_line":"        }"},{"line_number":168,"context_line":"    };"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"b8840d8f_1ae3f086","side":"PARENT","line":165,"range":{"start_line":165,"start_character":17,"end_line":165,"end_character":18},"updated":"2025-07-07 16:37:35.000000000","message":"Another formatting change, do not remove the trailing comma.","commit_id":"a5a817009be47049d7302dd0c1ec08f13c1fe4a7"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a49559e138f869f1691ff933e07f29370f87495","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                Ok(img) \u003d\u003e img,"},{"line_number":163,"context_line":"                Err(e) \u003d\u003e {"},{"line_number":164,"context_line":"                    panic!(\"Loading from both slots failed, second slot error: {}\", e);"},{"line_number":165,"context_line":"                },"},{"line_number":166,"context_line":"            }"},{"line_number":167,"context_line":"        }"},{"line_number":168,"context_line":"    };"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"e375a641_90af6df7","side":"PARENT","line":165,"range":{"start_line":165,"start_character":17,"end_line":165,"end_character":18},"in_reply_to":"b8840d8f_1ae3f086","updated":"2025-07-07 16:43:17.000000000","message":"Done","commit_id":"a5a817009be47049d7302dd0c1ec08f13c1fe4a7"},{"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":"fa206423454e02fda359da68eeb2cf6a08d7e6da","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    fn fmt(\u0026self, f: \u0026mut fmt::Formatter) -\u003e fmt::Result {"},{"line_number":60,"context_line":"        match self {"},{"line_number":61,"context_line":"            ReadLoaderStateError::FSReadError(e) \u003d\u003e write!(f, \"while reading state file: {}\", e),"},{"line_number":62,"context_line":"            ReadLoaderStateError::DecodeError(e) \u003d\u003e { write!(f, \"while decoding state file contents: {}\", e) }"},{"line_number":63,"context_line":"        }"},{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"}"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"a20292a8_40302936","line":62,"range":{"start_line":62,"start_character":52,"end_line":62,"end_character":54},"updated":"2025-07-07 16:37:35.000000000","message":"Unrelated formatting change, might even be semantically not the same.","commit_id":"caac8fd8af1811718c7d6832f6ec0438214d6263"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a49559e138f869f1691ff933e07f29370f87495","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    fn fmt(\u0026self, f: \u0026mut fmt::Formatter) -\u003e fmt::Result {"},{"line_number":60,"context_line":"        match self {"},{"line_number":61,"context_line":"            ReadLoaderStateError::FSReadError(e) \u003d\u003e write!(f, \"while reading state file: {}\", e),"},{"line_number":62,"context_line":"            ReadLoaderStateError::DecodeError(e) \u003d\u003e { write!(f, \"while decoding state file contents: {}\", e) }"},{"line_number":63,"context_line":"        }"},{"line_number":64,"context_line":"    }"},{"line_number":65,"context_line":"}"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"6fa5fe47_b629d076","line":62,"range":{"start_line":62,"start_character":52,"end_line":62,"end_character":54},"in_reply_to":"a20292a8_40302936","updated":"2025-07-07 16:43:17.000000000","message":"Done","commit_id":"caac8fd8af1811718c7d6832f6ec0438214d6263"},{"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":"fa206423454e02fda359da68eeb2cf6a08d7e6da","unresolved":true,"context_lines":[{"line_number":111,"context_line":"fn main() -\u003e Status {"},{"line_number":112,"context_line":"    let boot_slot_raw \u003d {"},{"line_number":113,"context_line":"        let esp_fs: ScopedProtocol\u003cSimpleFileSystem\u003e \u003d"},{"line_number":114,"context_line":"            boot::get_image_file_system(boot::image_handle()).unwrap();"},{"line_number":115,"context_line":"        let mut esp_fs \u003d FileSystem::new(esp_fs);"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        let mut loader_data \u003d match read_loader_state(\u0026mut esp_fs) {"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"8d00002f_b782ea3d","line":114,"range":{"start_line":114,"start_character":62,"end_line":114,"end_character":68},"updated":"2025-07-07 16:37:35.000000000","message":"Use expect here like the old code did so that we have some diagnostics where things break.","commit_id":"caac8fd8af1811718c7d6832f6ec0438214d6263"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a49559e138f869f1691ff933e07f29370f87495","unresolved":false,"context_lines":[{"line_number":111,"context_line":"fn main() -\u003e Status {"},{"line_number":112,"context_line":"    let boot_slot_raw \u003d {"},{"line_number":113,"context_line":"        let esp_fs: ScopedProtocol\u003cSimpleFileSystem\u003e \u003d"},{"line_number":114,"context_line":"            boot::get_image_file_system(boot::image_handle()).unwrap();"},{"line_number":115,"context_line":"        let mut esp_fs \u003d FileSystem::new(esp_fs);"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        let mut loader_data \u003d match read_loader_state(\u0026mut esp_fs) {"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"f959efa0_2785f630","line":114,"range":{"start_line":114,"start_character":62,"end_line":114,"end_character":68},"in_reply_to":"8d00002f_b782ea3d","updated":"2025-07-07 16:43:17.000000000","message":"Done","commit_id":"caac8fd8af1811718c7d6832f6ec0438214d6263"},{"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":"c676d9561221c2c858adb87151ff2026f503ea94","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    let boot_slot_raw \u003d {"},{"line_number":113,"context_line":"        let esp_fs: ScopedProtocol\u003cSimpleFileSystem\u003e \u003d"},{"line_number":114,"context_line":"            boot::get_image_file_system(boot::image_handle())"},{"line_number":115,"context_line":"                .expect(\"image filesystem not available\");;"},{"line_number":116,"context_line":"        let mut esp_fs \u003d FileSystem::new(esp_fs);"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        let mut loader_data \u003d match read_loader_state(\u0026mut esp_fs) {"}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"07675c09_a24a828b","line":115,"range":{"start_line":115,"start_character":58,"end_line":115,"end_character":59},"updated":"2025-07-08 07:29:08.000000000","message":"Two semicolons here? I\u0027m surprised this compiles, but Rust seems to be quite liberal with syntax.","commit_id":"1da1c3c12bd05f7852fe6a1e3ae2f4658f04e2cb"},{"author":{"_account_id":1000019,"name":"Tim Windelschmidt","display_name":"Tim","email":"tim@monogon.tech","username":"fionera","avatars":[{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/57e6137fdb8185cd15ac27ba188780ff.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d385d81aa7dc04d8089e2cc3aae605a455b73fef","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    let boot_slot_raw \u003d {"},{"line_number":113,"context_line":"        let esp_fs: ScopedProtocol\u003cSimpleFileSystem\u003e \u003d"},{"line_number":114,"context_line":"            boot::get_image_file_system(boot::image_handle())"},{"line_number":115,"context_line":"                .expect(\"image filesystem not available\");;"},{"line_number":116,"context_line":"        let mut esp_fs \u003d FileSystem::new(esp_fs);"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        let mut loader_data \u003d match read_loader_state(\u0026mut esp_fs) {"}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"94671026_287bd149","line":115,"range":{"start_line":115,"start_character":58,"end_line":115,"end_character":59},"in_reply_to":"07675c09_a24a828b","updated":"2025-07-08 13:29:28.000000000","message":"Done","commit_id":"1da1c3c12bd05f7852fe6a1e3ae2f4658f04e2cb"}]}
