)]}'
{"metropolis/node/core/main.go":[{"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":"b9f345c730ef916892386a195a101ed27a926f13","unresolved":true,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"\t// Start the role service. The role service connects to the curator and runs"},{"line_number":195,"context_line":"\t// all node-specific role code (eg. Kubernetes services)."},{"line_number":196,"context_line":"\t//   supervisor.Logger(ctx).Infof(\"Starting role service...\")"},{"line_number":197,"context_line":"\trs :\u003d roleserve.New(roleserve.Config{"},{"line_number":198,"context_line":"\t\tStorageRoot: root,"},{"line_number":199,"context_line":"\t\tNetwork:     networkSvc,"}],"source_content_type":"text/x-go","patch_set":3,"id":"a50e7371_123f7532","line":196,"range":{"start_line":196,"start_character":6,"end_line":196,"end_character":62},"updated":"2024-12-23 14:27:42.000000000","message":"Remove this or don\u0027t comment it.","commit_id":"a41381ef4a680bb3f6756d16101c4af83812fbef"},{"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":"297b19cd7e81fb9d84cd881da4f759590c9707a6","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"\t// Start the role service. The role service connects to the curator and runs"},{"line_number":195,"context_line":"\t// all node-specific role code (eg. Kubernetes services)."},{"line_number":196,"context_line":"\t//   supervisor.Logger(ctx).Infof(\"Starting role service...\")"},{"line_number":197,"context_line":"\trs :\u003d roleserve.New(roleserve.Config{"},{"line_number":198,"context_line":"\t\tStorageRoot: root,"},{"line_number":199,"context_line":"\t\tNetwork:     networkSvc,"}],"source_content_type":"text/x-go","patch_set":3,"id":"5d2130c5_c7856ae7","line":196,"range":{"start_line":196,"start_character":6,"end_line":196,"end_character":62},"in_reply_to":"a50e7371_123f7532","updated":"2024-12-23 23:55:41.000000000","message":"Done","commit_id":"a41381ef4a680bb3f6756d16101c4af83812fbef"},{"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":"b9f345c730ef916892386a195a101ed27a926f13","unresolved":true,"context_lines":[{"line_number":215,"context_line":"\t\tconsole, err :\u003d tconsole.New(tconsole.TerminalLinux, c, supervisor.LogTree(ctx), \u0026networkSvc.Status, \u0026rs.LocalRoles, \u0026rs.CuratorConnection)"},{"line_number":216,"context_line":"\t\tif err !\u003d nil {"},{"line_number":217,"context_line":"\t\t\tlogger.Info(\"Failed to initialize interactive console at %s: %v\", c, err)"},{"line_number":218,"context_line":"\t\t\t// TODO: fall back to logger"},{"line_number":219,"context_line":"\t\t} else {"},{"line_number":220,"context_line":"\t\t\tlogger.Info(\"Started interactive console at %s\", c)"},{"line_number":221,"context_line":"\t\t\tsupervisor.Run(ctx, \"console-\"+c, console.Run)"}],"source_content_type":"text/x-go","patch_set":3,"id":"d4a7904a_a3651873","line":218,"range":{"start_line":218,"start_character":2,"end_line":218,"end_character":31},"updated":"2024-12-23 14:27:42.000000000","message":"Naked TODO, either assign to an issue or fix it.","commit_id":"a41381ef4a680bb3f6756d16101c4af83812fbef"},{"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":"297b19cd7e81fb9d84cd881da4f759590c9707a6","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\t\tconsole, err :\u003d tconsole.New(tconsole.TerminalLinux, c, supervisor.LogTree(ctx), \u0026networkSvc.Status, \u0026rs.LocalRoles, \u0026rs.CuratorConnection)"},{"line_number":216,"context_line":"\t\tif err !\u003d nil {"},{"line_number":217,"context_line":"\t\t\tlogger.Info(\"Failed to initialize interactive console at %s: %v\", c, err)"},{"line_number":218,"context_line":"\t\t\t// TODO: fall back to logger"},{"line_number":219,"context_line":"\t\t} else {"},{"line_number":220,"context_line":"\t\t\tlogger.Info(\"Started interactive console at %s\", c)"},{"line_number":221,"context_line":"\t\t\tsupervisor.Run(ctx, \"console-\"+c, console.Run)"}],"source_content_type":"text/x-go","patch_set":3,"id":"7080e6f1_4bda4ff9","line":218,"range":{"start_line":218,"start_character":2,"end_line":218,"end_character":31},"in_reply_to":"b3c74c18_5be23378","updated":"2024-12-23 23:55:41.000000000","message":"Done. Turns out this was already the normal behavior.","commit_id":"a41381ef4a680bb3f6756d16101c4af83812fbef"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5aca9bd56a0237ed5298a8111599e25593e7ac35","unresolved":true,"context_lines":[{"line_number":215,"context_line":"\t\tconsole, err :\u003d tconsole.New(tconsole.TerminalLinux, c, supervisor.LogTree(ctx), \u0026networkSvc.Status, \u0026rs.LocalRoles, \u0026rs.CuratorConnection)"},{"line_number":216,"context_line":"\t\tif err !\u003d nil {"},{"line_number":217,"context_line":"\t\t\tlogger.Info(\"Failed to initialize interactive console at %s: %v\", c, err)"},{"line_number":218,"context_line":"\t\t\t// TODO: fall back to logger"},{"line_number":219,"context_line":"\t\t} else {"},{"line_number":220,"context_line":"\t\t\tlogger.Info(\"Started interactive console at %s\", c)"},{"line_number":221,"context_line":"\t\t\tsupervisor.Run(ctx, \"console-\"+c, console.Run)"}],"source_content_type":"text/x-go","patch_set":3,"id":"b3c74c18_5be23378","line":218,"range":{"start_line":218,"start_character":2,"end_line":218,"end_character":31},"in_reply_to":"d4a7904a_a3651873","updated":"2024-12-23 16:21:00.000000000","message":"Both this problem and the commented out log already existed and are only moved around by this change, so I think it\u0027s fine to leave them as is in this change.","commit_id":"a41381ef4a680bb3f6756d16101c4af83812fbef"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"34a302fbf9457793d6bc69a0700832433c952023","unresolved":true,"context_lines":[{"line_number":186,"context_line":"\t// The kernel does of course not run in this runnable, only the log pipe"},{"line_number":187,"context_line":"\t// runs in it."},{"line_number":188,"context_line":"\tif err :\u003d supervisor.Run(ctx, \"kernel\", func(ctx context.Context) error {"},{"line_number":189,"context_line":"\t\treturn logtree.KmsgPipe(ctx, logger)"},{"line_number":190,"context_line":"\t}); err !\u003d nil {"},{"line_number":191,"context_line":"\t\treturn fmt.Errorf(\"when starting kernel log pipe: %w\", err)"},{"line_number":192,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"b1667285_7f16928b","line":189,"range":{"start_line":189,"start_character":31,"end_line":189,"end_character":37},"updated":"2025-01-13 12:55:13.000000000","message":"This change looks wrong. `logger` is not the same as `supervisor.Logger(ctx)` because the context is different. The kernel logs should go to the kernel node instead of the root node.","commit_id":"e9e2549d382398c1c9b3cc1d4ba791380a929b1e"},{"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":"8d4d74ffa1fb64a7f80185f56113cc03965ffdf3","unresolved":false,"context_lines":[{"line_number":186,"context_line":"\t// The kernel does of course not run in this runnable, only the log pipe"},{"line_number":187,"context_line":"\t// runs in it."},{"line_number":188,"context_line":"\tif err :\u003d supervisor.Run(ctx, \"kernel\", func(ctx context.Context) error {"},{"line_number":189,"context_line":"\t\treturn logtree.KmsgPipe(ctx, logger)"},{"line_number":190,"context_line":"\t}); err !\u003d nil {"},{"line_number":191,"context_line":"\t\treturn fmt.Errorf(\"when starting kernel log pipe: %w\", err)"},{"line_number":192,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"c101a667_61f8bb79","line":189,"range":{"start_line":189,"start_character":31,"end_line":189,"end_character":37},"in_reply_to":"5a938b71_c2f60e0b","updated":"2025-01-13 14:16:14.000000000","message":"Done","commit_id":"e9e2549d382398c1c9b3cc1d4ba791380a929b1e"},{"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":"56544567a9a4bc00bd2adb765a29a55ba80a6632","unresolved":true,"context_lines":[{"line_number":186,"context_line":"\t// The kernel does of course not run in this runnable, only the log pipe"},{"line_number":187,"context_line":"\t// runs in it."},{"line_number":188,"context_line":"\tif err :\u003d supervisor.Run(ctx, \"kernel\", func(ctx context.Context) error {"},{"line_number":189,"context_line":"\t\treturn logtree.KmsgPipe(ctx, logger)"},{"line_number":190,"context_line":"\t}); err !\u003d nil {"},{"line_number":191,"context_line":"\t\treturn fmt.Errorf(\"when starting kernel log pipe: %w\", err)"},{"line_number":192,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":7,"id":"5a938b71_c2f60e0b","line":189,"range":{"start_line":189,"start_character":31,"end_line":189,"end_character":37},"in_reply_to":"b1667285_7f16928b","updated":"2025-01-13 14:15:24.000000000","message":"Woops thats true","commit_id":"e9e2549d382398c1c9b3cc1d4ba791380a929b1e"}]}
